Saya menggunakan beberapa level cadangan, dari rsync ke disk eksternal ke rsync + ZFS melalui komputer jarak jauh. Salah satu cadangan yang saya lakukan adalah -dari waktu ke waktu- "dd" dari laptop saya ke USB eksternal yang terpasang (terhubung hanya selama prosedur pencadangan). Saya melakukan ini, misalnya, sebelum membawa laptop saya untuk perjalanan.
Prosedur ini bekerja dengan baik selama berabad-abad. Sampai saya mulai menggunakan LVM di laptop saya.
Jika Anda menggunakan LVM di komputer Anda, Anda menyalin harddisk Anda menggunakan dd
(boot dari LiveCD) dan Anda pasang harddisk eksternal saat komputer berjalan normal, nanti, ANDA AKAN MEMPERBAIKI DATA ANDA, BAHKAN KALAH SEMUA KURANGI FILESYSTEM ANDA DI LUAR PERBAIKAN APAPUN !! !
Mengapa?. Karena ketika Anda mencolokkan harddisk eksternal, OS akan melihat konfigurasi LVM yang sama di kedua disk dan secara naif akan berasumsi bahwa kedua disk itu sama, dapat diakses melalui tautan multipath, sehingga akan menyebar membaca dan menulis di antara kedua disk, KOTOR rusak yang tak dapat ditebus. Anda akan membuang data langsung dan cadangan Anda !.
Ini terjadi pada saya sekali. Saya kehilangan data. Saya punya cadangan lain, selama beberapa hari sebelumnya, jadi saya tidak kehilangan sesuatu yang sangat penting, tetapi itu cukup menjengkelkan dan memperlihatkan kelemahan dalam strategi cadangan saya.
Solusi: Pastikan konfigurasi LVM dalam disk cadangan berbeda. Masalahnya adalah ... Bagaimana cara melakukannya?
Saya memposting pertanyaan di superuser.com (Stack Exchange) tetapi saya tidak mendapatkan jawaban yang bagus. Jadi saya mengembangkan prosedur saya sendiri dan, setelah lebih dari setahun berjuang, saya mempostingnya di sini dan menutup pertanyaan awal:
Pastikan bahwa jika ada masalah, komputer Anda tidak akan boot secara otomatis. Dalam kasus saya, laptop saya tidak bisa boot secara otomatis jika daya mati dan hidup kembali. Selain itu, harddisk dienkripsi, sehingga akan meminta kata sandi.
Ini diperlukan karena Anda dapat merusak KEDUA disk jika Anda mem-boot ulang dengan disk cadangan yang terpasang sebelum menyelesaikan prosedur.
Boot dari Live CD. Anda tidak dapat melakukan "dd" dari partisi langsung, jika Anda berharap dapat memulihkan data Anda :-).
Sesuatu untuk dicoba di masa depan adalah dengan menggunakan snapshot LVM untuk dapat melakukan backup saat saya menggunakan komputer, tetapi kemudian saya memiliki masalah duplikat LVM, yang saya coba hindari di sini. Pilihan lain adalah mengkonfigurasi ulang LVM untuk mirror data langsung ke harddisk eksternal, dan memecahkan cermin setelah sinkronisasi selesai. Tapi itu terdengar berisiko, dan tidak akan mencadangkan partisi Windows saya atau data yang saya tidak simpan dalam volume LVM.
Setelah mem-boot LiveCD, pasang harddisk USB eksternal.
Login sebagai "root" dan jalankan vgchange -a n
. Perintah ini akan menonaktifkan LVM di kedua disk. Saya menjalankan perintah beberapa kali, pasti.
Pastikan /dev/sda
sumbernya (harddisk internal) dan /dev/sdb
tujuannya (harddisk eksternal USB). Misalnya, lakukan dd if=/dev/sdb of=/dev/null
dan periksa LED harddisk mana yang berkedip.
Ketika Anda yakin tentang disk yang mana, Anda melakukan penyalinan dd if=/dev/sda of=/dev/sdb bs=65536
. Dengan konfigurasi saya, cadangan membutuhkan waktu empat jam. Harddisk internal saya adalah 500GB, dan USB saya menyalin pada 35MB / s. Saya melakukan ini di malam hari, sementara saya tidur.
Harddisk USB eksternal Anda harus, SETIDAKNYA, sebesar harddisk internal Anda. Sudah jelas, bukan?
Setelah penyalinan ini selesai, Anda memiliki kloning yang tepat untuk harddisk internal Anda. Pencadangan selesai. Tetapi sekarang Anda akan memiliki masalah jika Anda pernah mencolokkan harddisk ini ke komputer Anda saat Anda bekerja dengan harddisk internal Anda, seperti yang sudah dijelaskan. Kita perlu mengubah konfigurasi LVM.
Sekarang, setelah "dd" selesai, lakukan "sinkronisasi" dan cabut harddisk UDB eksternal.
Anda mengeksekusi pvchange --uuid /dev/sda*
. Perintah ini akan mengubah UUID dari semua volume fisik di harddisk internal Anda. Perintah ini aman bahkan jika Anda memiliki partisi yang bukan volume fisik untuk LVM, karena mereka akan secara otomatis dan aman dilewati.
Sistem tahu partisi mana yang volume fisik karena jenis partisi dan karena Anda mengeksekusi "pvcreate" ketika Anda membuat LVM.
Anda mengeksekusi vgchange -u LVM
. Perintah ini akan mengubah UUID grup volume LVM. Omong-omong, grup volume saya disebut "LVM".
Anda mengeksekusi vgscan
. Perintah ini akan memindai harddisk internal (satu-satunya yang saat ini terpasang) dan akan menemukan grup volume LVM Anda di sana.
Anda menjalankan vgrename LVM LVM2
, untuk mengubah nama Volume Group Anda.
Sekarang Anda pasang harddisk USB eksternal Anda.
Anda "vgscan" lagi, kali ini untuk menemukan Grup Volume di harddisk USB eksternal. Sekarang Anda akan memiliki dua Grup Volume. Satu disebut "LVM2" di harddisk internal Anda dan yang lain disebut "LVM" di harddisk eksternal USB Anda.
Ganti nama Kelompok Volume di harddisk USB eksternal dengan vgrename LVM LVM_BACKUP
.
Dan mengubah nama Volume Group di harddisk internal yang kembali ke nama asli: vgrename LVM2 LVM
.
Kamu selesai. Anda dapat meninjau situasi dengan vgdisplay -v
.
Anda akan melihat bahwa Volume Logical UUID sama di kedua Grup Volume, tetapi itu tampaknya tidak menimbulkan masalah, dan saya tidak tahu bagaimana mengubahnya.
Cabut hard disk USB eksternal Anda, simpan di tempat yang aman, reboot komputer Anda, keluarkan LiveCD dan kembali ke bisnis.