Supponiamo di avere un disco situato in /dev/DISK_NAME
. Sono curioso di sapere se esiste un comando per trovare il n
esima partizione di questo disco.
Sembra che questo genere di cose dovrebbe essere possibile con lsblk
. Il meglio che posso inventare è:
lsblk -nlpo NAME,TYPE /dev/DISK_NAME | awk '/part$/ {print $1}' | grep "[^0-9]n$"
Qui, il n
nell'ultimo grep rappresenta il numero di partizione in questione.
Il comando sopra funziona per la macchina arch linux su cui sono attualmente, dove DISK_NAME=sda
e l'output di lsblk -nlpo NAME,TYPE
è
/dev/sda disk
/dev/sda1 part
/dev/sda2 part
/dev/sda3 part
/dev/sda5 part
Il mio comando funziona anche sulla mia macchina arch linux dove DISK_NAME=nvme0n1
e l'output di lsblk -nlpo NAME,TYPE
è
/dev/nvme0n1 disk
/dev/nvme0n1p1 part
/dev/nvme0n1p2 part
Tuttavia, sembra piuttosto complicato e non sono sicuro che funzionerebbe su un disco arbitrario.
Ci sono modi migliori per farlo?
Risposta accettata:
Non vi è alcuna garanzia che sda1
esiste affatto:ho un SSD con solo sda4 e sda5. Quindi la prima partizione sarebbe quella con l'LBA iniziale più basso?
O forse la prima voce nella tabella delle partizioni? Secondo parted -l
,
...
Number Start End Size File system Name Flags
2 316MB 333GB 333GB ext4 /mnt/backup
3 333GB 791GB 457GB ext4 /mnt/filestore
4 791GB 832GB 41.9GB ext4 /run/timeshift/backup
1 832GB 841GB 8590MB ext4 /mnt/music
Qual è la prima partizione – è 2 (che ha l'LBA più basso) o è 1 (che ha il numero di partizione più basso).
Se preferisci l'antico fdisk -l
comando, questo ordinerà la tabella delle partizioni per te [in modo che le partizioni con il numero più basso vengano prima].