Sto cercando un modo portatile per ottenere il nome del dispositivo a blocchi parent (ad es. /dev/sda
) Dato il nome del dispositivo di partizione (ad es /dev/sda1
.). So che potrei semplicemente rilasciare l'ultimo personaggio, ma in alcuni casi non funzionerebbe:
- I lettori di schede MMC hanno in genere nomi simili
/dev/mmcblk0
, mentre le loro partizioni hanno nomi simili/dev/mmcblk0p1
(notare il supplementop
). - opzionale: alcuni dispositivi a blocchi non hanno alcuna tabella delle partizioni e sono formattati come un'unica partizione. In questo caso, il dispositivo di partizione e il dispositivo di blocco padre sono gli stessi.
I volumi LVM sono un bollitore di pesce completamente diverso. Non ho bisogno di supportarli in questo momento, ma se prenderli in considerazione richiede un piccolo sforzo extra, non mi dispiacerebbe.
/dev/sda1
e /dev/mmcblk0p1
sono comunque specifici di Linux. lsblk
è relativamente recente però.
lsblk
utilizza anche i numeri di nodo del dispositivo per trovare quello corretto, invece di utilizzare semplicemente il nome. sembra che la soluzione più semplice per Linux e util-linux sarebbe probabilmente sempre disponibile comunque.
lsblk -dpno pkname $devname
superato tutti i miei test! Forse dovresti aggiungere una risposta.
/dev/sd0c
in quel caso. Le risposte qui sotto funzionano per te?
/dev/sd0a
ma non c'è alcun/dev/sd0
dispositivo (c'è un/dev/sd0c
...)