Je cherche un moyen portable pour obtenir le nom du périphérique de bloc parent (par exemple /dev/sda
) étant donné le nom du périphérique de partition (par exemple /dev/sda1
). Je sais que je pourrais simplement supprimer le dernier caractère, mais cela ne fonctionnerait pas dans certains cas:
- Les lecteurs de cartes MMC ont généralement des noms comme
/dev/mmcblk0
, tandis que leurs partitions ont des noms comme/dev/mmcblk0p1
(notez le supplémentp
). - facultatif: certains périphériques de bloc n'ont pas de table de partition et sont formatés comme une seule partition. Dans ce cas, le périphérique de partition et le périphérique de bloc parent sont identiques.
Les volumes LVM sont une toute autre marmite de poisson. Je n'ai pas besoin de les soutenir pour le moment, mais si les prendre en compte nécessite peu d'efforts supplémentaires, cela ne me dérangerait pas.
/dev/sda1
et /dev/mmcblk0p1
sont de toute façon spécifiques à Linux. lsblk
est relativement récent cependant.
lsblk
utilise également les numéros de nœud de périphérique pour trouver le bon, au lieu d'utiliser simplement le nom. semble que la solution la plus simple pour Linux et util-linux serait probablement toujours disponible de toute façon.
lsblk -dpno pkname $devname
réussi tous mes tests! Vous devriez peut-être ajouter une réponse.
/dev/sd0c
dans ce cas. Les réponses ci-dessous vous conviennent-elles?
/dev/sd0a
mais il n'y a pas d'/dev/sd0
appareil (il y a un/dev/sd0c
...)