“fdisk -l”就像分区列表及其LVM逻辑卷的types?

你知道“fdisk -l”如何列出驱动器分区表,并显示每个分区的分区ID /types?

有没有类似的方式来获取LVM逻辑卷的分区ID?

编辑:我知道“lvs”,这主要是我在找什么(它给了我的逻辑卷列表,有点像“fdisk -l”…除了它也将是有用的知道什么逻辑卷(我喜欢认为是“虚拟分区”)的分区types是这样的:这个信息是“fdisk -l”在右边最后两列中列出的(例如物理的“8e” LVM分区,或Linux分机的“83”等)。

我正在寻找的工具可能不是LVM的一部分; 也许只是一些其他的实用工具,可以打印分区id /types给定一个分区?

Linux LVM的分区ID是8e,由fdisk报告。

 $ sudo fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00008ec7 Device Boot Start End Blocks Id System /dev/sda1 * 1 1013 8136891 8e Linux LVM /dev/sda2 1014 1044 249007+ 5 Extended /dev/sda5 1014 1044 248976 83 Linux 

LVM是存储设备之上的一个抽象层,使您可以更轻松地pipe理它。 我不确定除了fdisk提供的信息之外还有什么信息,因为显示了LVM的分区ID。 但是,有关LVM逻辑卷的其他信息,可以使用“lvscan”,“lvs”和“lvdisplay”。

 $ sudo lvscan ACTIVE '/dev/ops1test/root' [7.35 GB] inherit ACTIVE '/dev/ops1test/swap_1' [388.00 MB] inherit $ sudo lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert root ops1test -wi-ao 7.35G swap_1 ops1test -wi-ao 388.00M $ sudo lvdisplay --- Logical volume --- LV Name /dev/ops1test/root VG Name ops1test LV UUID BfKOpy-L7Ql-905o-7tFk-nnsV-0c7I-w4g9y6 LV Write Access read/write LV Status available # open 1 LV Size 7.35 GB Current LE 1881 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:0 --- Logical volume --- LV Name /dev/ops1test/swap_1 VG Name ops1test LV UUID 8SNfQ9-Hlfk-Edsb-vmL1-DeE3-nBRR-YAM1dV LV Write Access read/write LV Status available # open 2 LV Size 388.00 MB Current LE 97 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 252:1 

同样,您可以通过“vgscan”,“vgs”和“vgdisplay”了解卷组本身的信息。

 $ sudo vgscan Reading all physical volumes. This may take a while... Found volume group "ops1test" using metadata type lvm2 $ sudo vgs VG #PV #LV #SN Attr VSize VFree ops1test 1 2 0 wz--n- 7.76G 32.00M $ sudo vgdisplay --- Volume group --- VG Name ops1test System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 3 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 1 Act PV 1 VG Size 7.76 GB PE Size 4.00 MB Total PE 1986 Alloc PE / Size 1978 / 7.73 GB Free PE / Size 8 / 32.00 MB VG UUID ofpvks-2EDZ-limu-0wAh-tYUN-ISG3-mSS65O 

逻辑卷不像旧DOS分区那样具有“types”。 像Unix文件一样,你必须阅读它们才能知道它们是什么。 像这样的事情应该做的伎俩:

 lvs --all --noheadings | while read lv vg rest; do file --dereference --special-files "/dev/mapper/$(echo $vg | sed 's/-/--/')-$lv"; done 

下面是这个命令给出的输出示例(截短一点):

 [...] /dev/mapper/VolGroup00-LogVol00: Linux rev 1.0 ext4 filesystem data, UUID=b000000e-00f0-0cde-b000-fa0d000ddc00 (extents) (64bit) (large files) (huge files) [...] 

LVM是物理磁盘之上的抽象。

逻辑卷(您可以在其上格式化和放置文件)从卷组中分配,卷组可以由一个或多个物理盘区(实际的物理磁盘分区)组成。

你的问题有点不清楚。 如果您想要显示逻辑卷实际位于哪个磁盘分区,lvdisplay –maps可能会有所帮助:

 #lvdisplay  - 地图
   ---逻辑卷---
   LV名称/ dev / VolGroup00 / root
   VG名称VolGroup00
   LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx
   LV写入访问读/写
   LV状态可用
   #打开1
   LV尺寸5.00 GB
  目前LE 160
  细分市场1
  分配inheritance
  预读行业汽车
   - 目前设置为256
  块设备253:0

   ---细分---
  逻辑盘区0到159:
    键入线性
    物理卷/ dev / sda2
    物理盘区0到159

逻辑卷没有“types”的概念,他们只是块设备。 如果您想检查块设备的内容并确定其中的内容,则可能需要查看blkid工具,该工具确实如此。

1)逻辑卷不是(物理)磁盘分区。 这是一个在Linux内核中使用Device Mapper创build的虚拟块设备。 这是一种技术,可以使用两个磁盘分区设置单个块设备,以及使用单个磁盘分区的两个块设备等等。

 # dmsetup targets 

如果你想了解更多关于DM访问它的主页 ,请查看它的手册页 ,阅读RedHat 手册或例如本文。 这是伟大的技术只在维基百科中提到 。

2)例如在我的家用电脑上,我有物理磁盘分区以及DM设备(逻辑卷)。

 # cat /proc/partitions 

主要次要#块名称

  3 0 80043264 hda 3 1 204800 hda1 3 2 79831029 hda2 3 64 19589976 hdb 3 65 104391 hdb1 3 66 19478812 hdb2 253 0 17432576 dm-0 253 1 2031616 dm-1 253 2 77762560 dm-2 253 3 2064384 dm-3 

它们主要没有任何types或ID,只是以开始扇区的数量和长度来定义它们。

 # dmsetup status -j 253 -m 0 0 34865152 linear 

所以dm-0是由一些物理设备的34865152扇区组成的片段。

 # dmsetup deps -j 253 -m 0 1 dependencies : (3, 66) 

而这个设备是/ dev / hdb2分区!

 # fdisk /dev/hdb Command (m for help): p Device Boot Start End Blocks Id System /dev/hdb1 * 1 13 104391 83 Linux /dev/hdb2 14 2438 19478812+ 8e Linux LVM 

它是由timberman提到的LVM(8e)型分区。

 # pvs PV VG Fmt Attr PSize PFree /dev/hda2 VolGroup lvm2 a- 76,13G 0 /dev/hdb2 VolGroup00 lvm2 a- 18,56G 0 

这个单一(物理)磁盘分区可以容纳一个组中的逻辑卷。 我有两个磁盘,所以有两个这样的组,每个组拥有两个逻辑设备。

 # lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert lv_root VolGroup -wi-a- 74,16G lv_swap VolGroup -wi-a- 1,97G LogVol00 VolGroup00 -wi-ao 16,62G LogVol01 VolGroup00 -wi-ao 1,94G 

因此,dm-0和dm-1是在我的第一个磁盘(用CentOS)的/ dev / hdb2分区上创build的两个LV(lvroot和lvswap),而dm-2和dm-3是在我的/ dev / hda2分区上创build的LV我的第二个磁盘(与Fedora)。

逻辑设备可以有标签(UUID)。 你可以用上面提到的lvdisplay命令检查它们。 但它们只是标签,您可以使用(-u)而不是主要次要数字(-j -m开关)。

lsblk是否提供您需要的信息?

 [root@localhost ~]# lsblk -o TYPE,NAME,KNAME,UUID,MOUNTPOINT,SIZE TYPE NAME KNAME UUID MOUNTPOINT SIZE rom sr0 sr0 2014-07-04-15-59-23-00 362M disk vda vda 1G part └─vda1 vda1 7eadd712-6571-4722-8a5e-5d419176f6dc /boot 1023M disk vdb vdb eVbl9d-dxf0-yqiV-evZC-FHPB-RrZb-eb1897 20G lvm ├─vg_system-lv_swap dm-0 44bb22f8-d8c6-482c-8763-36ee58c2528e [SWAP] 1G lvm ├─vg_system-lv_usr dm-1 c1f9ac62-17a3-4dfa-88b6-6a26394dd270 /usr 2G lvm ├─vg_system-lv_root dm-2 6724461a-2401-42ec-8180-fb7582040b68 / 10G lvm ├─vg_system-lv_var dm-3 f2044fb7-5a64-4ae3-8407-891f75aba534 /var 2G lvm └─vg_system-lv_home dm-4 8ad80cce-bdf4-43e9-b755-b987169ed062 /home 2G [root@localhost ~]# 

逻辑卷没有分区ID或types。 它们由可以分布在多个物理卷 (PV)上的物理盘区 (PE)组成,每个物理卷可以是分区(例如/ dev / sda2)或完整的盘(例如/ dev / sdb)。

可能不需要,但我在这里学到了一点自己http://www.linuxconfig.org/Linux_lvm_-_Logical_Volume_Manager

分区typesid只存储在分区表中,而不是分区本身。 另一方面,LVM逻辑卷通常被视为单个分区,而不是磁盘,所以没有分区表,因此没有分区typesID来查找。

另外请注意,typesid仅用于在Linux中提供信息的目的(尽pipeWindows不适用)。 它对该分区的内容和文件系统没有影响。

我认为这个一行命令可以帮助:

 for i in $(df -h | grep mapper | cut -d" " -f1); do echo $i; lvdisplay --maps $i | grep "Physical volume"; done 

输出与此类似:

 /dev/mapper/myserver-root Physical volume /dev/sda5 /dev/mapper/SambaShares Physical volume /dev/sdb1 Physical volume /dev/sdo1 Physical volume /dev/sdp /dev/mapper/Test--Disc Physical volume /dev/sdf1 Physical volume /dev/sdg1 Physical volume /dev/sdh1 Physical volume /dev/sdi1 /dev/mapper/Clonezilla-partimag Physical volume /dev/sdk1 Physical volume /dev/sdj1 Physical volume /dev/sdl1 Physical volume /dev/sdm1 Physical volume /dev/sdn1 Physical volume /dev/sdq1