Solution 1 :
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 n'ont pas besoin d'ê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 de manière séquentielle, vous ne pouvez donc pas avoir un sda6 sans avoir également un sda5.
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 /dev statique plutôt qu'un 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 mettre 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 sur le disque que le superbloc pour un système de fichiers créé sur le périphérique "disque entier".
Donc, si le disque n'avait qu'un système de fichiers, puis qu'il était partitionné et qu'un système de fichiers était créé dans une partition, l'ancien superbloc pourrait toujours être là, par ex. dans le petit espace avant le début de la première partition. Ainsi, le disque semble toujours avoir un système de fichiers à la fois sur le périphérique de disque brut et sur le périphérique de partition, car quel que soit 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 vraiment 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 bloc, de supprimer tous les superblocs indésirables, lorsque vous souhaitez 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. .
Solution 2 :
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 ex. /dev/sda
il essaiera de voir s'il y a une table de partition. S'il y a des partitions lisibles, il créera alors les nœuds de partition numérotés selon qu'il s'agisse de partitions physiques ou logiques (je crois que les partitions logiques commencent à #5).
Si vous voyez un nœud de disque mais sans nœud 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 existe un système de fichiers directement écrit sur le périphérique physique sans aucune table de partition. Il se peut que dans le cas où il n'y ait qu'une seule partition, mount
interprétera un mount /dev/sda
commande comme signifiant /dev/sda1
, mais je n'ai jamais testé cela.
Solution 3 :
/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 sth similaires), vous ne pouvez pas lire les données MBR 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 existe une bonne pratique pour créer la première partition à 1 Mo après le début d'un périphérique.
Pour lire les données du MBR, vous devez utiliser le périphérique brut (/dev/sda), c'est-à-dire :
dd if=/dev/sda of=mbr.bin bs=512 count=1