web-dev-qa-db-fra.com

Différences entre / dev / sda et / dev / sda1

Je sais que/dev/sda est le périphérique brut et que/dev/sda1 est la partition ou le périphérique virtuel.

Mais je suis un peu confus quant à la raison pour laquelle le sda ​​# n'apparaît que parfois, ou uniquement sur certains systèmes. Qu'est-ce qui fait que cela se produit? Peut-être que le moment où les lecteurs sda # n'apparaissent pas est celui où il n'est pas partitionné? Ou peut-être que ce n'est pas la même chose sur le matériel?

Et pourquoi puis-je monter les deux? (parfois) La partition ne devrait-elle pas être montable?

Toutes les ressources ou couleurs que vous pouvez donner seraient grandement appréciées. Merci d'avance.

17
decoy

Sur un système moderne, un périphérique de partition n'apparaîtra que si la partition existe réellement.

Sur un disque avec une table de partition MBR, les numéros de partition 1 à 4 correspondent aux quatre emplacements de la table de partition, appelés partitions "primaires". Ils ne doivent pas être remplis séquentiellement, il est donc possible, par exemple, d'avoir un sda2 mais pas de sda1. Les numéros de partition 5 et plus correspondent à des "lecteurs logiques" dans une partition étendue, et ceux-ci sont toujours numérotés séquentiellement, vous ne pouvez donc pas avoir un sda6 sans avoir un sda5 aussi.

Sur un disque avec une table de partition GPT, il peut y avoir beaucoup plus de partitions (généralement jusqu'à 128), et toutes sont "primaires". Vous pourriez donc avoir un disque dont la seule partition est sda9, par exemple.

Si le disque n'a pas de table de partition, il n'aura bien sûr aucun périphérique de partition.

Les systèmes plus anciens - ceux qui utilisent un statique/dev plutôt qu'un système géré par udev - auront généralement des nœuds de périphérique pour tous les numéros de partition possibles, que les partitions existent ou non. (Essayer d'ouvrir le fichier de périphérique pour une partition inexistante échouera, bien sûr.)


Il est possible de renoncer au partitionnement et de placer un système de fichiers directement sur un disque. Lorsque vous montez un périphérique bloc, le pilote du système de fichiers recherche généralement un superbloc à un décalage prédéterminé par rapport au début du périphérique, et puisque le début d'une partition n'est pas le début du disque lui-même, le superbloc d'un système de fichiers dans une partition est situé à un endroit différent du disque que le superbloc pour un système de fichiers créé sur le périphérique "disque entier".

Donc, si le disque avait juste un système de fichiers, puis qu'il a été partitionné et qu'un système de fichiers a été créé dans une partition, l'ancien superbloc pourrait toujours être là, par exemple dans le petit espace avant le début de la première partition. Ainsi, le disque semble toujours avoir un système de fichiers sur le périphérique de disque brut et sur le périphérique de partition, car celui que vous essayez de monter, lorsque le pilote du système de fichiers recherche le superbloc, il en trouve un.

Cependant, il n'est pas sûr de monter et d'utiliser les deux systèmes de fichiers, car ils se chevauchent sur le disque. L'un peut avoir des données comptables importantes dans ce que l'autre pense être de l'espace libre. C'est pourquoi c'est une bonne idée de mettre à zéro le début d'un périphérique de bloc, de supprimer tous les superblocs indésirables, lorsque vous voulez changer un disque brut en un disque partitionné, ou vice versa, ou changer le type de système de fichiers utilisé sur une partition, etc. .

19
Wyzard

Pour autant que je sache, lorsque le noyau détecte un nouveau périphérique de bloc sur un bus de type scsi (y compris sata), en plus d'ajouter un nœud dans /dev pour l'ensemble du disque lui-même, par exemple /dev/sda il tentera de voir s'il y a une table de partition. S'il y a des partitions lisibles, cela créera alors les nœuds de partition numérotés selon qu'il s'agit de partitions physiques ou logiques (je pense que les partitions logiques commencent au # 5).

Si vous voyez un nœud de disque mais sans nœuds de partition, cela signifie qu'aucune partition n'a été détectée. Je ne connais aucune instance où vous pouvez monter le périphérique physique, car cela impliquerait qu'il y a un système de fichiers directement écrit sur le périphérique physique sans table de partition. Il se pourrait que dans le cas où il n'y a qu'une seule partition, mount interprètera un mount /dev/sda commande comme signifiant /dev/sda1, mais je n'ai jamais testé cela.

6
growse

/ dev/sda - périphérique brut

/ dev/sda1 - périphérique "virtuel", comme une partition.

Une différence intéressante est que si un périphérique a des partitions (a des données MBR ou quelque chose de similaire), vous ne pouvez pas lire les données MBR à partir de l'un des périphériques virtuels, car les données MBR résident en dehors de toutes les partitions sur un périphérique. Le MBR réside dans le premier secteur de l'appareil (CHS: 0 0 1). Il est recommandé de créer la première partition à 1 Mo après le début d'un périphérique.

Pour lire les données MBR, vous devez utiliser le périphérique brut (/ dev/sda), à savoir:

dd if=/dev/sda of=mbr.bin bs=512 count=1
3
colemik

Ah, les tables de partition et les noms des périphériques. Préparez-vous à vous confondre avec eux.

Vous avez un serveur HP avec son contrôleur RAID Compaq? Non/dev/sda, dites bonjour à/dev/ccsis.

Vous avez un ancien ordinateur de bureau avec une ancienne interface IDE? Non/dev/sda, dites bonjour à/dev/hda.

Vous avez un serveur moderne qui vous dit/dev/sda mais après l'installation, vous pouvez à peine le voir? Dites bonjour à LVM, votre installation de système d'exploitation a fait de votre/dev/sda un volume physique LVM, créé un groupe de volumes à l'intérieur et un volume logique à l'intérieur.

Donc ... si vous ne voyez rien comme/dev/sda1, vous pourriez avoir LVM ou similaire en cours d'utilisation, qui a créé ses propres "partitions".

Est-ce que cela a répondu à ta question?

0
Janne Pikkarainen