Předpokládejme, že mám disk umístěný na /dev/DISK_NAME
. Zajímalo by mě, jestli existuje příkaz k nalezení n
oddíl tohoto disku.
Zdá se, že něco takového by mělo být možné pomocí lsblk
. Nejlepší, co mohu vymyslet, je:
lsblk -nlpo NAME,TYPE /dev/DISK_NAME | awk '/part$/ {print $1}' | grep "[^0-9]n$"
Zde je n
v posledním grep představuje číslo příslušného oddílu.
Výše uvedený příkaz funguje pro počítač arch linux, na kterém právě jsem, kde DISK_NAME=sda
a výstup lsblk -nlpo NAME,TYPE
je
/dev/sda disk
/dev/sda1 part
/dev/sda2 part
/dev/sda3 part
/dev/sda5 part
Můj příkaz funguje také na mém počítači arch linux, kde DISK_NAME=nvme0n1
a výstup lsblk -nlpo NAME,TYPE
je
/dev/nvme0n1 disk
/dev/nvme0n1p1 part
/dev/nvme0n1p2 part
Přesto mi to připadá poněkud otřepané a nejsem si jistý, zda by to fungovalo na libovolném disku.
Existují lepší způsoby, jak to udělat?
Přijatá odpověď:
Neexistuje žádná záruka, že sda1
vůbec existuje – mám SSD pouze s sda4 a sda5. Byl by tedy první oddíl oddíl s nejnižším startem LBA?
Nebo snad první záznam v tabulce oddílů? Podle 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
Který je první oddíl – je to 2 (který má nejnižší LBA) nebo je 1 (který má nejnižší číslo oddílu).
Pokud dáváte přednost starému fdisk -l
příkaz, pak to seřadí tabulku oddílů za vás [tak, aby oddíly s nejnižším číslem byly první].