W skrócie - migawki są sposobem na zamrożenie używanych sektorów na dysku twardym, mówiąc systemowi, aby zapisał dowolną zmianę / usunięcie / dodanie w zarezerwowanej części dysku twardego, zwanej woluminem migawki, tym samym opóźniając decyzję o zachowaniu / odrzuceniu zmian na dysku do pewnego czasu w przyszłości, o ile zapewnia przestrzeń woluminów migawki. Tak więc, gdy zdecydujesz się cofnąć zmiany (lub zachować je), możesz to zrobić za pomocą jednej linii.
Jeśli nie masz wstępnie skonfigurowanej grupy woluminów, prawdopodobnie będziesz musiał zainstalować świeżą, czystą wersję Ubuntu. Następnie trzeba będzie po raz pierwszy włożyć trochę wysiłku w prawidłową konfigurację systemu, ale od tego momentu migawka stanie się łatwa . Mówiąc „bez wysiłku” mam na myśli polecenia jednego linijki, używając wstępnie skonfigurowanych skryptów.
- Uruchom komputer na Live CD z Ubuntu (jeszcze nie ma instalacji .. tylko Live CD)
- Otwórz Akcesoria -> Terminal
Wyczyścimy dysk twardy! Wykonaj kopię zapasową wszystkiego, co ważne, zanim przejdziesz przez ten etap.
Najpierw usuńmy istniejące partycje:
# fdisk /dev/sda
Enter 'd' to delete - enter for as many partitions you have
> d
> <enter>
...
Enter 'w' to write down changes
> w
Utwórz partycję rozruchową i resztę dysku jako drugą partycję
# 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.
Aby sprawdzić, czy zmiany działały poprawnie, wykonaj:
# fdisk --list
Powinieneś dostać coś takiego:
Device Boot Start End Blocks Id System
/dev/sda1 2048 524287 261120 83 Linux
/dev/sda2 524288 488397167 243936440 8e Linux LVM
Usuń wszystkie poprzednie grupy woluminów / woluminy logiczne:
# lvdisplay
Wyświetli logiczne woluminy, które możesz mieć w systemie
# lvremove <existing_logical_volume_name>
Jeśli jakakolwiek instalacja woluminowa, która może zakłócać tę instalację, musi zostać usunięta.
# vgdisplay
Pokaże każdą istniejącą grupę woluminów w systemie
# vgremove <existing_volume_group>
Taki sam jak dla grup woluminów ..
Utwórz grupę woluminów „vgsnap”
# vgcreate vgsnap /dev/sda2
Powinny wynikać z:
Volume group "vgsnap" successfully created
Utwórz wolumin logiczny
# lvcreate --extents 100%FREE --name lvroot vgsnap
Główny wolumin logiczny, zaczynający się od 100% urządzenia.
# lvresize --size -30G /dev/mapper/vgsnap-lvroot
To zdejmie 30G dla woluminów wymiany i migawek. Oczywiście - możesz wybrać mniejsze rozmiary dla zamiany / migawki.
> 'y'
for the warning shown.
I utwórz wolumin wymiany:
# lvcreate --size 15G --name lvswap vgsnap
Uwaga: pozostawiamy teraz 15 GB nieużywanego miejsca na dysku, zarezerwowane dla przyszłej migawki.
Instalowanie Ubuntu
Zamknij termin i uruchom instalatora.
Wybierz „Użyj LVM ...” (możesz także włączyć szyfrowanie całego dysku - ale go nie testowałem ..)
Wybierz „Coś innego” i naciśnij przycisk Kontynuuj. Na tym etapie znajdziesz przydzielone ilości / dev / mapper / ... woluminów. Niektóre z nich są generowane automatycznie (lvsnap- *) - na razie możesz je zignorować.
Wybierz: / dev / mapper / vgsnap-lvroot volume. Wybierz „ext4” jako format i zamontuj jako „/”
Wybierz: / dev / mapper / vgsnap-lvswap volume i wybierz „swap area”
Jeśli chcesz utworzyć zaszyfrowany dysk (nie mam pojęcia, czy to działałoby z migawkami?), Prawdopodobnie będziesz chciał wybrać / dev / sda2 i zaznaczyć „wolumin do szyfrowania”. Nie przetestowałem tego jednak ...
Uwaga: Nieużywane 15G pozostaje wolne dla woluminu migawki.
Wybierz: partycję / dev / sda1. Sformatuj go jako „ext2” i zamontuj jako „/ boot”
Poniżej - wybierz: partycję / dev / sda1 jako boot
Zainstalować!
Montowanie migawki:
Utwórz wolumin migawki
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
Utwórz katalog montowania
# mkdir /mnt/vgsnap-lvsnap
Zamontuj migawkę jako montaż tylko do odczytu
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Migawka jest włączona!
W tym momencie możesz zacząć popsuć system, zainstalować sterowniki beta, a nawet (nie! To po prostu nieodpowiednie).
Od teraz możesz w dowolnym momencie (o ile pozwala na to rozmiar migawki ...) powrócić do poprzedniego stanu lub, jeśli jesteś zadowolony z nowego wyglądu, zachowaj go.
Automatyczne monitorowanie wolnej przestrzeni dyskowej migawki: za pomocą poprawionej wersji skryptu podanej tutaj:
http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/
Stworzyłem skrypt monitor_snapshot .
Jak go używać / zainstalować? - Prawie jak w powyższym linku:
# cd /etc/cron.hourly
# copy /home/<user>/Downloads/monitor_snapshot
# chmod +x monitor_snapshot
Przed uruchomieniem go po raz pierwszy lepiej edytuj zawarte w nim wartości, takie jak adres e-mail (do którego mają być wysyłane powiadomienia itp.). Przy prawidłowej konfiguracji demon cron będzie uruchamiał skrypt co X godzin / dni - zgodnie z decyzją - i powiadomimy Cię, gdy migawka będzie prawie pełna.
Aby przetestować uruchomienie skryptu:
# sh /etc/cron.hourly/monitor_snapshot
Wyświetli procent (liczbę) wolnego miejsca w migawce.
Ważny! Po zakończeniu testów / instalacji - przywróć lub zachowaj zmiany - i zamontuj migawkę!
Cofanie zmian: (Zobacz skrypt rollback_snapshot , z następującymi instrukcjami, link na końcu dokumentu)
# lvconvert --merge /dev/vgsnap/lvsnap
Spowoduje to również umountowanie migawki, ale odrzuci wszelkie zmiany. Ponadto - zobaczysz ostrzeżenie sugerujące, że przywrócenie nastąpi tylko przy następnej aktywacji, więc:
# reboot
Uwaga: jeśli pominiesz scalanie, zmiany zostaną zatwierdzone po umountowaniu migawki.
Zatwierdzanie zmian - podłączanie migawki: (Zobacz skrypt commit_snapshot , z następującymi instrukcjami - link na końcu dokumentu)
# 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)
Ponowne montowanie migawki: (Zobacz skrypt remount , z następującymi instrukcjami - link na końcu dokumentu) Prawie jak wcześniej:
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
# mkdir /mnt/vgsnap-lvsnap
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Jeśli zapisałeś monitor_snapshot w swoim katalogu domowym, możesz przywrócić go z powrotem:
# cp /home/<user>/monitor_snapshot /etc/cron.hourly/
# chmod +x /etc/cron.hourly/monitor_snapshot