===== Snapshot auf einem Locical Volume erstellen =====
Wenn das Linux-System mit dem Locical Volume Mamanger (LVM) eingerichtet wurde, sind Image-Backups im laufenden Betrieb möglich. Hierzu wird ein Snapshot des logischen Laufwerks erstellt und dann kann davon das Image gezogen werden.
==== Informationen zum Thema ====
[[https://www.thomas-krenn.com/de/wiki/LVM_Snapshots|LVM Snapshots - Thomas Krenn Wiki]] \\
[[https://wiki.ubuntuusers.de/Logical_Volume_Manager|LocicalVolumeManager - ubuntuusers.de]]
==== Vorbereitungen ====
Zunächst muss festgestellt werden, ob in der Volume Group der zu sichernden Partition noch Platz vorhanden ist. Hierbei ist nur so viel Platz erforderlich, wie während der Backup-Zeit vermutlich Daten geändert werden.
Bei Bedarf muss etwas Platz geschaffen werden, dass erfordert allerdings ein ausgehängtes Dateisystem weil das Filesystem zunächst verkleinert werden muss und erst dann das Logical Volume verkleinert werden kann.
Beispiel für eine vorbereitete Volume Group:
$ sudo vgs
VG #PV #LV #SN Attr VSize VFree
vgubuntu 1 2 0 wz--n- 29,57g 648,00m
Die 648 Mbyte reichen in dem Beipiel völlig aus, denn während des Backups werden in der Root-Partition nur minimale Bewegungen stattfinden.
==== Image Backup durchführen ====
Um ein Image der root-Partition zu erstellen sind die folgenden Schritte erforderlich:
=== 1. Snapshot erstellen ===
Das folgende Kommando erzeugt ein LV-Snapshot für die root-Partition mit dem Namen /dev/vgubuntu/snap.
$ sudo lvcreate -l100%FREE -s -n snap /dev/vgubuntu/root
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root vgubuntu owi-aos--- 24,05g
snap vgubuntu swi-a-s--- 648,00m root 1,42
swap vgubuntu -wi-ao---- 4,88g
Mit lvs kann anschließend geprüft werden, ob das snapshot existiert.
=== 2. Image erzeugen aus dem Snapshot ===
Das folgende Kommando erzeugt mit fsarchiver ein Image xxx.fsa im aktuellen Verzeichnis.
$ sudo fsarchiver -v savefs xxx.fsa /dev/vgubuntu/snap
=== 3. Shapshot verwerfen ===
Nach dem Backup muss das Shapshot unbedingt wieder gelöscht werden damit die Volume Group nicht überläuft. Wir haben ja nur 648 MByte für Differenzdaten reserviert.
$ sudo lvremove /dev/vgubuntu/snap
Do you really want to remove and DISCARD active logical volume snap? [y/n]: y
Logical volume "snap" successfully removed
$
==== Image Backup Restore ====
Ein Restore des Images kann nur in einem ausgehängten Verzeichnis durchgeführt werden. Vor allem das Root-Verzeichnis, aber auch ein Home-Verzeichnis können im laufenden Betrieb nicht ohne Weiteres ausgehängt werden. Daher ist es erforderlich, das System mit einem Live-System per USB-Stick oder DVD zu starten.
Geeignet sind Ubuntu-Live Systems oder auch die SysrescueCD. Wenn das LVM in einer Crypt-Disk enthalten ist, hat Ubuntu den Vorteil, dass die verschlüsselte Partition per Mausklick geöffnet werden kann. Dafür ist ''fsarchiver'' nicht enthalten und muss erst per ''apt-get install fsarchiver'' installiert werden, was einen Internet-Zugriff voraussetzt.
Aber auch die SysrescueCD kann verschlüsselte Partitionen öffnen, es bedarf nur der Kommandozeile, Beispiel:
# ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 Mai 29 14:06 /dev/sda
brw-rw---- 1 root disk 8, 1 Mai 29 14:06 /dev/sda1
brw-rw---- 1 root disk 8, 2 Mai 29 14:06 /dev/sda2
brw-rw---- 1 root disk 8, 5 Mai 29 14:06 /dev/sda5
# cryptsetup luksOpen /dev/sda5 sda5_crypt
Passphrase:
# ls -l /dev/mapper
insgesamt 0
crw------- 1 root root 10, 236 Mai 29 14:06 control
lrwxrwxrwx 1 root root 7 Mai 29 14:06 sda5_crypt -> ../dm-0
lrwxrwxrwx 1 root root 7 Mai 29 14:06 thinkpad--vg-home -> ../dm-3
lrwxrwxrwx 1 root root 7 Mai 29 14:06 thinkpad--vg-root -> ../dm-1
lrwxrwxrwx 1 root root 7 Mai 29 14:06 thinkpad--vg-swap_1 -> ../dm-2
Danach besteht nach Öffnen der verschlüsselten Partition ''/dev/sda5'' Zugriff auf die VolumeGroup ''thinkpad-vg'' und die darin befindlichen LogicalVolumes ''home, root und swap_1''.
==== Zugriff auf eine bestehende LVM Partition ====
Es kommt vor, dass man auf eine bestehende LVM-Partition zugreifen möchte um Daten zu ändern oder auszulesen. Von einem System kann so auf eine bereitgestellte Platte zugegriffen werden. Wenn LVM bereits installiert ist, sind Schritt 1 und 2 nicht erforderlich.
~$ sudo apt install lvm2
~$ sudo modprobe dm-mod
~$ sudo vgscan
Reading volume groups from cache.
Found volume group "template-vg" using metadata type lvm2
~$ sudo vgchange -ay template-vg
2 logical volume(s) in volume group "template-vg" now active
~$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root template-vg -wi-a----- 136,16g
swap_1 template-vg -wi-a----- 4,00g
~$ sudo mkdir /mnt/hyas
~$ sudo mount /dev/template-vg/root /mnt/hyas
~$ cd /mnt/hyas/
/mnt/hyas$ ls
bin dev home initrd.img.old lib64 media opt root sbin srv tmp var vmlinuz.old
boot etc initrd.img lib lost+found mnt proc run snap sys usr vmlinuz
/mnt/hyas$