모든 파티션을 트리와 같은 형식 (기본, 확장 및 논리)으로 표시하는 방법은 무엇입니까?


11

나는 출력과 비슷한 findmnt것이지만 볼륨 대신 마운트 포인트 (예) 를 찾으려고합니다 .

TARGET                       TYPE        FSTYPE  
sda 
├─sda1                       Primary     ext4
│ └─/
├─sda2                       Primary     NTFS    
├─sda3                       Primary     ext4 
│ └─/boot
└─sda4                       Extended
  ├─sda5                     Logical     ext4
  │ └─/home
  └─sda6                     Logical     ext4
    └─/var

TYPE 및 FSTYPE의 표시는 선택 사항이며 트리 레이아웃이 더 중요합니다.

lsblk기본, 확장 및 논리 파티션의 차이점을 나타내지 않으므로 출력 이 다소 불완전합니다. (내가 까다 롭다는 것을 안다) :

lsblk -a
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 186.3G  0 disk 
├─sda1   8:1    0 106.6G  0 part 
├─sda2   8:2    0  52.8G  0 part /media/F66E431C6E42D551
├─sda3   8:3    0  1023M  0 part [SWAP]
├─sda4   8:4    0     1K  0 part 
├─sda5   8:5    0   953M  0 part /boot
├─sda6   8:6    0   487M  0 part [SWAP]
├─sda7   8:7    0    14G  0 part /
└─sda8   8:8    0  10.5G  0 part /home

내가 알고 sda4확장 파티션이 포함 sda5, sda6, sda7, sda8논리 파티션; 그러나 다른 사람이 출력을보고 있다면 알 수 없습니다. 대신의 경우 partdisk그 saids pri logext좋은 대안이 될 것이다, 적어도 나는 관계를 알고있다. 그러나 모두가 partS .. 때문에 좋지 않다.

sudo fdisk -l 산출:

Disk /dev/sda: 200.0 GB, 200049647616 bytes
255 heads, 63 sectors/track, 24321 cylinders, total 390721968 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
Disk identifier: 0x1549f232

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   223629311   111814624+   7  HPFS/NTFS/exFAT
/dev/sda2       225724416   336437306    55356445+   7  HPFS/NTFS/exFAT
/dev/sda3       223629312   225724415     1047552   82  Linux swap / Solaris
/dev/sda4       336439294   390721535    27141121    5  Extended
/dev/sda5       336439296   338391039      975872   83  Linux
/dev/sda6       338393088   339390463      498688   82  Linux swap / Solaris
/dev/sda7       339392512   368687103    14647296   83  Linux
/dev/sda8       368689152   390721535    11016192   83  Linux

Partition table entries are not in disk order

답변:


5

원하는 모든 것이 lsblk기본 / 논리 파티션을 표시 하는 것이라면 조합 fdisk과 구문 분석을 사용 하여이 작업을 수행 할 수 있습니다 . fdisk -l루트로 실행하면 모든 파티션이 나열되고 확장 파티션은 다음과 같이 표시됩니다 Ext'd.

# fdisk -l | grep dev
Disk /dev/sda: 500.1 GB, 500107862016 bytes
/dev/sda1              63       80324       40131   de  Dell Utility
/dev/sda2   *       81920    30801919    15360000    7  HPFS/NTFS/exFAT
/dev/sda3        30801920   194643539    81920810    7  HPFS/NTFS/exFAT
/dev/sda4       194643601   976773119   391064759+   f  W95 Ext'd (LBA)
/dev/sda5       194643603   198836504     2096451    c  W95 FAT32 (LBA)
/dev/sda6       342951936   960387071   308717568   83  Linux
/dev/sda7       198840320   342949887    72054784   83  Linux
/dev/sda8       960389120   976773119     8192000   82  Linux swap / Solaris

그런 다음 작은 구문 분석과 결합하여 원하는 출력을 얻을 수 있습니다.

$ lsblk -a | perl -lpe 'BEGIN{open(A,"sudo fdisk -l |");
                      while(<A>){next unless /Ext/; 
                                 $k{$1}++ if /^.*?(...\d)\s/; }} 
                      @a=split(/\s+/);
                      $a[0]=~s/\W+//;
                      s/$a[5]/Extended/ if defined($k{$a[0]});'
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0  39.2M  0 part 
├─sda2   8:2    0  14.7G  0 part 
├─sda3   8:3    0  78.1G  0 part /winblows
├─sda4   8:4    0     1K  0 Extended 
├─sda5   8:5    0     2G  0 part 
├─sda6   8:6    0 294.4G  0 part /home
├─sda7   8:7    0  68.7G  0 part /
└─sda8   8:8    0   7.8G  0 part [SWAP]

findmnt확장 된 파티션은 마운트되지 않으므로 확장 파티션이 표시되지 않기 때문에 이것이 최선의 방법이라고 생각합니다 . 그렇지 않으면 같은 방식으로 구문 분석 할 수 있습니다.


5

블리드

명령 blkid을 사용하여 해당 행을 따라 무언가를 표시 할 수 있습니다 .

$ blkid
/dev/sda1: LABEL="SYSTEM_DRV" UUID="XXXXXX" TYPE="ntfs" 
/dev/sda2: LABEL="Windows7_OS" UUID="XXXXX" TYPE="ntfs" 
/dev/sda3: LABEL="Lenovo_Recovery" UUID="XXXX" TYPE="ntfs" 
/dev/sda5: UUID="XXXX" TYPE="ext4" 
/dev/sda6: UUID="XXXX" TYPE="LVM2_member" 
/dev/mapper/vg_grinchy-lv_root: UUID="XXXX" TYPE="ext4" 
/dev/mapper/vg_grinchy-lv_swap: UUID="XXXX" TYPE="swap" 
/dev/mapper/vg_grinchy-lv_home: UUID="XXXX" TYPE="ext4" 

위에서 UUID를 제거하고 X로 바꿨습니다. blkid다른 출력을 원할 경우 명령에서 인수를 사용할 수도 있습니다.

예를 들면 다음과 같습니다.

$ blkid -o list
device                         fs_type      label         mount point                        UUID
----------------------------------------------------------------------------------------------------------------------------------
/dev/sda1                      ntfs         SYSTEM_DRV    (not mounted)                      XXXX
/dev/sda2                      ntfs         Windows7_OS   (not mounted)                      XXXX

lsblk

다른 도구 blkidlsblk입니다. 다음 옵션을 사용하여 모든 블록 장치를 나열 할 수 있습니다.

$ lsblk -a
NAME                         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0                          7:0    0         0 loop 
loop1                          7:1    0         0 loop 
loop2                          7:2    0         0 loop 
loop3                          7:3    0         0 loop 
loop4                          7:4    0         0 loop 
loop5                          7:5    0         0 loop 
loop6                          7:6    0         0 loop 
loop7                          7:7    0         0 loop 
sda                            8:0    0 465.8G  0 disk 
├─sda1                         8:1    0   500M  0 part /boot
└─sda2                         8:2    0 465.3G  0 part 
  ├─vg_totoro-lv_root (dm-0) 253:0    0 431.5G  0 lvm  /
  ├─vg_totoro-lv_swap (dm-1) 253:1    0  13.8G  0 lvm  [SWAP]
  └─vg_totoro-lv_home (dm-2) 253:2    0    20G  0 lvm  /home
sr0                           11:0    1  1024M  0 rom  

사용법을 확인하고 추가 옵션이 필요합니다.


슬프게도 확장 된 볼륨이나 조직을 보여주지 않습니다.
Braiam

@Braiam-찾고있는 것을 보았습니다. 확장 파티션의 파티션도보고 싶습니다. 흠 ...
slm

@Braiam-도움이 되셨습니까?
slm

나는 그것을 일찍 보았고 예상 결과를 얻지 못했습니다. 그것은 나에게 파티션을 보여 주지만 논리 볼륨을 기본 볼륨과 구별 할 방법이 없습니다 ... mm ... 더 두껍게합니다 ...
Braiam

3

다음과 parted같이 파티션 유형을 나열 할 수 있습니다 .

$ sudo parted /dev/sda print
Model: ATA ST3320613AS (scsi)
Dysk /dev/sda: 320GB
Rozmiar sektora (logiczny/fizyczny): 512B/512B
Tablica partycji: msdos

Numer  Początek  Koniec  Rozmiar  Typ       System plików   Flaga
 1     1049kB    318GB   318GB    primary   ext4            ładowalna
 2     318GB     320GB   2145MB   extended
 5     318GB     319GB   1074MB   logical   linux-swap(v1)
 6     319GB     320GB   1071MB   logical   ext2

당신이 언급 한 것처럼 최소한 관계를 아는 것이 좋기 때문에 나무는 없지만 도움이 될 수 있습니다. GUI를 사용하려면 다음을 시도해보십시오 GParted.

여기에 이미지 설명을 입력하십시오


나는 그것을 일찍 보았고 예상 결과를 얻지 못했습니다. 그것은 나에게 파티션을 보여 주지만 논리 볼륨을 기본 볼륨과 구별 할 방법이 없습니다 ... mm ... 더 두껍게합니다 ...
Braiam

1
@ Braiam, 나는 대답을 업데이트했다. 불행히도 트리 목록을 작성하는 명령 줄 방법을 찾지 못했습니다.
Nykakin

이것이 유일한 해결책이 될 것 같습니다 ... btw, NTFS 파티션을 수정하십시오 : P
Braiam

명령 줄 출력과 다른 점을 보시면 웹 화면
일뿐입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.