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