ディスクのn番目のパーティションを識別するスクリプト可能な方法はありますか?

ディスクのn番目のパーティションを識別するスクリプト可能な方法はありますか?

にディスクがあるとしましょう/dev/DISK_NAMEnこのディスクの6番目のパーティションを見つけるための命令があるかどうか疑問に思います。

これが可能なはずですlsblk。私が考えることができる最善は次のとおりです。

lsblk -nlpo NAME,TYPE /dev/DISK_NAME | awk '/part$/ {print $1}' | grep "[^0-9]n$"

ここでn最後の grep は問題のパーティション番号を示します。

上記のコマンドは現在私が使用しているArch Linuxマシンに適用され、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私のコマンドは、出力が次のlsblk -nlpo NAME,TYPEようなArch Linuxシステムでも機能します。

/dev/nvme0n1   disk
/dev/nvme0n1p1 part
/dev/nvme0n1p2 part

しかし、これはやや昔ながらの気分になり、任意のディスクで動作するかどうかはわかりません。

これを行うより良い方法はありますか?

ベストアンサー1

これが本当であるという保証はありません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のコマンドを好む場合は、[最も低い番号のパーティションが最初に来るように]パーティションテーブルをソートします。

おすすめ記事