Singkatnya - snapshots adalah cara untuk membekukan sektor yang digunakan pada HardDisk, memberi tahu sistem untuk menulis setiap perubahan / hapus / tambahkan pada bagian yang dicadangkan dari HardDisk, yang disebut volume snapshot, sehingga menunda keputusan menjaga / membuang perubahan. pada drive ke waktu mendatang, sejauh yang disediakan oleh ruang volume foto. Jadi, setelah Anda memutuskan untuk mengembalikan perubahan (atau menyimpannya), Anda dapat melakukannya dengan satu baris.
Jika Anda tidak memiliki grup volume pra-konfigurasi, Anda mungkin perlu menginstal Ubuntu bersih baru. Kemudian, Anda harus melakukan upaya mengkonfigurasi sistem dengan benar untuk pertama kalinya, tetapi mulai saat ini, snapshot akan menjadi mudah . Dan maksud saya adalah perintah one liner, dengan menggunakan skrip yang sudah dikonfigurasi sebelumnya.
- Boot ke live cd ubuntu (belum ada instalasi .. hanya live cd)
- Buka Aksesori -> Terminal
Kami akan membersihkan hard drive! Harap cadangkan sesuatu yang penting sebelum melewati tahap ini.
Pertama, mari kita hapus partisi yang ada:
# fdisk /dev/sda
Enter 'd' to delete - enter for as many partitions you have
> d
> <enter>
...
Enter 'w' to write down changes
> w
Buat partisi boot dan sisa drive sebagai partisi lainnya
# 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.
Untuk memeriksa apakah perubahan bekerja dengan baik:
# fdisk --list
Anda harus mendapatkan sesuatu seperti ini:
Device Boot Start End Blocks Id System
/dev/sda1 2048 524287 261120 83 Linux
/dev/sda2 524288 488397167 243936440 8e Linux LVM
Hapus semua grup volume / volume logis sebelumnya:
# lvdisplay
Akan menampilkan volume logis yang Anda miliki di sistem
# lvremove <existing_logical_volume_name>
Jika ada volume instalasi yang dapat mengganggu instalasi ini perlu dihapus.
# vgdisplay
Akan menunjukkan grup volume yang ada pada sistem
# vgremove <existing_volume_group>
Sama seperti untuk grup volume ..
Buat Grup Volume 'vgsnap'
# vgcreate vgsnap /dev/sda2
Harus dihasilkan dengan:
Volume group "vgsnap" successfully created
Buat Volume Logis
# lvcreate --extents 100%FREE --name lvroot vgsnap
Volume root logis, dimulai dengan 100% perangkat.
# lvresize --size -30G /dev/mapper/vgsnap-lvroot
Ini akan melepas 30G untuk volume swap & snapshot. Tentu saja - Anda dapat memilih ukuran yang lebih kecil untuk swap / snapshot.
> 'y'
for the warning shown.
Dan buat volume swap:
# lvcreate --size 15G --name lvswap vgsnap
Catatan: sekarang kami menyisakan 15G ruang drive yang tidak digunakan, disediakan untuk snapshot masa depan.
Menginstal Ubuntu
Tutup terimnal dan mulai Installer.
Pilih "Gunakan LVM ..." (Anda juga dapat memilih untuk mengaktifkan enkripsi seluruh disk - tapi saya tidak mengujinya ..)
Pilih "Sesuatu Yang Lain" dan tekan lanjutkan. Pada tahap ini Anda akan menemukan pembagian volume / dev / mapper / ... ditentukan. Beberapa di antaranya dihasilkan secara otomatis (lvsnap- *) - Anda dapat mengabaikannya untuk saat ini.
Pilih: / dev / mapper / vgsnap-lvroot volume. Pilih "ext4" sebagai format, dan mount sebagai '/'
Pilih: / dev / mapper / vgsnap-lvswap volume, dan pilih "swap area"
Jika Anda ingin membuat drive terenkripsi (saya tidak tahu apakah itu akan berfungsi dengan snapshot?), Anda mungkin ingin memilih / dev / sda2 dan menandai "volume untuk enkripsi". Tidak mengujinya ..
Catatan: 15G yang tidak digunakan dibiarkan bebas untuk volume foto.
Pilih: / dev / sda1 partisi. Format itu sebagai 'ext2' dan pasang sebagai '/ boot'
Di bawah - pilih: / dev / sda1 partisi sebagai boot
Memasang!
Langkah-langkah berikut akan menunjukkan cara menggunakan snapshot pada waktu tertentu:
Memasang snapshot:
Buat volume foto
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
Buat direktori mount
# mkdir /mnt/vgsnap-lvsnap
Pasang snapshot sebagai mount hanya-baca
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Snapshot Aktif!
Pada titik ini Anda dapat mulai mengacaukan sistem Anda, menginstal driver beta, dan bahkan (Tidak! Itu tidak pantas).
Mulai sekarang Anda dapat kapan saja (sejauh yang disediakan snapshot ..) kembali ke kondisi sebelumnya, atau, jika puas dengan tampilan baru - pertahankan.
Pemantauan ruang disk volume bebas snapshot otomatis: Menggunakan skrip versi yang disediakan di sini:
http://blog.rimuhosting.com/2012/02/20/cron-script-for-checking-disk-space/
Saya membuat skrip monitor_snapshot .
Bagaimana cara menggunakan / menginstalnya? - Cukup banyak dengan tautan di atas:
# cd /etc/cron.hourly
# copy /home/<user>/Downloads/monitor_snapshot
# chmod +x monitor_snapshot
Sebelum menjalankannya untuk pertama kali Anda lebih baik mengedit nilai-nilai di dalamnya, seperti alamat email Anda (di mana pemberitahuan akan dikirim, dll.) Jika dikonfigurasi dengan benar, daemon cron akan menjalankan skrip setiap X jam / hari - saat Anda memutuskan - dan memberi tahu Anda setelah foto akan segera penuh.
Untuk menguji menjalankan skrip:
# sh /etc/cron.hourly/monitor_snapshot
Ini akan mencetak persentase (jumlah) ruang kosong dalam foto itu.
Penting! Setelah Anda selesai dengan pengujian / instalasi Anda - kembalikan atau pertahankan perubahan - dan sesuaikan snapshot!
Memutar kembali perubahan: (Lihat skrip rollback_snapshot , dengan instruksi berikut di dalamnya, tautan di akhir dokumen)
# lvconvert --merge /dev/vgsnap/lvsnap
Ini juga akan menghitung snapshot, tetapi akan mengabaikan perubahan Anda. Juga - Anda akan melihat peringatan yang menunjukkan bahwa pengembalian hanya akan terjadi aktivasi berikutnya, jadi:
# reboot
Catatan: Jika Anda melewatkan penggabungan, perubahan Anda akan dilakukan setelah Anda Mengunggah foto itu.
Mengkomit perubahan - umounting snapshot: (Lihat skrip commit_snapshot , dengan instruksi berikut di dalamnya - tautan di akhir dokumen)
# 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)
Pasang kembali snapshot: (Lihat skrip remount , dengan instruksi berikut di dalamnya - tautan di akhir dokumen) Seperti sebelumnya:
# lvcreate --size 15G --snapshot --name lvsnap /dev/mapper/vgsnap-lvroot
# mkdir /mnt/vgsnap-lvsnap
# mount -o ro /dev/vgsnap/lvsnap /mnt/vgsnap-lvsnap
Jika Anda menyimpan monitor_snapshot di dir home Anda, Anda dapat mengembalikannya:
# cp /home/<user>/monitor_snapshot /etc/cron.hourly/
# chmod +x /etc/cron.hourly/monitor_snapshot