"Fdisk -l" wie Liste der Partitionen und deren Typen für logische LVM-Volumes?

22

Sie wissen, wie "fdisk -l" Laufwerkspartitionstabellen auflistet und die Partitions-ID / -typen für jede Partition anzeigt?

Gibt es eine ähnliche Möglichkeit, die Partitions-ID für logische LVM-Volumes abzurufen?

BEARBEITEN: Mir ist "lvs" bekannt, nach dem ich hauptsächlich suche (es gibt mir die Liste der logischen Datenträger, ähnlich wie "fdisk -l" ... außer es wäre auch nützlich zu wissen, was Die Partitionstypen der logischen Volumes (die ich gerne als "virtuelle Partitionen" betrachte) sind: Diese Informationen sind in der Liste "fdisk -l" in den letzten beiden Spalten auf der rechten Seite aufgeführt (wie "8e" für ein physisches Volume) LVM-Partition oder "83" für Linux ext usw.).

Das gesuchte Tool ist möglicherweise nicht Teil von LVM. Vielleicht nur ein anderes Dienstprogramm, das Partitions-IDs / -Typen für eine bestimmte Partition drucken kann?


quelle
1
Versuchen Sie cat /etc/fstab, den Typ des Dateisystems anzuzeigen, auch mit lvm ... Klingt offensichtlich, aber es beantwortet die Frage ...

Antworten:

16

Die Partitions-ID für Linux LVM ist 8e, die von fdisk gemeldet wird.

$ 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 ist eine Abstraktionsschicht über dem Speichergerät, damit Sie es einfacher verwalten können. Ich bin nicht sicher, welche Informationen jenseits der von fdisk angegebenen Informationen angezeigt werden, da die Partitions-ID für LVM angezeigt wird. Für zusätzliche Informationen zu logischen LVM-Volumes können Sie jedoch 'lvscan', 'lvs' und 'lvdisplay' verwenden.

$ 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

Ebenso können Sie Informationen über die Volume-Gruppe selbst mit 'vgscan', 'vgs' und 'vgdisplay' erhalten.

$ 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
quelle
4
Außerdem: pvs, pvdisplay und pvscan zum Abrufen von Daten über die physischen Volumes ...
freiheit
9

Logische Volumes haben keinen "Typ" wie alte DOS-Partitionen. Wie bei Unix-Dateien müssen Sie sie lesen, um herauszufinden, was sie sind. So etwas sollte den Trick machen:

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

Hier ist ein Beispiel für die Ausgabe, die dieser Befehl geben würde (etwas abgeschnitten):

[...]
/dev/mapper/VolGroup00-LogVol00: Linux rev 1.0 ext4 filesystem data, UUID=b000000e-00f0-0cde-b000-fa0d000ddc00 (extents) (64bit) (large files) (huge files)
[...]
Teddy
quelle
2
Gute Antwort. Es scheint, als hätte sonst niemand verstanden, wonach das OP gefragt hat. Ich musste eine Änderung an Ihrem Skript vornehmen: Ich habe die Option --dereference zum Befehl file hinzugefügt. Jeder LV wird vom Geräte-Mapper mit / dm-X verknüpft.
Codewaggle
1
@codewaggle Danke; Option hinzugefügt. Als ich die Antwort '09 schrieb, wurde die Option nicht benötigt, aber die Zeiten ändern sich.
Teddy
2
Dies sollte die akzeptierte Antwort sein!
Lanoxx
1
Funktioniert nicht, wenn Bindestriche in Ihrem VG-Namen doppelt vorhanden sind und die Antwort aktualisiert wurde. Möglicherweise gilt das gleiche Problem für LV-Namen, aber das habe ich nicht getestet.
Sjas
6

LVM ist eine Abstraktion über physischen Festplatten.

Logische Volumes (auf denen Sie Dateien formatieren und ablegen können) werden aus Volume-Gruppen zugewiesen, die aus einem oder mehreren physischen Extents bestehen können - den tatsächlichen physischen Festplattenpartitionen.

Ihre Frage ist etwas unklar. Wenn Sie anzeigen möchten, auf welchen Festplattenpartitionen sich ein logisches Volume befindet, kann lvdisplay --maps helfen:

# lvdisplay --maps
  --- Logisches Volumen ---
  LV Name / dev / VolGroup00 / root
  VG Name VolGroup00
  LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx
  LV Write Access Lesen / Schreiben
  LV Status verfügbar
  # offen 1
  LV-Größe 5,00 GB
  Aktuelle LE 160
  Segmente 1
  Zuordnung erben
  Sektoren automatisch vorlesen
  - Derzeit auf 256 eingestellt
  Blockiere Gerät 253: 0

  --- Segmente ---
  Logische Ausdehnung 0 bis 159:
    Geben Sie linear ein
    Physikalisches Volumen / dev / sda2
    Physische Ausdehnung 0 bis 159
tfh1985
quelle
Keine Beantwortung der Frage, aber die einzige Möglichkeit zu überprüfen, ob Ihr LV fragmentiert ist oder nicht. Ich habe das noch nirgendwo anders gesehen.
Sjas
6

Logische Datenträger haben kein Konzept eines "Typs", sie blockieren nur Geräte. Wenn Sie den Inhalt eines Blockgeräts untersuchen und herausfinden möchten, was sich darin befindet, sollten Sie sich das blkidTool ansehen , das genau das tut.

womble
quelle
5

1) Ein logisches Volume ist KEINE (physische) Festplattenpartition. Es ist ein virtuelles Blockgerät, das im Linux-Kernel mit Device Mapper erstellt wurde. Diese Technologie kann zum Einrichten eines einzelnen Blockgeräts mit zwei Festplattenpartitionen sowie von zwei Blockgeräten mit einer einzelnen Festplattenpartition und vielem mehr verwendet werden.

# dmsetup targets 

Wenn Sie mehr über DM erfahren möchten, besuchen Sie die Homepage , lesen Sie die Handbuchseiten , das RedHat- Handbuch oder zum Beispiel diesen Artikel. Es ist eine großartige Technologie nur erwähnt in der Wikipedia.

2) Zum Beispiel habe ich auf meinem Heimcomputer physische Festplattenpartitionen sowie DM-Geräte (logische Volumes).

# cat /proc/partitions

major minor #blocks name

   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

In erster Linie haben sie keinen Typ oder keine ID, sondern werden nur mit der Startsektornummer und der Länge definiert.

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

Dm-0 ist also ein Fragment, das aus 34865152 Sektoren eines physischen Geräts besteht.

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

Und dieses Gerät ist / 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

Und es ist eine Unterteilung vom Typ LVM (8e), die von Timberman erwähnt wird.

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

Diese einzelne (physische) Festplattenpartition kann logische Volumes innerhalb einer Gruppe enthalten. Ich habe zwei Festplatten, also gibt es zwei solche Gruppen und jede Gruppe enthält zwei logische Geräte.

# 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 und dm-1 sind also zwei LVs (lvroot und lvswap), die auf meiner / dev / hdb2-Partition meiner ersten Festplatte (mit CentOS) erstellt wurden, während dm-2 und dm-3 LVs sind, die auf meiner / dev / hda2-Partition erstellt wurden von meiner zweiten Platte (mit Fedora).

Logische Geräte können Labels (UUIDs) haben. Sie können sie mit dem oben erwähnten Befehl lvdisplay überprüfen. Es handelt sich jedoch nur um Bezeichnungen, bei denen Sie (-u) anstelle von großen und kleinen Zahlen (-j -m Schalter) verwenden können.

Wojciech Domalewski
quelle
4

Stellt lsblk die benötigten Informationen bereit?

[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 ~]# 
Mark V
quelle
0

Logische Datenträger haben keine Partitions-ID oder keinen Partitionstyp. Sie bestehen aus physischen Extents (PE), die sich auf mehrere physische Volumes (PV) verteilen können , von denen jedes eine Partition (z. B. / dev / sda2) oder eine vollständige Festplatte (z. B. / dev / sdb) sein kann.

pgs
quelle
0

Die Partitionstyp-ID wird nur in der Partitionstabelle und nicht in der Partition selbst gespeichert. Auf der anderen Seite werden logische LVM-Volumes normalerweise wie einzelne Partitionen behandelt und nicht als Festplatten. Es gibt also keine Partitionstabelle und daher auch keine Partitionstyp-ID, nach der gesucht werden muss.

Beachten Sie auch, dass die Typ-ID unter Linux nur zu Informationszwecken dient (dies gilt jedoch nicht für Windows). Es hat keinen Einfluss auf den Inhalt und das Dateisystem dieser Partition.

Eduard - Gabriel Munteanu
quelle
0

Ich denke, dieser einzeilige Befehl könnte helfen:

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

Die Ausgabe ist ähnlich wie folgt:

/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
quelle
0

Wenn Sie sich den vorherigen Beitrag von "Mark V" ansehen, sehen Sie, dass der Befehl lsblk verwendet wurde.

Dies ist eine großartige Option, allerdings hat das OP nach dem Typ gefragt, der in den meisten Antworten weggelassen wurde. Wenn Sie lsblk von oben verwenden und "FSTYPE" hinzufügen, erhalten Sie den erwarteten Typ:

# 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
quelle