/dev/DISK_NAME
にディスクがあるとします。 。 n
を見つけるコマンドがあるかどうか知りたいです このディスクのパーティション。
この種のことはlsblk
で可能になるはずです 。私が思いつくことができる最高のものは次のとおりです:
lsblk -nlpo NAME,TYPE /dev/DISK_NAME | awk '/part$/ {print $1}' | grep "[^0-9]n$"
ここで、n
最後のgrepは、問題のパーティション番号を表します。
上記のコマンドは、現在使用しているarchlinuxマシンで機能します。DISK_NAME=sda
およびlsblk -nlpo NAME,TYPE
の出力
/dev/sda disk
/dev/sda1 part
/dev/sda2 part
/dev/sda3 part
/dev/sda5 part
私のコマンドは、DISK_NAME=nvme0n1
のArchLinuxマシンでも機能します。 およびlsblk -nlpo NAME,TYPE
の出力
/dev/nvme0n1 disk
/dev/nvme0n1p1 part
/dev/nvme0n1p2 part
それでも、これはかなりハッキーな感じがするので、任意のディスクで機能するかどうかはわかりません。
これを行うためのより良い方法はありますか?
承認された回答:
sda1
が保証されるわけではありません まったく存在します–私はsda4とsda5のみを備えたSSDを持っています。では、最初のパーティションは開始LBAが最も低いパーティションになりますか?
または、おそらくパーティションテーブルの最初のエントリですか? 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
これは最初のパーティションです–それは 2 ですか (LBAが最も低い)または 1 (パーティション番号が最も小さい)
古代のfdisk -l
を好む場合 コマンドを実行すると、[パーティションテーブルの番号が最も小さいパーティションが最初に来るように]パーティションテーブルが並べ替えられます。