it-swarm-vi.tech

"fdisk -l" giống như danh sách các phân vùng và loại của chúng cho khối lượng logic LVM?

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?

22
arcanex

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
16
jtimberman

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)
[...]
9
Teddy

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ị các 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 --maps [.__.] --- Khối lượng logic --- [.__.] Tên LV /dev/Volgroup00/root[.__.] Tên VG Volgroup00 [.__.] LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx [.__.] LV Viết Quyền truy cập đọc/ghi [.__.] [.__.] LE 160 hiện tại [.__.] Phân đoạn 1 [.__.] Kế thừa phân bổ [.__.] Đọc các ô phía trước tự động [.__.] - hiện được đặt thành 256 [.__.] Chặn thiết bị 253: 0 [.__.] [.__.] --- Phân đoạn --- [.__.] Phạm vi logic 0 đến 159: [.__.] Nhập tuyến tính [.__.] Khối lượng vật lý /dev/sda2[.__ .] Phạm vi vật lý từ 0 đến 159 [.__.]
6
tfh1985

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ì có trong đó, bạn có thể muốn xem công cụ blkid, chính xác là điều đó.

6
womble

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 hãy truy cập vào nó trang chủ , hãy kiểm tra nó trang thủ công , đọc RedHat thủ công = hoặc ví dụ này bài viết. Đó chỉ là công nghệ tuyệt vời đã đề cập trong Wikipedia.

2) Chẳng hạn, trên máy tính ở nhà, 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 #blocks chính 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 chúng 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 34865152 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).

5
Wojciech Domalewski

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

[[email protected] ~]# 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
[[email protected] ~]# 
4
Mark V

Khối lượng logic không có ID hoặc loại phân vùng. Chúng bao gồm mức độ vật lý (PE) có thể được trải rộng trên nhiều khối lượng 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
pgs

có lẽ không cần nhưng tôi đã tự học một chút ở đây http://www.linuxconfig.org/Linux_lvm_-_Logical_Volume_Manager

0
Ken

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

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ỏ 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
# 
0
Ed Davison

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
bLuEdDy