Angenommen, ich habe eine Festplatte unter /dev/DISK_NAME
. Ich bin gespannt, ob es einen Befehl gibt, um den n
zu finden te Partition dieser Festplatte.
Anscheinend sollte so etwas mit lsblk
möglich sein . Das Beste, was mir einfällt, ist:
lsblk -nlpo NAME,TYPE /dev/DISK_NAME | awk '/part$/ {print $1}' | grep "[^0-9]n$"
Hier das n
im letzten grep steht für die betreffende Partitionsnummer.
Der obige Befehl funktioniert für die Arch-Linux-Maschine, auf der ich mich gerade befinde, wobei DISK_NAME=sda
und die Ausgabe von lsblk -nlpo NAME,TYPE
ist
/dev/sda disk
/dev/sda1 part
/dev/sda2 part
/dev/sda3 part
/dev/sda5 part
Mein Befehl funktioniert auch auf meinem Arch-Linux-Rechner, auf dem DISK_NAME=nvme0n1
und die Ausgabe von lsblk -nlpo NAME,TYPE
ist
/dev/nvme0n1 disk
/dev/nvme0n1p1 part
/dev/nvme0n1p2 part
Trotzdem fühlt sich das ziemlich hackig an und ich bin mir nicht sicher, ob es auf einer beliebigen Festplatte funktionieren würde.
Gibt es dafür bessere Möglichkeiten?
Akzeptierte Antwort:
Es gibt keine Garantie dafür, dass sda1
existiert überhaupt – ich habe eine SSD mit nur sda4 und sda5. Wäre die erste Partition also diejenige mit der niedrigsten Start-LBA?
Oder vielleicht der erste Eintrag in der Partitionstabelle? Gemäß 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
Welches ist die erste Partition – ist es 2 (das die niedrigste LBA hat) oder ist es 1 (die die niedrigste Partitionsnummer hat).
Wenn Sie das alte fdisk -l
bevorzugen Befehl, dann wird dies die Partitionstabelle für Sie sortieren [so dass die Partitionen mit den niedrigsten Nummern zuerst kommen].