Proxmox maakt gebruikt van LVM, als je dus een guest aanmaakt krijgt deze netjes zijn eigen logical volume.
Als je vervolgens een OS installeert en je geeft aan LVM te gebruiken, heb je dus LVM binnen LVM.
Als je vervolgens partities van je guest wil mounten op je hypervisor om bijvoorbeeld een fsck uit te voeren, doe je het volgende:
root@hypervisor:~# lvdisplay
--- Logical volume ---
LV Path /dev/pve/vm-100-disk-1
LV Name vm-100-disk-1
VG Name pve
LV UUID b6iKwA-iE9n-rfI4-bFU3-Kyrl-wixM-1BZb4e
LV Write Access read/write
LV Creation host, time hypervisor, 2017-05-15 13:00:19 +0200
LV Pool name data
LV Status available
# open 1
LV Size 60.00 GiB
Mapped size 90.73%
Current LE 15360
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 251:6
Het gaat dus om: /dev/pve/vm-100-disk-1
root@hypervisor:~# ls -alh /dev/pve/vm-100-disk-1
lrwxrwxrwx 1 root root 7 Jun 16 11:43 /dev/pve/vm-100-disk-1 -> ../dm-6
root@hypervisor:~# fdisk -l /dev/dm-6
Disk /dev/dm-6: 60 GiB, 64424509440 bytes, 125829120 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 131072 bytes / 262144 bytes
Disklabel type: dos
Disk identifier: 0x134f441b
Device Boot Start End Sectors Size Id Type
/dev/dm-6p1 * 2048 999423 997376 487M 83 Linux
/dev/dm-6p2 1001470 125827071 124825602 59.5G 5 Extended
/dev/dm-6p5 1001472 125827071 124825600 59.5G 8e Linux LVM
Je ziet dat er 3 partities zijn, deze kun je mappen met kpartx:
root@hypervisor:~# kpartx -av /dev/mapper/pve-vm--100--disk--1
add map pve-vm--100--disk--1p1 (251:10): 0 997376 linear /dev/mapper/pve-vm--100--disk--1 2048
add map pve-vm--100--disk--1p2 (251:11): 0 2 linear /dev/mapper/pve-vm--100--disk--1 1001470
add map pve-vm--100--disk--1p5 : 0 124825600 linear /dev/mapper/pve-vm--100--disk--1 1001472
Kijk met lvscan welke logical volumes er nu zijn:
root@hypervisor:/dev/mapper# lvscan
inactive '/dev/guest-vg/root' [55.51 GiB] inherit
inactive '/dev/guest-vg/swap_1' [4.00 GiB] inherit
Activeer de volume group:
root@hyervisor:/dev/mapper# vgchange -a y guest-vg
2 logical volume(s) in volume group "guest-vg" now active
root@hypervisor:/dev/mapper# lvdisplay
--- Logical volume ---
LV Path /dev/guest-vg/root
LV Name root
VG Name guest-vg
LV UUID d0kREf-4oEy-HkP1-0eif-EJGw-3wOr-aeDBJG
LV Write Access read/write
LV Creation host, time guest, 2017-05-15 13:08:25 +0200
LV Status available
# open 0
LV Size 55.51 GiB
Current LE 14211
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 251:13
Nu kun je doen wat je wil, in mijn geval een e2fsck :)
root@hypervisor:~# e2fsck /dev/guest-vg/root
e2fsck 1.42.12 (29-Aug-2014)
/dev/guest-vg/root: recovering journal
/dev/guest-vg/root contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (13275876, counted=9402797).
Fix<y>? yes
Free inodes count wrong (3522133, counted=1037469).
Fix<y>? yes
/dev/guest-vg/root: ***** FILE SYSTEM WAS MODIFIED *****
/dev/guest-vg/root: 2600851/3638320 files (0.0% non-contiguous), 5149267/14552064 blocks
Als je klaar bent maak je de volume group weer inactief:
root@hypervisor:~# vgchange -a n guest-vg
En wis je de mapping weer:
root@hypervisor:~# kpartx -dv /dev/mapper/pve-vm--100--disk--1
del devmap : pve-vm--100--disk--1p5
del devmap : pve-vm--100--disk--1p2
del devmap : pve-vm--100--disk--1p1