Mungkinkah membuat salinan panas dari suatu sistem?

10

Saya ingin membuat cadangan sistem saya tanpa mematikannya. Klon sistem juga harus dapat berjalan di mesin lain.

Saya sudah mencoba "dd" seluruh partisi sistem pada disk lain, setelah itu saya memastikan tidak ada tugas administratif yang diluncurkan. Saya pikir saya harus memberitahu grub untuk boot pada disk itu, jadi saya sudah menjalankan perintah:

grub-install  /dev/sdc1 

tapi saya mendapat kesalahan ini:

The file /boot/grub/stage1 not read correctly.

Saya tahu yang saya lakukan tidak terlalu bersih, jadi apakah Anda memiliki solusi yang baik untuk mencapai tujuan saya atau ide untuk menyelesaikan masalah grub?

Gael
sumber
Jika Anda harus tetap menjalankannya, itu berarti itu benar-benar melakukan sesuatu. Jika itu masalahnya, maka hampir pasti bahwa konten sistem Anda akan berubah selama pencadangan. Ini membuat hasil yang agak tidak terduga - banyak uji sebelum digunakan dalam produksi.
Joe

Jawaban:

8

Ada beberapa opsi yang masing-masing memiliki pengorbanan. Anda tidak dapat menggunakan dduntuk mengkloning sistem file ketika sedang di-mount baca / tulis atau klon akan berakhir rusak karena sumber sedang diubah selama salinan sehingga tujuan akan sebagian ketinggalan zaman dan sebagian tidak. Jika Anda benar-benar ingin dapat menggunakan dduntuk menyalin partisi, Anda dapat melakukannya dengan snapshot LVM . Ini mengharuskan Anda telah menginstal sistem menggunakan LVM di tempat pertama, tetapi kemudian Anda dapat membuat snapshot kapan saja, dan karena snapshot itu dibekukan dan tidak dipasang, Anda dapat dengan aman ddsnapshot, kemudian menghapus snapshot. Sisi bawah lainnya untuk digunakanddadalah bahwa ia membuang waktu untuk menyalin semua ruang yang tidak digunakan dalam volume, dan mengharuskan tujuan setidaknya sama besar, bahkan jika sebagian besar sumber tidak digunakan.

Daripada menggunakan dd, Anda cukup menggunakan alat cadangan tradisional seperti taratau dumpuntuk membuat cadangan snapshot. Ini memiliki keuntungan tidak membuang-buang waktu menyalin ruang kosong, dan dapat dikembalikan ke partisi yang lebih kecil asalkan memiliki ruang untuk file. Anda juga dapat mengekstrak hanya beberapa file untuk melakukan pengembalian sebagian. Anda juga tidak harus menggunakan LVM dengan metode ini: selama Anda cukup yakin bahwa tidak ada file yang dimodifikasi ketika Anda membuat cadangan, aman untuk dilakukan pada sistem file yang terpasang. Hal terburuk yang dapat terjadi adalah bahwa file individual yang dimodifikasi selama cadangan akan rusak, daripada seluruh cadangan menjadi korup, seperti yang bisa terjadi dengan dd.

Seperti yang Anda sadari, setelah memulihkan sistem file, Anda masih perlu menginstal ulang grub agar sistem bisa boot. Saya tidak yakin mengapa Anda mendapatkan kesalahan itu ketika Anda mencoba, tetapi tampaknya Anda menggunakan grub-legacy, karena grub2 tidak memiliki stage1.

psusi
sumber
Saya tidak menggunakan LVM, tapi saya bisa, saya mencari solusi yang tahan lama. apakah cukup untuk menyalin semua hierarki sistem (tidak termasuk proc) dan kemudian memodifikasi grub?
Gael
Ya ampun, itu sudah cukup untuk menyalin semua file, dan instal ulang grub, ya. Anda juga mungkin perlu memperbarui UUID di / etc / fstab. Perhatikan bahwa jika Anda menggunakan tarAnda ingin mengecualikan tidak hanya / proc, tetapi juga / dev, / sys, dan / jalankan juga, atau gunakan --one-file-systemswitch untuk menghentikannya turun ke sistem file lain.
psusi
terima kasih, saya akan coba dengan tar. Solusi ini memungkinkan kontrol penuh atas cadangan.
Gael
3

Menggunakan sesuatu seperti rsyncatau taruntuk menyalin partisi mungkin lebih sederhana. Saya akan me-mount partisi pada titik mount kedua seperti /mntsebelum salinan. Opsi ini juga memungkinkan Anda untuk mengubah ukuran atau jenis partisi. Anda mungkin memiliki struktur pada partisi tambahan juga. Saya sering memiliki partisi terpisah untuk /vardan /usr. Ini perlu dipertimbangkan juga.

Anda mungkin perlu menggali grubdokumentasi untuk menentukan cara menargetkan disk dan partisi dengan benar. install-grubdapat membuat asumsi yang salah yang tidak melakukan apa yang Anda inginkan.

Ada alat seperti mondoyang memungkinkan Anda untuk membuat CD pemulihan yang dapat di-boot dengan OS Anda terpasang di dalamnya.

BillThor
sumber
Saya menggunakan dd karena saya mengatakan kepada saya bahwa alat salin file lain hanya akan menyalin file, bukan mbr dan tabel partisi. Aku melirik mondo, dan itu bisa menjadi solusi paling sederhana. Terima kasih
Gael
@ David Jika Anda hanya mengkloning SD1, Anda tidak akan mendapatkan MBR. Ada sejumlah alat yang akan memperbarui MBR jika diperlukan. Biasanya sudah memiliki kode untuk mencari catatan boot.
BillThor
1

Saya pikir tidak ada opsi nyata untuk melakukan pencadangan yang andal dari sistem yang berjalan pada tingkat perangkat: Sistem file Anda akan terlalu rusak karena Anda tidak dapat membekukan keadaan saat ini dan operasi pencadangan memerlukan waktu yang signifikan.

Namun Anda dapat mencoba opsi berikut:

  1. Jalankan sistem dalam VM. Anda dapat membuat snapshot sistem dan kemudian membuat cadangan snapshot ini. Saat pencadangan selesai, snapshot dapat dengan mudah dibuang. Ini memecahkan masalah yang disebutkan di atas.
  2. Lakukan pencadangan pada level sistem file, bukan pada level perangkat. Saya dapat merekomendasikan rsnapshot untuk ini.
Vilmantas Baranauskas
sumber
Saya mencari solusi yang memungkinkan untuk membuat cadangan sistem tanpa mematikannya. Jadi, terlepas dari metode yang digunakan, sistem harus dijalankan. Jika itu cukup untuk menyalin hanya filesystem untuk menyalin sistem, rsync akan melakukan pekerjaan, apa yang membawa rsnapshot?
Gael
rsnapshot memberi Anda sebanyak mungkin beberapa cadangan tambahan yang Anda butuhkan (setiap jam, harian, mingguan, bulanan) dan cadangan tersedia dalam struktur direktori penuh polos meskipun ada tambahan.
Vilmantas Baranauskas