我试图找到类似于输出的内容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
;但如果我看到其他人的输出我就不知道了。如果代替part
anddisk
它说pri
log
andext
将是一个很好的选择,至少我知道其中的关系。但既然一切都不part
好。
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
答案1
黑子
您可以使用该命令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
另一种工具blkid
是lsblk
.您可以使用以下选项列出所有块设备:
$ 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
检查它的用法,它需要额外的选项。
答案2
如果您想要的只是lsblk
显示主/逻辑分区,您应该能够通过fdisk
和 解析的组合来完成此操作。fdisk -l
如果以 root 身份运行,将列出所有分区,并用以下标记标记扩展分区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
不会显示扩展分区,因为它们永远不会被安装。否则,你可以用同样的方式解析它。
答案3
尝试
lsblk -sf -o MOUNTPOINT,FSTYPE,NAME
[root@test01 ~]# lsblk -sf -o MOUNTPOINT,FSTYPE,NAME
MOUNTPOINT FSTYPE NAME
sr0
/boot ext4 sda1
└─sda
[SWAP] swap sdb1
└─sdb
/ ext4 rootvg-slashlv
LVM2_member └─sda2
└─sda
/apps ext4 appvg-applv
LVM2_member └─sdc
/home ext4 rootvg-homelv
LVM2_member ├─sda2
│ └─sda
LVM2_member └─sdd1
└─sdd
/var ext4 rootvg-varlv
LVM2_member └─sda2
└─sda
/tmp ext4 rootvg-tmplv
LVM2_member └─sda2
└─sda
/org ext4 rootvg-orglv
LVM2_member └─sda2
└─sda
[root@test01 ~]#
答案4
您可以使用以下命令列出分区类型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
: