Montando a partição do disco dentro do LVM

1

Eu tenho um volume lógico que é usado para um disco de xen:

Disk /dev/d0_vg/backup: 10.7 GB, 10737418240 bytes
1 heads, 1 sectors/track, 20971520 cylinders, total 20971520 sectors
Units = cylinders of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00001b22

                    Device Boot      Start         End      Blocks   Id  System
/dev/d0_vg/backup1   *          64      208839      104388   83  Linux
/dev/d0_vg/backup2          208846    19406517     9598836   83  Linux
/dev/d0_vg/backup3        19406521    20964808      779144   82  Linux swap / Solaris

Como posso especificar o deslocamento correto para montar backup2, o sistema de arquivos raiz em algum lugar?

Eu tentei seguir este artigo e calcular a posição inicial:

link

208846*512=106929152

mount -o loop,offset=106929152 /dev/d0_vg/backup2 /mnt/

Eu sempre recebo "mount: you must specify the filesystem type" de erro, por isso não estou tentando lê-lo de onde deveria. Alguém sabe qual é o problema aqui?

    
por microcorp 05.08.2014 / 15:26

2 respostas

2

Se eu leio sua pergunta corretamente, você tem um hypervisor Linux (um Xen dom0) com volumes Linux LVM que são usados como discos virtuais para seus convidados Xen (domU). E você deseja acessar os dados nesse LVM diretamente do hipervisor, ignorando o convidado Xen.

Eu não uso mais o Xen, mas imagino que o processo seja semelhante ao que faço com os convidados do KVM:

Desligue o convidado domU. (acessar um sistema de arquivos de dois locais diferentes está pedindo corrupção de dados)

No hipervisor, execute kpartx , que varrerá o LVM de uma tabela de partição e criará entradas de dispositivo para cada partição encontrada (onde eu suponho ter um Grupo de Volumes Convidados e um LVM guestname -diskname que é o disco rígido virtual do seu domU)

[root@dom0 ]# kpartx -a /dev/Guests/guestname-diskname

Se você tivesse três partições em seu convidado Xen, isso resultaria em três novas entradas de dispositivo: /dev/Guests/guestname-diskname[1-3]

Então você deve ser capaz de montar uma partição com um sistema de arquivos simplesmente com:

[root@dom0 ]# mount -t ext3 /dev/Guests/guestname-diskname2 /mnt

Torna-se um pouco mais complexo se você também usou o LVM dentro do domU; então as partições são do tipo 8e Linux LVM e formatadas como volumes físicos que você não pode simplesmente montar ainda e é necessário usar truques de LVM. Em vez do comando mount, os passos se tornam:

Espero que você possa detectar o grupo de volumes que existia no domU:

[root@dom0 ]# vgscan
    Found volume group "Guests" using metadata type lvm2
    Found volume group "VG-guestname" using metadata type lvm2     <== NEW!

Em seguida, você precisa ativar o grupo de volumes "VG-guestname" :

[root@dom0 ]# vgchange -a y guestname 

E um lvscan deve mostrar os volumes lógicos que foram criados no seu domU e as entradas do dispositivo de mapeamento são normalmente criadas agora também, permitindo que você faça algo como:

[root@dom0 ]# mount -t ext3 /dev/VG-guestname/guest-lvname /mnt

O IIRC não era possível no Xen, mas pode acontecer com o KVM, o caso inconveniente em que o nome de um grupo de volumes usado no hipervisor é o mesmo que o atribuído a um convidado.

    
por 05.08.2014 / 16:50
1

De jeito nenhum, provavelmente sua montaria não tem a capacidade necessária para usar essa montagem de loopback complicada.

Se você está montando algo assim, o comando mount primeiro chama losetup e finalmente monta esse losetup device. Normalmente é /dev/loop0 (ou maior).

Com o comando losetup você pode montar um arquivo ou parte de um arquivo como se fosse uma partição normal. É praticamente o mesmo que a ferramenta daemon para a tribo dos windowsers. Desta vez, usamos esse losetup para mapear uma parte de /dev/d0_vg para um novo dispositivo de bloco, para /dev/loop0 .

Você pode fazer isso em duas etapas:

losetup /dev/loop0 /dev/d0_vg --offset=$[208846*512]
mount /dev/loop0 /mnt

Após o comando losetup, você pode verificar se encontrou um sistema de arquivos real com o comando file -szL /dev/loop0 .

Após a desmontagem, você tinha que remover o dispositivo loop0 com o comando losetup -d .

    
por 05.08.2014 / 17:12

Tags