Vous savez comment "fdisk -l" répertorie les tables de partitions de lecteur et affiche l'ID/types de partition pour chaque partition?
Existe-t-il un moyen similaire d'obtenir l'ID de partition pour les volumes logiques LVM?
EDIT: Je connais "lvs", qui est surtout ce que je recherche (il me donne la liste des volumes logiques, un peu comme "fdisk -l" ... sauf qu'il serait également utile de savoir ce que les types de partition des volumes logiques (que j'aime à considérer comme des "partitions virtuelles"). Cette info est ce que "fdisk -l" répertorie dans les deux dernières colonnes à droite. (Comme "8e" pour un physique Partition LVM, ou "83" pour Linux ext, etc.).
L'outil que je recherche peut ne pas faire partie de LVM; peut-être juste un autre utilitaire qui peut imprimer les identifiants/types de partition en fonction d'une partition?
L'ID de partition pour Linux LVM est 8e, rapporté par 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 est une couche d'abstraction au-dessus du périphérique de stockage pour vous faciliter la gestion. Je ne sais pas quelles informations au-delà de ce que fdisk vous fournit, car l'ID de partition pour LVM est affiché. Cependant, pour plus d'informations sur les volumes logiques LVM, vous pouvez utiliser 'lvscan', 'lvs' et '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
De même, vous pouvez obtenir des informations sur le groupe de volumes lui-même avec "vgscan", "vgs" et "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
Les volumes logiques n'ont pas de "type" comme les anciennes partitions DOS. Comme les fichiers Unix, vous devrez les lire pour savoir de quoi il s'agit. Quelque chose comme ça devrait faire l'affaire:
lvs --all --noheadings | while read lv vg rest; do file --dereference --special-files "/dev/mapper/$(echo $vg | sed 's/-/--/')-$lv"; done
Voici un exemple pour la sortie que cette commande donnerait (un peu tronquée):
[...]
/dev/mapper/VolGroup00-LogVol00: Linux rev 1.0 ext4 filesystem data, UUID=b000000e-00f0-0cde-b000-fa0d000ddc00 (extents) (64bit) (large files) (huge files)
[...]
LVM est une abstraction au-dessus des disques physiques.
Les volumes logiques (sur lesquels vous pouvez formater et placer des fichiers) sont alloués à partir de groupes de volumes, qui peuvent être constitués d'une ou de plusieurs extensions physiques - les partitions de disque physiques réelles.
Votre question n'est pas claire. Si vous souhaitez afficher sur quelles partitions de disque un volume logique réside physiquement, lvdisplay --maps peut vous aider:
# lvdisplay --maps --- Volume logique --- LV Nom /dev/VolGroup00/root VG Nom VolGroup00 LV UUID xxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx LV Write Access lecture/écriture LV Status available # Open 1 LV Size 5.00 GB . 0 --- Segments --- Etendue logique 0 à 159: Type linéaire Volume physique /dev/sda2 Extensions physiques 0 à 159
Les volumes logiques n'ont pas de concept de "type", ce ne sont que des périphériques blocs. Si vous souhaitez examiner le contenu d'un périphérique de bloc et déterminer ce qu'il contient, vous pouvez consulter l'outil blkid
, qui fait exactement cela.
1) Un volume logique n'est PAS une partition de disque (physique). Il s'agit d'un périphérique de bloc virtuel créé à l'intérieur du noyau Linux avec Device Mapper. C'est une technologie que l'on peut utiliser pour configurer un périphérique à bloc unique à l'aide de deux partitions de disque ainsi que deux périphériques à blocs utilisant une seule partition de disque, et bien plus encore.
# dmsetup targets
Si vous voulez en savoir plus sur DM visitez c'est page d'accueil , vérifiez c'est pages de manuel , lisez RedHat manuel = ou par exemple cet article. C'est une excellente technologie uniquement mentionné dans Wikipedia.
2) Par exemple, sur mon ordinateur personnel, j'ai des partitions de disque physique ainsi que des appareils DM (volumes logiques).
# cat /proc/partitions
nom mineur majeur #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
Principalement, ils n'ont pas de type ou d'ID, ils sont définis avec juste le numéro du secteur de départ et la longueur.
# dmsetup status -j 253 -m 0
0 34865152 linear
Donc, dm-0 est un fragment composé de 34865152 secteurs d'un périphérique physique.
# dmsetup deps -j 253 -m 0
1 dependencies : (3, 66)
Et cet appareil est la partition/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
Et c'est une partition de type LVM (8e), mentionnée par timberman.
# pvs
PV VG Fmt Attr PSize PFree
/dev/hda2 VolGroup lvm2 a- 76,13G 0
/dev/hdb2 VolGroup00 lvm2 a- 18,56G 0
Cette partition de disque unique (physique) peut contenir des volumes logiques au sein d'un groupe. J'ai deux disques, il y a donc deux de ces groupes et chaque groupe contient deux périphériques logiques.
# 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
Donc dm-0 et dm-1 sont deux LV (lvroot et lvswap) créés sur ma partition/dev/hdb2 de mon premier disque (avec CentOS) tandis que dm-2 et dm-3 sont des LV créés sur ma partition/dev/hda2 de mon deuxième disque (avec Fedora).
Les périphériques logiques peuvent avoir des étiquettes (UUID). Vous pouvez les vérifier avec la commande lvdisplay, mentionnée ci-dessus. Mais ce ne sont que des étiquettes, que vous pouvez utiliser (-u) au lieu de nombres mineurs et majeurs (commutateurs -j -m).
Lsblk fournit-il les informations dont vous avez besoin?
[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 ~]#
Les volumes logiques n'ont pas d'ID ou de type de partition. Ils sont composés de extensions physiques (PE) qui peuvent être réparties sur plusieurs volumes physiques (PV), chacun pouvant être une partition (par exemple/dev/sda2) ou un disque complet (par exemple/dev/sdb).
probablement pas nécessaire mais j'ai appris un peu moi-même ici http://www.linuxconfig.org/Linux_lvm_-_Logical_Volume_Manager
L'ID du type de partition est stocké uniquement dans la table de partition, pas sur la partition elle-même. D'un autre côté, les volumes logiques LVM sont normalement traités comme des partitions individuelles, pas comme des disques, il n'y a donc pas de table de partition et donc pas d'ID de type de partition à rechercher.
Notez également que l'ID de type est uniquement à des fins informatives sous Linux (ce n'est pas vrai pour Windows, cependant). Il n'a aucune incidence sur le contenu et le système de fichiers de cette partition.
Si vous regardez le post précédent de "Mark V", vous verrez que la commande lsblk a été utilisée.
C'est une excellente option, mais le PO a demandé le type qui a été omis de la plupart des réponses. En utilisant lsblk ci-dessus et en ajoutant "FSTYPE", vous obtenez le type attendu:
# 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
#
Je pense que cette commande en ligne pourrait aider:
for i in $(df -h | grep mapper | cut -d" " -f1); do echo $i; lvdisplay --maps $i | grep "Physical volume"; done
La sortie est similaire à ceci:
/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