一般情報(容量、セクタサイズなど)を説明した後、fdisk
sdXY、起動、開始、終了、セクタ番号、サイズ、フラグ、タイプなど8つの列が表示されます。
パーティションは名前のYに基づいてソートされますsdXY
。時々(つまり、これが真の場合)、保存順序にリストされていないことを示すメモが以下に追加されます。
起動セクタに基づいてソートされたブロック指向デバイスのパーティションを一覧表示するにはどうすればよいですかfdisk
(または他の適切なツール)。つまり、3番目の列です。?
答え1
これを行うプログラムはわかりませんが、必要なものがパーティションリストだけであれば、ソートは簡単です。たとえば、私のシステムでは次のようになります。
$ sudo fdisk -l
Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: SAMSUNG MZVLB1T0HBLR-000L7
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 97ED36D9-B503-42C1-ACE5-3E2E49212F20
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 534527 532480 260M EFI System
/dev/nvme0n1p2 534528 567295 32768 16M Microsoft reserved
/dev/nvme0n1p3 567296 390625000 390057705 186G Microsoft basic data
/dev/nvme0n1p4 1998360576 2000408575 2048000 1000M Windows recovery environment
/dev/nvme0n1p5 390625280 509251583 118626304 56.6G Linux filesystem
/dev/nvme0n1p6 509253632 1935546367 1426292736 680.1G Linux filesystem
/dev/nvme0n1p7 1935546368 1998360575 62814208 30G Linux swap
Partition table entries are not in disk order.
Disk /dev/mapper/home: 680.1 GiB, 730253492224 bytes, 1426276352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
以下を使用してソートできます。
$ sudo fdisk -l | grep -E '^(Devi|/dev)' | sort -nk2,2
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 534527 532480 260M EFI System
/dev/nvme0n1p2 534528 567295 32768 16M Microsoft reserved
/dev/nvme0n1p3 567296 390625000 390057705 186G Microsoft basic data
/dev/nvme0n1p5 390625280 509251583 118626304 56.6G Linux filesystem
/dev/nvme0n1p6 509253632 1935546367 1426292736 680.1G Linux filesystem
/dev/nvme0n1p7 1935546368 1998360575 62814208 30G Linux swap
/dev/nvme0n1p4 1998360576 2000408575 2048000 1000M Windows recovery environment
使用されるコマンドは
grep -E '^(Devi|/dev)'
-E
:「or」を使用できる拡張正規表現()を使用します|
。正規表現は^
()またはまたはでDevi
始まるすべての行と一致します/dev
。sort -nk2,2
-n
:2番目のフィールド()と2番目のフィールド()のみを数字で並べ替え、-k2,2
残りの行は無視します。
答え2
ディスクに表示される順序でパーティションを一覧表示するツールは parted
次のとおりです。たとえば、rootとして実行する場合は、s
単位サイズとしてectorを使用します。
parted /dev/sda unit s print
あなたは得る
Model: IS817 DISK (scsi)
Disk /dev/sda: 15728640s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 2048s 1435647s 1433600s primary ext2 boot
4 1435648s 1640447s 204800s primary ext3
2 1640448s 1644543s 4096s primary ntfs
3 1644544s 1710079s 65536s primary fat32 lba
他のツールlsblk
(ルートではなくてもよい)および--sort
/または-x
オプション。パーティションの開始セクタのみが与えられるので、終了セクタとセクタサイズが不要な場合、
lsblk
laのfdisk
出力を得ることができる。
lsblk -o name,start,size,parttype,parttypename /dev/sda
名前開始サイズ部分タイプ部分タイプ名 SDカード7.5G ├─sda1 2048 700M 0x83 Linux ├─sda2 1640448 2M 0x7 HPFS/NTFS/exFAT ├─sda3 1644544 32M 0xc W95 FAT32(LBA) └─sda4 1435648 100M 0x83 Linux
開始セクタで並べ替えるには、次を追加します-x start
。
lsblk -o name,start,size,parttype,parttypename -x start /dev/sda
名前開始サイズ部分タイプ部分タイプ名 SDカード7.5G sda1 2048700M 0x83 Linux sda4 1435648 100M 0x83 Linux sda2 1640448 2M 0x7 HPFS/NTFS/exFAT sda3 1644544 32M 0xc W95 FAT32(LBA)
lsblk --help
可能なすべてのフィールド/列の詳細なリストを取得するには、実行してください。