Montare la partizione LVM di una macchina virtuale su Proxmox

Può capitare che per un qualsiasi motivo una macchina virtuale non porta più, e vi è la necessità di montare
il filesystem sul server fisico(proxmox).
Visto che in fase d’installazione della macchina virtuale il singolo Logical Volume viene partizionato per
ex. la swap e la root purtroppo non possiamo montare x come faremmo di solito:

root@nilox ~ # lvdisplay
— Logical volume —
LV Name                /dev/vg0-nilox/vm-102-disk-1
VG Name                vg0-nilox
LV UUID                C4bcBz-dx46-CxWj-5s9F-AIYO-aVYk-43veWf
LV Write Access        read/write
LV Status              available
# open                 1
LV Size                50,00 GB
Current LE             12800
Segments               1
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           253:0

root@nilox ~ # mount /dev/vg0-nilox/vm-102-disk-1 /mnt/prova/
mount: you must specify the filesystem type
root@nilox ~ # mount -t xfs /dev/vg0-nilox/vm-102-disk-1 /mnt/prova/
mount: wrong fs type, bad option, bad superblock on /dev/mapper/vg0–nilox-vm–102–disk–1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog – try
dmesg | tail  or so

Perche il sistema non riesce a capire quale filesystem vogliamo montare,
se facciamo i seguenti comandi capirete perchè.

root@nilox ~ # fdisk -l /dev/vg0-nilox/vm-102-disk-1

Disk /dev/vg0-nilox/vm-102-disk-1: 21.4 GB, 21479030784 bytes
255 heads, 63 sectors/track, 2611 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00040fdc

 

Device Boot      Start         End      Blocks   Id  System
/dev/vg0-nilox/vm-102-disk-1p1               1         122      975872   82  Linux swap / Solaris
Partition 1 does not end on cylinder boundary.
/dev/vg0-nilox/vm-102-disk-1p2             122        2611    19993600   83  Linux
root@nilox ~ # kpartx /dev/vg0-nilox/vm-102-disk-1
vg0–nilox-vm–102–disk–1p1 : 0 1951744 /dev/vg0-nilox/vm-102-disk-1 2048
vg0–nilox-vm–102–disk–1p2 : 0 39987200 /dev/vg0-nilox/vm-102-disk-1 1953792

Come potete vedere sono due partizioni, quindi per poter montare il filesystem di root bisogna specificare
quale byte del disco montare:

root@nilox ~ # parted /dev/vg0-nilox/vm-102-disk-1
GNU Parted 1.8.8
Using /dev/mapper/vg0–nilox-vm–102–disk–1
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted) unit b
(parted) print

Model: Linux device-mapper (linear) (dm)
Disk /dev/mapper/vg0–nilox-vm–102–disk–1: 21479030784B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

 

Number  Start        End           Size          Type     File system  Flags
1      1048576B     1000341503B   999292928B    primary  linux-swap
2      1000341504B  21473787903B  20473446400B  primary  xfs

root@nilox ~ # mount -o offset=1000341504B /dev/vg0-nilox/vm-102-disk-1 /mnt/prova/
root@nilox ~ # df -h
Filesystem         Dimens. Usati Disp. Uso% Montato su
/dev/md0               19G  2,2G   16G  13% /
tmpfs                 3,9G     0  3,9G   0% /lib/init/rw
udev                   10M  708K  9,4M   7% /dev
tmpfs                 3,9G     0  3,9G   0% /dev/shm
/dev/mapper/vg0–nilox-vm–102–disk–1
20G  959M   19G   5% /mnt/prova

Come potete vedere siamo riusciti a montare la partizione specificato i byte della partizione interessata.

Spero possa essere utile a molti

Frank :-)

About Francesco Gabriele

4 commenti

  1. Puoi anche fare questo:

    modprobe nbd
    qemu-nbd -c /dev/nbd0 /dev/vg0-nilox/vm-102-disk-1

    ………………. :-)

    poi trovi le due partizioni come nbd0p1 e nbd0p2
    le monti e fai quello che devi fare
    poi rimuovi l’nbd con

    qemu-nbd -d /dev/nbd0

    Ciao, Diaolin

  2. Grazie non lo conoscevo :-)

    p.s è un onore averti sul mio Blog :-)

  3. Ho appena scoperto che per permettere a nbd di rilevare le partizioni, e creare per ognuna un device specifico, occorre attivarlo con il parametro max_part=N, dove N è il numero massimo di partizioni da identificare. Es:

    modprobe nbd max_part=63

    Senza max_part, nbd supporta solo l’intero device (lvm o altro) ma non mappa le singole partizioni (http://lwn.net/Articles/276044/)

    Comunque grazie per il post… mi è stato utile.

    Marco

  4. m.ardito Grazie non conoscevo questa opzione ;-)

Inserisci un commento

Il tuo indirizzo email non sarà pubblicato. Required fields are marked *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>