스토리지 순서대로 파티션을 나열하는 방법은 무엇입니까?

스토리지 순서대로 파티션을 나열하는 방법은 무엇입니까?

일반 정보(용량, 섹터 크기 등)를 설명한 후 fdisksdXY, 부팅, 시작, 끝, 섹터 번호, 크기, 플래그, 유형 등 8개의 열이 표시됩니다.

파티션은 이름의 Y를 기준으로 정렬됩니다 sdXY. 때때로(즉, 이것이 사실인 경우) 저장 순서에 나열되지 않았음을 나타내는 메모가 아래에 추가됩니다.

시작 섹터를 기준으로 정렬된 블록 지향 장치의 파티션을 나열하려면 어떻게 해야 합니까 fdisk(또는 다른 적절한 도구)?즉, 세 번째 열입니다.?

답변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: 두 번째 필드( )와 두 번째 필드( )만 숫자로 정렬하고 -k2,2나머지 행은 무시합니다.

답변2

디스크에 나타나는 순서대로 파티션을 나열하는 도구는 parted다음과 같습니다. 예를 들어 루트로 실행하는 경우 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옵션. 파티션의 시작 섹터만 주어지므로 종료 섹터와 섹터 크기가 필요하지 않은 경우
lsblkla의 fdisk출력을 얻을 수 있습니다.

lsblk -o name,start,size,parttype,parttypename /dev/sda
이름시작크기부분 유형부분 유형이름
SD 카드 7.5G          
├─sda1 2048 700M 0x83 리눅스
├─sda2 1640448 2M 0x7 HPFS/NTFS/exFAT
├─sda3 1644544 32M 0xc W95 FAT32(LBA)
└─sda4 1435648 100M 0x83 리눅스

시작 섹터별로 정렬하려면 다음을 추가하세요 -x start.

lsblk -o name,start,size,parttype,parttypename -x start /dev/sda
이름시작크기부분 유형부분 유형이름
SD 카드 7.5G          
sda1 2048 700M 0x83 리눅스
sda4 1435648 100M 0x83 리눅스
sda2 1640448 2M 0x7 HPFS/NTFS/exFAT
sda3 1644544 32M 0xc W95 FAT32 (LBA)

lsblk --help가능한 모든 필드/열의 세부 목록을 얻으려면 실행하세요 .

관련 정보