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/sda1et /dev/mmcblk0p1sont de toute façon spécifiques à Linux. lsblkest relativement récent cependant.
lsblkutilise é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 $devnameréussi tous mes tests! Vous devriez peut-être ajouter une réponse.
/dev/sd0cdans ce cas. Les réponses ci-dessous vous conviennent-elles?
/dev/sd0amais il n'y a pas d'/dev/sd0appareil (il y a un/dev/sd0c...)