“ fdisk -l” เช่นรายการของพาร์ติชันและชนิดสำหรับโลจิคัลวอลุ่ม LVM หรือไม่?


22

คุณรู้หรือไม่ว่า "fdisk -l" แสดงตารางพาร์ติชันของไดรฟ์และแสดง ID / ประเภทพาร์ติชันสำหรับแต่ละพาร์ติชันอย่างไร

มีวิธีคล้ายกันในการรับ ID พาร์ติชันสำหรับโลจิคัลวอลุ่ม LVM หรือไม่?

แก้ไข: ฉันรู้ "lvs" ซึ่งส่วนใหญ่เป็นสิ่งที่ฉันกำลังมองหา (มันให้ฉันรายการของปริมาณตรรกะชนิดเช่น "fdisk -l" ... ยกเว้นจะเป็นประโยชน์ที่จะรู้ว่าสิ่งที่ ประเภทพาร์ติชันของโลจิคัลวอลุ่ม (ซึ่งฉันคิดว่าเป็น "พาร์ติชันเสมือนจริง") คือข้อมูลนั้นเป็นรายการ "fdisk -l" ในสองคอลัมน์สุดท้ายทางด้านขวา (เช่น "8e" สำหรับฟิสิคัล พาร์ติชัน LVM หรือ "83" สำหรับ Linux ext ฯลฯ )

เครื่องมือที่ฉันกำลังมองหาอาจไม่ได้เป็นส่วนหนึ่งของ LVM อาจเป็นเพียงยูทิลิตี้อื่น ๆ ที่สามารถพิมพ์รหัสพาร์ติชั่น / พาร์ติชั่นได้หรือไม่?


1
พยายามที่cat /etc/fstabจะแสดงประเภทของระบบไฟล์แม้จะมี LVM ... เสียงที่เห็นได้ชัด แต่ก็ตอบคำถาม ...

คำตอบ:


16

ID พาร์ติชันสำหรับ Linux LVM คือ 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 เป็นเลเยอร์นามธรรมที่ด้านบนของอุปกรณ์เก็บข้อมูลเพื่อให้คุณจัดการได้ง่ายขึ้น ฉันไม่แน่ใจว่ามีข้อมูลใดเกินกว่าที่ fdisk จัดหาให้ตามที่คุณต้องการเพราะ ID พาร์ติชันสำหรับ LVM แสดงขึ้น อย่างไรก็ตามสำหรับข้อมูลเพิ่มเติมเกี่ยวกับโลจิคัลวอลุ่ม 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

4
นอกจากนี้: pvs, pvdisplay และ pvscan สำหรับการรับข้อมูลเกี่ยวกับปริมาณทางกายภาพ ...
Freiheit

9

โลจิคัลวอลุ่มไม่มี "type" เหมือนกับ DOS พาร์ติชันเก่า เช่นเดียวกับไฟล์ 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)
[...]

2
คำตอบที่ดี ดูเหมือนว่าไม่มีใครเข้าใจสิ่งที่ OP ร้องขอ ฉันต้องทำการเปลี่ยนแปลงสคริปต์ของคุณ: ฉันได้เพิ่มตัวเลือก - การอ้างอิงลงในคำสั่งไฟล์ LV แต่ละตัวเชื่อมโยงกับ / dm-X โดยผู้ทำแผนที่อุปกรณ์
codewaggle

1
@ codewaggle ขอบคุณ; เพิ่มตัวเลือกแล้ว เมื่อฉันเขียนคำตอบกลับใน '09 ตัวเลือกไม่จำเป็น แต่เวลาเปลี่ยน
ตุ๊กตา

2
นี่ควรเป็นคำตอบที่ยอมรับได้!
lanoxx

1
ไม่ทำงานเมื่อคุณมีเครื่องหมายขีดกลางในชื่อ VG ของคุณสิ่งเหล่านี้เป็นสองเท่าอัปเดตคำตอบ อาจเป็นปัญหาเดียวกันกับชื่อ LV แต่ฉันไม่ได้ทดสอบ
sjas

6

LVM เป็นนามธรรมที่อยู่เหนือดิสก์ทางกายภาพ

โลจิคัลวอลุ่ม (ซึ่งคุณสามารถจัดรูปแบบและวางไฟล์) ได้รับการจัดสรรจากกลุ่มวอลุ่มซึ่งอาจประกอบด้วยฟิสิคัลพาร์ติชันอย่างน้อยหนึ่ง - ฟิสิคัลพาร์ติชันดิสก์จริง

คำถามของคุณไม่ค่อยชัดเจน หากคุณต้องการที่จะแสดงว่าพาร์ทิชันดิสก์ใดที่มีโลจิคัลวอลุ่มตั้งอยู่จริง lvdisplay - แผนที่อาจช่วยได้:

# lvdisplay - แผนที่
  --- ปริมาณเชิงตรรกะ ---
  LV Name / dev / VolGroup00 / root
  ชื่อ VG VolGroup00
  LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx
  LV Write Access การอ่าน / เขียน
  มีสถานะ LV
  # open 1
  ขนาด LV 5.00 GB
  ปัจจุบัน LE 160
  ส่วนที่ 1
  การจัดสรรสืบทอด
  อ่านส่วนต่อไปโดยอัตโนมัติ
  - ตั้งค่าปัจจุบันเป็น 256
  อุปกรณ์บล็อก 253: 0

  --- ส่วนงาน ---
  ขอบเขตเชิงตรรกะ 0 ถึง 159:
    พิมพ์เชิงเส้น
    ปริมาณทางกายภาพ / dev / sda2
    ขอบเขตทางกายภาพ 0 ถึง 159

ไม่ตอบคำถาม แต่เป็นวิธีเดียวที่จะตรวจสอบว่า LV ของคุณมีการแยกส่วนหรือไม่ โหวตขึ้นยังไม่เห็นนี่ที่ไหนอีกแล้ว
sjas

6

โลจิคัลวอลุ่มไม่มีแนวคิดเกี่ยวกับ "ประเภท" แต่เป็นเพียงแค่บล็อกอุปกรณ์ หากคุณต้องการตรวจสอบเนื้อหาของอุปกรณ์บล็อกและตรวจสอบสิ่งที่อยู่ในนั้นคุณอาจต้องการดูblkidเครื่องมือซึ่งทำสิ่งนั้นอย่างแน่นอน


5

1) โลจิคัลวอลุ่มไม่ใช่พาร์ติชันดิสก์ (ฟิสิคัล) มันเป็นอุปกรณ์บล็อกเสมือนที่สร้างขึ้นภายในเคอร์เนล Linux ด้วย Device Mapper เป็นเทคโนโลยีหนึ่งที่สามารถใช้ในการตั้งค่าอุปกรณ์บล็อกเดียวโดยใช้พาร์ติชันดิสก์สองพาร์ติชันและอุปกรณ์บล็อกสองเครื่องที่ใช้พาร์ติชันดิสก์เดี่ยวและอีกมากมาย

# dmsetup targets 

หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการเยี่ยมชม DM มันหน้าแรกตรวจสอบของหน้าคู่มืออ่าน RedHat คู่มือหรือเช่นนี้บทความ เป็นเทคโนโลยีที่ยอดเยี่ยมที่กล่าวถึงใน Wikipedia เท่านั้น

2) เช่นบนคอมพิวเตอร์ที่บ้านของฉันฉันมีพาร์ทิชันดิสก์ทางกายภาพเช่นเดียวกับอุปกรณ์ DM (ปริมาณตรรกะ)

# cat /proc/partitions

#blocks สำคัญเล็กน้อย

   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

โดยพื้นฐานแล้วพวกเขาไม่มีประเภทหรือ 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 partition!

# 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

และเป็นพาร์ติชันประเภท LVM (8e) ที่กล่าวถึงโดย timberman

# 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 จึงเป็นสอง LVs (lvroot และ lvswap) ที่สร้างขึ้นในพาร์ติชัน / dev / hdb2 ของดิสก์แรกของฉัน (กับ CentOS) ในขณะที่ dm-2 และ dm-3 เป็น LVs ที่สร้างขึ้นบนพาร์ติชัน / dev / hda2 ของดิสก์ที่สองของฉัน (กับ Fedora)

อุปกรณ์โลจิคัลสามารถมีเลเบล (UUID) คุณสามารถตรวจสอบพวกเขาด้วยคำสั่ง lvdisplay ดังกล่าวข้างต้น แต่เป็นเพียงป้ายกำกับซึ่งคุณสามารถใช้ (-u) แทนสวิตช์หลักเล็ก ๆ น้อย ๆ ได้ (-j -m)


4

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 ~]# 

0

โลจิคัลวอลุ่มไม่มี ID หรือชนิดพาร์ติชัน ประกอบด้วยฟิสิคัล extents (PE) ซึ่งอาจกระจายอยู่ในฟิสิคัลวอลุ่มหลายตัว(PV) ซึ่งแต่ละพาร์ติชันอาจเป็นพาร์ติชัน (เช่น / dev / sda2) หรือดิสก์ที่สมบูรณ์ (เช่น / dev / sdb)



0

ID ชนิดพาร์ติชันถูกเก็บไว้ในตารางพาร์ติชันเท่านั้นไม่ใช่พาร์ติชันเอง ในทางกลับกันโลจิคัลวอลุ่ม LVM จะถูกปฏิบัติเสมือนพาร์ติชันแต่ละตัวไม่ใช่ดิสก์ดังนั้นจึงไม่มีตารางพาร์ติชันจึงไม่มีรหัสประเภทพาร์ติชันที่จะค้นหา

นอกจากนี้โปรดทราบว่ารหัสประเภทนี้มีวัตถุประสงค์เพื่อให้ข้อมูลใน Linux เท่านั้น (นี่ไม่เป็นความจริงสำหรับ Windows) มันไม่มีผลต่อเนื้อหาและระบบไฟล์ของพาร์ติชันนั้น


0

ฉันคิดว่าคำสั่งบรรทัดเดียวนี้สามารถช่วย:

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

0

หากคุณดูที่โพสต์ก่อนหน้าจาก "Mark V" คุณจะเห็นคำสั่ง lsblk ถูกใช้

นี่เป็นตัวเลือกที่ยอดเยี่ยมอย่างไรก็ตาม OP ขอประเภทที่ไม่ได้รับคำตอบส่วนใหญ่ การใช้ lsblk จากด้านบนและเพิ่ม "FSTYPE" คุณจะได้รับประเภทที่คาดหวัง:

# lsblk -o TYPE,NAME,KNAME,UUID,MOUNTPOINT,SIZE,FSTYPE
TYPE NAME               KNAME UUID                                   MOUNTPOINT  SIZE FSTYPE
disk fd0                fd0                                                        4K
disk sda                sda                                                      100G
part ├─sda1             sda1  a6f1731f-e2bf-4dae-a443-269b079388a6   /boot         1G xfs
part ├─sda2             sda2  6CCtv5-HHYq-aXDm-m4jj-IpD3-rfv7-AI57D9              49G 
LVM2_member
lvm  │ ├─cl_hadron-root dm-0  0c8bfb8b-ec32-4152-9abd-b6bc5c475b00   /            97G xfs
lvm  │ └─cl_hadron-swap dm-1  8aeeadab-69da-49ff-991d-dad8857fb82b   [SWAP]        2G 
swap
# 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.