Bagaimana cara menampilkan semua partisi dalam format seperti pohon (primer, luas dan logis)?


11

Saya mencoba menemukan sesuatu yang menyerupai keluaran findmnttetapi dengan volume, bukan mount-point (contoh):

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

Acara TYPE dan FSTYPE adalah opsional, yang membuat saya lebih tertarik adalah tata letak pohon.

Output dari lsblkagak tidak lengkap karena tidak menunjukkan perbedaan antara partisi Primer, Diperpanjang dan Logis. (Saya tahu saya pilih-pilih di sini):

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

Saya tahu bahwa sda4partisi extended meliputi sda5, sda6, sda7, sda8partisi logical; tetapi jika saya melihat output orang lain saya tidak akan tahu. Jika alih-alih partdan diskdikatakan pri logdan extakan menjadi alternatif yang baik, setidaknya saya tahu hubungannya. Tapi karena semuanya part... tidak bagus.

sudo fdisk -l keluaran:

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

Jawaban:


5

Jika semua yang Anda inginkan adalah lsblkpartisi yang memperlihatkan kepada Anda partisi primer / logis, Anda harus dapat melakukan ini dengan kombinasi fdiskdan parsing. fdisk -ljika dijalankan sebagai root akan mencantumkan semua partisi dan akan menandai yang diperluas dengan 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

Anda kemudian bisa menggabungkannya dengan sedikit penguraian untuk mendapatkan output yang Anda inginkan:

$ 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]

Saya pikir itu yang terbaik yang dapat Anda lakukan karena findmnttidak akan menampilkan partisi diperpanjang karena mereka tidak akan pernah dipasang. Jika tidak, Anda dapat menguraikannya dengan cara yang sama.


5

blkid

Anda dapat menggunakan perintah blkiduntuk menunjukkan sesuatu di sepanjang baris tersebut:

$ 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" 

Saya telah menghapus UUID dari atas dan menggantinya dengan X. Perintah blkidjuga dapat mengambil argumen jika Anda menginginkan hasil yang berbeda.

Sebagai contoh:

$ 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

Alat alternatif blkidadalah lsblk. Anda dapat menggunakan opsi berikut untuk mencantumkan semua perangkat blok:

$ 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  

Lihat penggunaannya, dibutuhkan opsi tambahan.


Sayangnya itu tidak menunjukkan kepada saya volume yang diperluas atau organisasi.
Braiam

@Braiam - Saya melihat apa yang Anda cari, Anda ingin melihat partisi di partisi extended juga. Hmm ...
slm

@Braiam - apakah itu membantu?
slm

Saya melihat itu lebih awal, tidak mendapatkan hasil yang diharapkan. Ini menunjukkan kepada saya partisi tetapi saya tidak memiliki cara untuk membedakan volume logis dari primer ... mm ... lebih tebal ...
Braiam

3

Anda dapat membuat daftar jenis partisi dengan 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

Tidak ada pohon tetapi mungkin membantu, karena seperti yang Anda sebutkan itu akan baik untuk setidaknya mengetahui hubungan. Jika Anda ingin menggunakan GUI, Anda dapat mencoba GParted:

masukkan deskripsi gambar di sini


Saya melihat itu lebih awal, tidak mendapatkan hasil yang diharapkan. Ini menunjukkan kepada saya partisi tetapi saya tidak memiliki cara untuk membedakan volume logis dari primer ... mm ... lebih tebal ...
Braiam

1
@Braiam, saya memperbarui jawaban saya. Sayangnya, saya tidak menemukan cara baris perintah untuk melakukan daftar pohon.
Nykakin

Tampaknya itu akan menjadi satu-satunya solusi ... btw, perbaiki partisi NTFS: P
Braiam

Ini hanya layar dari web, seperti yang Anda lihat berbeda dari output command line :)
Nykakin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.