Bạn có thích danh sách các phân vùng và kiểu của chúng cho các khối logic LVM không?


22

Bạn biết làm thế nào "fdisk -l" liệt kê các bảng phân vùng ổ đĩa và hiển thị id / loại phân vùng cho mỗi phân vùng?

Có cách nào tương tự để lấy id phân vùng cho khối lượng logic LVM không?

EDIT: Tôi biết về "lvs", phần lớn là những gì tôi đang tìm kiếm (nó cung cấp cho tôi danh sách các tập hợp lý, giống như "fdisk -l" ... ngoại trừ việc biết những gì cũng hữu ích các loại phân vùng của các khối logic (mà tôi muốn gọi là "phân vùng ảo"). Thông tin đó là những gì "fdisk -l" liệt kê trên hai cột cuối cùng bên phải. (Chẳng hạn như "8e" cho vật lý Phân vùng LVM hoặc "83" cho Linux ext, v.v.).

Công cụ tôi đang tìm kiếm có thể không phải là một phần của LVM; có lẽ chỉ một số tiện ích khác có thể in id / loại phân vùng được cung cấp một phân vùng?


1
Hãy thử cat /etc/fstabhiển thị loại hệ thống tập tin, ngay cả với lvm ... Nghe có vẻ rõ ràng, nhưng nó trả lời câu hỏi ...

Câu trả lời:


16

ID phân vùng cho Linux LVM là 8e, được báo cáo bởi 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 là một lớp trừu tượng trên đầu thiết bị lưu trữ để giúp bạn dễ dàng quản lý nó hơn. Tôi không chắc chắn thông tin nào ngoài những gì fdisk cung cấp cho bạn, vì ID phân vùng cho LVM được hiển thị. Tuy nhiên, để biết thêm thông tin về khối lượng logic LVM, bạn có thể sử dụng 'lvscan', 'lvs' và '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

Tương tự, bạn có thể tìm hiểu thông tin về chính nhóm âm lượng với 'vgscan', 'vss' và '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
Ngoài ra: pvs, pvdisplay và pvscan để nhận dữ liệu về khối lượng vật lý ...
freiheit

9

Khối lượng logic không có "loại" như các phân vùng DOS cũ làm. Giống như các tệp Unix, bạn sẽ phải đọc chúng để tìm hiểu chúng là gì. Một cái gì đó như thế này nên thực hiện các mẹo:

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

Dưới đây là một ví dụ cho đầu ra mà lệnh này sẽ cung cấp (cắt ngắn một chút):

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

2
Câu trả lời chính xác. Có vẻ như không ai khác hiểu những gì OP yêu cầu. Tôi đã phải thực hiện một thay đổi cho tập lệnh của bạn: Tôi đã thêm tùy chọn --dereference vào lệnh tập tin. Mỗi LV được liên kết đến / dm-X bởi trình ánh xạ thiết bị.
mã hóa

1
@codewaggle Cảm ơn; thêm tùy chọn. Khi tôi viết lại câu trả lời trong '09, tùy chọn không cần thiết, nhưng thời gian thay đổi.
Teddy

2
Đây phải là câu trả lời được chấp nhận!
lanoxx 4/11/2015

1
Không hoạt động khi bạn có dấu gạch ngang trong tên VG của bạn, chúng được nhân đôi, cập nhật câu trả lời. Có thể vấn đề tương tự áp dụng cho tên LV, nhưng tôi đã không kiểm tra điều đó.
sjas

6

LVM là một sự trừu tượng trên các đĩa vật lý.

Khối lượng logic (mà bạn có thể định dạng và đặt tệp vào) được phân bổ từ các nhóm âm lượng, có thể được tạo thành từ một hoặc nhiều phạm vi vật lý - phân vùng đĩa vật lý thực tế.

Câu hỏi của bạn là một chút không rõ ràng. Nếu bạn muốn hiển thị phân vùng đĩa nào mà Khối lượng hợp lý đang nằm trên vật lý, lvdisplay --maps có thể giúp:

# lvdisplay - bản đồ
  --- Khối lượng logic ---
  Tên LV / dev / Volgroup00 / root
  Tên VG Volgroup00
  LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx
  Truy cập ghi LV đọc / ghi
  Tình trạng LV có sẵn
  # mở 1
  Kích thước LV 5,00 GB
  LE 160 hiện tại
  Phân đoạn 1
  Kế thừa phân bổ
  Đọc trước các ngành tự động
  - hiện được đặt thành 256
  Chặn thiết bị 253: 0

  --- Phân đoạn ---
  Mức độ logic 0 đến 159:
    Kiểu tuyến tính
    Khối lượng vật lý / dev / sda2
    Phạm vi vật lý từ 0 đến 159

Không trả lời câu hỏi, nhưng cách duy nhất để kiểm tra xem LV của bạn có bị phân mảnh hay không. Upvote, chưa thấy điều này ở bất cứ nơi nào khác.
sjas

6

Khối lượng logic không có khái niệm về "loại", chúng chỉ là các thiết bị chặn. Nếu bạn muốn kiểm tra nội dung của một thiết bị khối và xác định những gì trong đó, bạn có thể muốn xem blkidcông cụ này, chính xác là nó.


5

1) Ổ đĩa logic KHÔNG phải là phân vùng đĩa (vật lý). Nó là một thiết bị khối ảo được tạo bên trong nhân Linux với Device Mapper. Đó là công nghệ người ta có thể sử dụng để thiết lập một thiết bị khối đơn bằng cách sử dụng hai phân vùng đĩa cũng như hai thiết bị khối bằng cách sử dụng một phân vùng đĩa đơn, và nhiều hơn nữa.

# dmsetup targets 

Nếu bạn muốn biết thêm về DM lần nó trang chủ , kiểm tra xem nó là trang hướng dẫn , đọc RedHat thủ công hoặc ví dụ này bài viết. Đó là công nghệ tuyệt vời chỉ được đề cập trong Wikipedia.

2) Ví dụ trên máy tính ở nhà của tôi, tôi có các phân vùng đĩa vật lý cũng như các thiết bị DM (khối lượng logic).

# cat /proc/partitions

tên chính #blocks nhỏ

   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

Chủ yếu họ không có bất kỳ loại hoặc ID nào, chúng được xác định chỉ bằng số ngành bắt đầu và độ dài.

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

Vì vậy, dm-0 là một mảnh bao gồm 3496552 ngành của một số thiết bị vật lý.

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

Và thiết bị này là / dev / hdb2 phân vùng!

# 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

Và đó là phân vùng kiểu LVM (8e), được đề cập bởi timberman.

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

Phân vùng đĩa đơn (vật lý) này có thể chứa các khối logic trong một nhóm. Tôi có hai đĩa nên có hai nhóm như vậy và mỗi nhóm chứa hai thiết bị logic.

# 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 

Vì vậy, dm-0 và dm-1 là hai LV (lvroot và lvswap) được tạo trên phân vùng / dev / hdb2 của đĩa đầu tiên của tôi (với CentOS) trong khi dm-2 và dm-3 là LV được tạo trên phân vùng / dev / hda2 của tôi của đĩa thứ hai của tôi (với Fedora).

Các thiết bị logic có thể có nhãn (UUID). Bạn có thể kiểm tra chúng bằng lệnh lvdisplay, được đề cập ở trên. Nhưng chúng chỉ là nhãn mà bạn có thể sử dụng (-u) thay vì số chính, số phụ (công tắc -j -m).


4

Lsblk có cung cấp thông tin bạn cần không?

[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

Khối lượng logic không có ID hoặc loại phân vùng. Chúng bao gồm các phạm vi vật lý (PE) có thể trải đều trên nhiều khối vật lý (PV), mỗi khối có thể là một phân vùng (ví dụ / dev / sda2) hoặc một đĩa hoàn chỉnh (ví dụ / dev / sdb).



0

Id loại phân vùng chỉ được lưu trữ trong bảng phân vùng, không phải trên chính phân vùng. Mặt khác, khối lượng logic LVM thường được xử lý như các phân vùng riêng lẻ, không phải là đĩa, do đó không có bảng phân vùng và do đó không có id loại phân vùng để tìm kiếm.

Cũng lưu ý rằng id loại chỉ dành cho mục đích thông tin trong Linux (tuy nhiên điều này không đúng với Windows). Nó không có liên quan đến nội dung và hệ thống tập tin của phân vùng đó.


0

Tôi nghĩ rằng lệnh một dòng này có thể giúp:

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

Đầu ra tương tự như sau:

/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

Nếu bạn nhìn vào bài viết trước từ "Mark V", bạn sẽ thấy lệnh lsblk đã được sử dụng.

Đây là một lựa chọn tuyệt vời, tuy nhiên OP đã yêu cầu loại đã bị bỏ qua trong hầu hết các câu trả lời. Sử dụng lsblk từ phía trên và thêm "FSTYPE", bạn sẽ có được loại dự kiến:

# 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
# 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.