"Fdisk -l" menyukai daftar partisi dan tipenya untuk volume logis LVM?

22

Anda tahu bagaimana "fdisk -l" daftar tabel partisi drive dan menunjukkan id partisi / tipe untuk setiap partisi?

Apakah ada cara serupa untuk mendapatkan id partisi untuk volume logis LVM?

EDIT: Saya menyadari "lvs", yang sebagian besar adalah apa yang saya cari (itu memberi saya daftar volume logis, seperti "fdisk -l" ... kecuali itu juga akan berguna untuk mengetahui apa jenis partisi dari volume logis (yang saya suka anggap sebagai "partisi virtual") adalah .Info itu adalah apa yang "fdisk -l" daftar pada dua kolom terakhir di sebelah kanan. (Seperti "8e" untuk fisik Partisi LVM, atau "83" untuk Linux ext, dll.).

Alat yang saya cari mungkin bukan bagian dari LVM; mungkin hanya beberapa utilitas lain yang dapat mencetak id / jenis partisi yang diberikan partisi?


sumber
1
Cobalah cat /etc/fstabuntuk menampilkan jenis filesystem, bahkan dengan lvm ... Kedengarannya jelas, tetapi itu menjawab pertanyaan ...

Jawaban:

16

ID partisi untuk Linux LVM adalah 8e, dilaporkan oleh 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 adalah lapisan abstraksi di atas perangkat penyimpanan untuk memudahkan Anda mengelolanya. Saya tidak yakin informasi apa yang melebihi yang Anda inginkan dari fdisk, karena ID partisi untuk LVM ditampilkan. Namun, untuk informasi tambahan tentang volume logis LVM, Anda dapat menggunakan 'lvscan', 'lvs' dan '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

Demikian pula, Anda dapat mempelajari informasi tentang grup volume itu sendiri dengan 'vgscan', 'vgs' dan '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
jtimberman
sumber
4
Juga: pvs, pvdisplay, dan pvscan untuk mendapatkan data tentang volume fisik ...
freiheit
9

Volume logis tidak memiliki "tipe" seperti partisi DOS lama. Seperti halnya file Unix, Anda harus membacanya untuk mengetahui apa itu. Sesuatu seperti ini harus melakukan trik:

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

Berikut adalah contoh untuk output yang akan diberikan oleh perintah ini (sedikit terpotong):

[...]
/dev/mapper/VolGroup00-LogVol00: Linux rev 1.0 ext4 filesystem data, UUID=b000000e-00f0-0cde-b000-fa0d000ddc00 (extents) (64bit) (large files) (huge files)
[...]
Teddy
sumber
2
Jawaban yang bagus Sepertinya tidak ada orang lain yang mengerti apa yang diminta OP. Saya harus membuat satu perubahan pada skrip Anda: Saya menambahkan opsi --dereference ke perintah file. Setiap LV terhubung ke / dm-X oleh mapper perangkat.
codewaggle
1
@codewaggle Terima kasih; opsi ditambahkan. Ketika saya menulis jawaban kembali di '09, opsi itu tidak diperlukan, tetapi kali berubah.
Teddy
2
Ini harus menjadi jawaban yang diterima!
lanoxx
1
Tidak berfungsi saat Anda memiliki tanda hubung dalam nama VG Anda, ini dua kali lipat, memperbarui jawabannya. Mungkin masalah yang sama berlaku untuk nama LV, tetapi saya tidak mengujinya.
sjas
6

LVM adalah abstraksi di atas disk fisik.

Volume logis (yang dapat Anda format dan letakkan file) dialokasikan dari grup volume, yang dapat terdiri dari satu atau lebih luasan fisik - partisi disk fisik aktual.

Pertanyaan Anda agak tidak jelas. Jika Anda ingin memperlihatkan partisi disk mana yang ada dalam Logical Volume yang berada secara fisik, lvdisplay --maps dapat membantu:

#lvdisplay --maps
  --- Volume logis ---
  Nama LV / dev / VolGroup00 / root
  VG Name VolGroup00
  LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx
  Akses Tulisan LV baca / tulis
  Status LV tersedia
  # open 1
  LV Ukuran 5,00 GB
  LE 160 saat ini
  Segmen 1
  Alokasi mewarisi
  Baca di depan sektor otomatis
  - saat ini diatur ke 256
  Blok perangkat 253: 0

  --- Segmen ---
  Luas logis 0 hingga 159:
    Ketik linear
    Volume fisik / dev / hda2
    Luas fisik 0 hingga 159
tfh1985
sumber
Bukan menjawab pertanyaan, tetapi satu-satunya cara untuk memeriksa apakah LV Anda terfragmentasi atau tidak. Suara positif, belum melihat ini di tempat lain.
sjas
6

Volume logis tidak memiliki konsep "tipe", mereka hanya memblokir perangkat. Jika Anda ingin memeriksa konten perangkat blok dan menentukan apa yang ada di dalamnya, Anda mungkin ingin melihat blkidalat, yang melakukan hal itu.

womble
sumber
5

1) Volume logis BUKAN partisi disk (fisik). Ini adalah perangkat blok virtual yang dibuat di dalam kernel Linux dengan Device Mapper. Ini adalah teknologi yang dapat digunakan untuk mengatur perangkat blok tunggal menggunakan dua partisi disk serta dua perangkat blok menggunakan partisi disk tunggal, dan banyak lagi.

# dmsetup targets 

Jika Anda ingin tahu lebih banyak tentang DM, kunjungi halaman beranda , periksa halaman manualnya , baca manual RedHat atau misalnya artikel ini . Ini teknologi hebat yang hanya disebutkan di Wikipedia.

2) Misalnya pada komputer di rumah saya, saya memiliki partisi disk fisik serta perangkat DM (volume logis).

# cat /proc/partitions

nama minor #block utama

   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

Terutama mereka tidak memiliki tipe atau ID apa pun, mereka didefinisikan hanya dengan angka sektor awal dan panjangnya.

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

Jadi dm-0 adalah fragmen yang terdiri dari 34865152 sektor beberapa perangkat fisik.

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

Dan perangkat ini adalah partisi / 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

Dan itu adalah jenis partisi LVM (8e), yang disebutkan oleh woodman.

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

Partisi disk tunggal (fisik) ini dapat menampung volume logis dalam suatu grup. Saya memiliki dua disk sehingga ada dua grup seperti itu dan masing-masing grup memegang dua perangkat logis.

# 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 

Jadi dm-0 dan dm-1 adalah dua LV (lvroot dan lvswap) yang dibuat di partisi / dev / hdb2 dari disk pertama saya (dengan CentOS) sedangkan dm-2 dan dm-3 adalah LV yang dibuat pada partisi saya / dev / hda2 disk kedua saya (dengan Fedora).

Perangkat logis dapat memiliki label (UUID). Anda dapat memeriksanya dengan perintah lvdisplay, yang disebutkan di atas. Tapi itu hanya label, yang bisa Anda gunakan (-u) alih-alih angka utama, minor (-j -m switch).

Wojciech Domalewski
sumber
4

Apakah lsblk memberikan informasi yang Anda butuhkan?

[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 ~]# 
Markus V
sumber
0

Volume logis tidak memiliki ID atau tipe partisi. Mereka terdiri dari luasan fisik (PE) yang dapat tersebar di beberapa volume fisik (PV), yang masing-masing dapat berupa partisi (misalnya / dev / sda2) atau disk lengkap (misalnya / dev / sdb).

pgs
sumber
0

Id tipe partisi hanya disimpan di tabel partisi, bukan di partisi itu sendiri. Di sisi lain, volume logis LVM biasanya diperlakukan seperti partisi individual, bukan sebagai disk, jadi tidak ada tabel partisi dan karenanya tidak ada id tipe partisi yang harus dicari.

Juga perhatikan bahwa id tipe hanya untuk tujuan informatif di Linux (ini tidak berlaku untuk Windows). Tidak ada hubungannya dengan isi dan sistem file partisi itu.

Eduard - Gabriel Munteanu
sumber
0

Saya pikir perintah satu baris ini dapat membantu:

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

Outputnya mirip dengan ini:

/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
bLuEdDy
sumber
0

Jika Anda melihat posting sebelumnya dari "Mark V" Anda akan melihat perintah lsblk digunakan.

Ini adalah pilihan yang bagus, namun OP meminta jenis yang dihilangkan dari sebagian besar jawaban. Menggunakan lsblk dari atas dan menambahkan "FSTYPE" Anda mendapatkan jenis yang diharapkan:

# 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
# 
Ed Davison
sumber