Kurz gesagt, Snapshots sind eine Möglichkeit, die verwendeten Sektoren auf der Festplatte einzufrieren und dem System mitzuteilen, dass Änderungen / Löschungen / Ergänzungen an einem reservierten Teil der Festplatte, einem so genannten Snapshot-Volume, vorgenommen werden sollen, um die Entscheidung zu verschieben, die Änderungen beizubehalten / zu verwerfen auf dem Laufwerk zu einem späteren Zeitpunkt, soweit der Snapshot-Volume-Speicherplatz bietet. Wenn Sie die Änderungen rückgängig machen (oder beibehalten) möchten, können Sie dies mit einer Zeile tun.
Wenn Sie keine vorkonfigurierte Volume-Gruppe haben, müssen Sie wahrscheinlich ein neues sauberes Ubuntu installieren. In diesem Fall müssen Sie einige Anstrengungen unternehmen, um das System zum ersten Mal richtig zu konfigurieren. Ab diesem Zeitpunkt wird der Schnappschuss jedoch mühelos . Und mit mühelos meine ich One-Liner-Befehle mit vorkonfigurierten Skripten.
- Booten auf die Ubuntu Live-CD (noch keine Installation .. nur die Live-CD)
- Öffnen Sie Zubehör -> Terminal
Wir werden die Festplatte räumen! Bitte sichern Sie alles Wichtige, bevor Sie diese Phase durchlaufen.
Entfernen wir zunächst die vorhandenen Partitionen:
# fdisk /dev/sda
Enter 'd' to delete - enter for as many partitions you have
> d
> <enter>
...
Enter 'w' to write down changes
> w
Erstellen Sie die Startpartition und den Rest des Laufwerks als die andere Partition
# fdisk /dev/sda
> n
To create a new partition.
> p
For Boot Primary partition.
> 1
Press <enter> to accept the default start sector.
Enter:
> +512M
To give the boot partition a size of 512MB
> n
To create (another) new partition.
> p
Should be Primary too.
> <enter>
To accept the default value of 2 (the second partition)
> <enter>
To accept the default start sector
> <enter>
To accept the whole disk
> t
To change the type of the second partition to LVM
> 2
To choose the second partition
> 8e
To set the type to 'LVM Linux'
> w
To write changes and exit.
So überprüfen Sie, ob die Änderungen erfolgreich waren:
# fdisk --list
Sie sollten so etwas bekommen:
Device Boot Start End Blocks Id System
/dev/sda1 2048 524287 261120 83 Linux
/dev/sda2 524288 488397167 243936440 8e Linux LVM
Entfernen Sie alle vorherigen Datenträgergruppen / logischen Datenträger:
# lvdisplay
Zeigt die logischen Datenträger an, die möglicherweise auf dem System vorhanden sind
# lvremove <existing_logical_volume_name>
Wenn eine Volume-Installation, die diese Installation beeinträchtigen könnte, entfernt werden muss.
# vgdisplay
Zeigt alle vorhandenen Volume-Gruppen auf dem System an
# vgremove <existing_volume_group>
Gleich wie für die Volumengruppen.
Erstelle die Volume Group 'vgsnap'
# vgcreate vgsnap /dev/sda2
Sollte ergeben mit:
Volume group "vgsnap" successfully created
Erstellen Sie das logische Volume
# lvcreate --extents 100%FREE --name lvroot vgsnap
Das logische Root-Volume, beginnend mit 100% des Geräts.
# lvresize --size -30G /dev/mapper/vgsnap-lvroot
Damit werden 30 G für Swap- und Snapshot-Volumes entfernt. Natürlich - Sie können kleinere Größen für den Swap / Snapshot wählen.
> 'y'
for the warning shown.
Und erstellen Sie das Swap-Volume:
# lvcreate --size 15G --name lvswap vgsnap
Hinweis: Wir belassen jetzt 15 GB freien Speicherplatz auf dem Laufwerk, der für den zukünftigen Snapshot reserviert ist.
Ubuntu installieren
Schließen Sie das Terminal und starten Sie den Installer.
Wählen Sie "Use LVM ..." (Sie können auch die Verschlüsselung der gesamten Festplatte aktivieren, aber ich habe es nicht getestet.)
Wählen Sie "Etwas anderes" und drücken Sie Weiter. Zu diesem Zeitpunkt finden Sie alle definierten / dev / mapper / ... -Volumes. Einige davon werden automatisch generiert (lvsnap- *) - Sie können sie vorerst ignorieren.
Wählen Sie: / dev / mapper / vgsnap-lvroot volume. Wähle "ext4" als Format und mounte als '/'
Wählen Sie: / dev / mapper / vgsnap-lvswap volume, und wählen Sie "Swap area"
Wenn Sie ein verschlüsseltes Laufwerk erstellen möchten (ich habe keine Ahnung, ob dies mit den Snapshots funktionieren würde?), Möchten Sie wahrscheinlich / dev / sda2 auswählen und das "Volume für die Verschlüsselung" markieren. Habe es aber nicht getestet ..
Hinweis: Die nicht verwendeten 15G bleiben für das Snapshot-Volume frei.
Wählen Sie: / dev / sda1 partition. Formatiere es als 'ext2' und mounte es als '/ boot'
Unten - wähle: / dev / sda1 Partition als Boot
Installieren!
Die folgenden Schritte zeigen, wie der Schnappschuss zu einem bestimmten Zeitpunkt verwendet wird:
Schnappschuss mounten:
Erstellen Sie das Snapshot-Volume
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
Erstellen Sie das Mount-Verzeichnis
# mkdir /mnt/vgsnap-lvsnap
Hängen Sie den Snapshot als Nur-Lese-Mount ein
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Schnappschuss ist an!
An diesem Punkt können Sie anfangen, Ihr System durcheinander zu bringen, Betatreiber zu installieren und sogar (Nein! Das ist einfach unangemessen).
Von nun an können Sie jederzeit (soweit die Größe des Schnappschusses dies zulässt) zum vorherigen Status zurückkehren oder, wenn Sie mit dem neuen Look zufrieden sind, diesen beibehalten.
Automatische Überwachung des freien Speicherplatzes des Snapshot-Volumes: Mit einer optimierten Version des hier bereitgestellten Skripts:
http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/
Ich habe das Skript monitor_snapshot erstellt .
Wie benutzt / installiert man es? - Ziemlich genau wie mit dem obigen Link:
# cd /etc/cron.hourly
# copy /home/<user>/Downloads/monitor_snapshot
# chmod +x monitor_snapshot
Bevor Sie es zum ersten Mal ausführen, sollten Sie die darin enthaltenen Werte wie Ihre E-Mail-Adresse (an die die Benachrichtigungen gesendet werden sollen usw.) besser bearbeiten. Bei korrekter Konfiguration führt der Cron-Daemon das Skript alle X Stunden / Tage aus. wie Sie sich entscheiden - und benachrichtigen Sie, sobald der Schnappschuss voll ist.
So testen Sie den Skriptlauf:
# sh /etc/cron.hourly/monitor_snapshot
Es wird der Prozentsatz (die Anzahl) des freien Speicherplatzes im Schnappschuss gedruckt.
Wichtig! Sobald Sie mit Ihren Tests / Installationen fertig sind - führen Sie ein Rollback durch oder behalten Sie die Änderungen bei - und laden Sie den Snapshot herunter!
Änderungen rückgängig machen : (Siehe Skript rollback_snapshot mit den folgenden Anweisungen am Ende des Dokuments.)
# lvconvert --merge /dev/vgsnap/lvsnap
Dadurch wird auch der Schnappschuss umgemountet, aber alle Ihre Änderungen werden verworfen. Außerdem wird eine Warnung angezeigt, die darauf hinweist, dass die Wiederherstellung erst bei der nächsten Aktivierung erfolgt.
# reboot
Hinweis: Wenn Sie das Zusammenführen überspringen, werden Ihre Änderungen festgeschrieben, sobald Sie den Snapshot umounten.
Festschreiben von Änderungen - Bereitstellen des Snapshots: (Siehe commit_snapshot- Skript mit den folgenden Anweisungen - Link am Ende des Dokuments)
# umount /mnt/vgsnap-lvsnap
Will unmount (commit0 the snapshot
# lvremove /dev/mapper/vgsnap-lvsnap
# rm -rf /mnt/vgsnap-lvsnap/
# rm /etc/cron.hourly/monitor_snapshot
Remove the cron daemon script (that is unused)
Erneutes Mounten des Snapshots: (Siehe Skript zum erneuten Mounten mit den folgenden Anweisungen - Link am Ende des Dokuments) So ziemlich wie zuvor:
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
# mkdir /mnt/vgsnap-lvsnap
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Wenn Sie den monitor_snapshot in Ihrem Home- Verzeichnis gespeichert haben , können Sie ihn wiederherstellen:
# cp /home/<user>/monitor_snapshot /etc/cron.hourly/
# chmod +x /etc/cron.hourly/monitor_snapshot