GNU/Linux >> Linux の 問題 >  >> Linux

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

/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を好む場合 コマンドを実行すると、[パーティションテーブルの番号が最も小さいパーティションが最初に来るように]パーティションテーブルが並べ替えられます。


Linux
  1. パーティションレスファイルシステムのメリットは?

  2. 標準ツールを使用してディスク全体のパーティションレイアウトをコピーするにはどうすればよいですか?

  3. Isoを抽出する最速の方法は?

  1. 1つのパーティションのみを同期する方法は?

  2. 特定のシステムにブートパーティションが必要かどうかを判断するにはどうすればよいですか?

  3. インストール後にルートパーティションのファイルシステムを変更しますか?

  1. /と/homeをマージする最も簡単な方法は?

  2. ブートローダーはどのパーティションにインストールされていますか?

  3. Linuxでmkfsコマンドを使用して、ディスクまたはパーティション上のファイルシステムをフォーマットする