Skip to content

Direkter Zugriff auf das Dateisystem einer virtuellen Maschine in einem XenServer LVM Storage

by Natanael Mignon on August 9th, 2011

Wenn der XenServer nicht mehr startet oder sein lokales Storage Repository nicht mehr findet, kann folgendes Vorgehen Abhilfe schaffen, um kurzfristig auf benötigte Dateien zuzugreifen.

Voraussetzung, um auf die Daten der virtuellen Maschinen im lokalen XenServer Storage zuzugreifen, ist eine Live-CD mit LVM Unterstützung. In diesem Fall wurde eine Debian GNU/Linux 6 Live-CD verwenden.

Vorgehen:

1. Von der Live-CD booten und als Benutzer root anmelden

2. Den Befehl lvscan ausführen und das benötigte Logical Volume auswählen und „merken“. Welches LV zu welcher virtuellen Maschine gehört lässt sich meist nur durch Ausprobieren herausfinden, eingrenzen kann man die wahrscheinlichsten Kandidaten meist nur anhand der Größe des LV.

[email protected]:/# lvscan

ACTIVE ‚/dev/VG_XenStorage-4a48ea5b-ca5d-280f-4699-8d930df8500b/LV-8adc14c2-38ff-4377-a096-911eff7f58c8‘ [100.20 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [100.20 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [9.24 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [38.86 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [26.03 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [10.28 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [8.06 GB] inherit
ACTIVE ‚/dev/VG_XenStorage-<ID>/LV-<ID>‘ [100.20 GB] inherit
[…]

3. Über parted den Offset der Partition des benötigte LV ermitteln. Dazu parted unter Angabe des LV, welches wir uns gemerkt haben, starten und die Darstellung auf Blocks ändern.

[email protected]:/# parted /dev/VG_XenStorage-<ID>/LV-<ID>
GNU Parted 2.3
Using /dev/dm-1
Welcome to GNU Parted! Type ‚help‘ to view a list of commands.
(parted) unit
Unit? [compact]? b
(parted) print
Model: Linux device-mapper (linear) (dm)
Disk /dev/dm-1: 16106127360B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 32256B 16106127360B 16105065984B primary ntfs boot

(parted)
quit

Durch den Befehl print werden die verfügbaren Partitionen aufgelistet, nun müssen wir uns einen weiteren Wert merken und zwar den Wert in der Spalte Start. Anschließend kann das Programm parted mit dem Befehl quit verlassen werden.

4. Loopback-Device erstellen

[email protected]:/# losetup -o 32256B -f /dev/VG_XenStorage-<ID>/LV-<ID>

Der Parameter –o bestimmt den Offset und –f die Datei bzw. in unserem Beispiel das LV welches eingehängt werden soll.

5. Zugewiesenes Loopback-Device ermitteln:

[email protected]:/# losetup –a

6. Das Loopback-Device mit Hilfe von mount einhängen:

[email protected]:/# mount /dev/loop-1 /mnt/lv-test1

Sofern der Typ des Dateisystems bekannt ist, kann anschließend in den Dateien der Virtuellen Maschine gestöbert werden.

No comments yet

Leave a Reply

You must be logged in to post a comment.