Gambar sistem menjalankan sistem Debian?

22

Apakah mungkin untuk membuat cadangan sistem Debian yang sedang berjalan ke beberapa jenis file gambar, yang dapat dengan mudah ditulis kembali ke hard disk lain menggunakan dd jika terjadi kegagalan sistem Debian yang asli (didukung)?

Saya terutama mencari alat yang tersedia secara langsung di repositori, karena saya memiliki Debian Wheezy berjalan pada raspberry pi dan oleh karena itu, saya memerlukan dukungan untuk arsitektur ARM, yang diberikan cukup dapat diandalkan untuk paket repositori Debian.

stefan.at.wpf
sumber
2
Saya tidak akan merekomendasikan mencoba untuk mendapatkan salinan blok-untuk-blok dari filesystem rw-mount. Tulisan terkecil dapat merusaknya dan Anda pikir Anda memiliki cadangan yang bisa diterapkan. Jadi mount -o remount,rodrive yang Anda salin jika Anda pilih dd, dumpatau serupa. Menyalin sistem file dengan rsyncatau metode lain apa pun termasuk cpaman untuk sistem live.
WhimsicalWombat

Jawaban:

15

ddbagus jika Anda tidak keberatan membuat file gambar yang persis seukuran cakram mentah Anda. rsyncbagus jika Anda ingin akses tingkat file yang mudah. Tetapi cara standar untuk membuat cadangan sistem file adalah dumpdan restore( aptitude install dump).

Untuk perangkat seperti Raspberry Pi, saya akan mencadangkan sebagai berikut, dengan asumsi tabel partisi MS-DOS dan disknya adalah / dev / sda:

  • dd if=/dev/sda of=sda-boot-sectors.img count=2048 untuk mendapatkan gambar dari bagian boot disk.
  • fdisk -lu /dev/sda >sda-partition-table.txt untuk referensi manusia nanti.
  • dump -0af sda1-root-level0.dump /dev/sda1 dan ulangi untuk setiap partisi yang ingin Anda buat cadangannya.

Anda kemudian dapat memampatkan lot dan meninggalkannya di tempat yang aman. Untuk memulihkan, Anda akan menggunakan dduntuk memulihkan tabel partisi dan mem-boot sektor, memuat ulang tabel partisi, membuat sistem file baru, dan menggunakan cd /mnt/new-filesystem; restore -rf /some-location/sda1-root-level0.dump.

Sisi baiknya:

  • dump mendapat salinan lengkap sistem file, termasuk ACL, atribut yang diperluas, kepemilikan, file jarang, atribut sistem file khusus - semuanya dibuang apa adanya.
  • Itu hanya akan menyalin blok yang Anda butuhkan, mengabaikan yang tidak digunakan.
  • Ini alat unix standar dan dapat dibaca oleh banyak alat unix lainnya.

Kerugiannya:

  • itu akan menghasilkan snapshot yang rusak jika sistem file ditulis selama dump
  • lebih sulit untuk memasang gambar yang dicadangkan (yang dapat Anda lakukan dengan gambar disk) atau sampai ke file individual (yang dapat Anda peroleh dengan rsynccadangan).
  • Ini tipe sistem file khusus. Anda dapat membuang sistem ext3file dan mengembalikannya dalam ext4satu, tetapi Anda bisa membuang semua jenis sistem file. Sebagian besar sistem file yang dewasa memiliki dumpversi mereka sendiri . Debian standar dumpmelakukannya ext2, ext3dan ext4. Jika Anda menggunakan sistem file khusus Flash, opsi Anda mungkin berbeda.
Alexios
sumber
Tidak disebutkan dalam manual untuk dumpsistem file yang seharusnya tidak ditulis. Maksud saya, ini kedengarannya seperti pembatasan yang masuk akal, tetapi sangat disayangkan tidak disebutkan di halaman manual, sehingga seseorang dapat membuat kesalahan ini ...
imz - Ivan Zakharyaschev
Berkat pos Anda, saya telah mempelajari tentang alat ini (dump / restore). Saya akan menggunakannya untuk membuat salinan sistem file dengan sesuatu seperti:mkfs.ext4 /dev/sda1; mount /dev/sda1 /mnt/disk; cd /mnt/disk; dump -0af - /dev/sda5 | restore -rf -
imz - Ivan Zakharyaschev
5

Gunakan dduntuk sektor boot dan rsync -aHSuntuk file. Anda harus mengecualikan sistem file "virtual" seperti / proc / sys dan semua RAM-disk (tmpfs).

Jika Anda ingin tetap mempartisi juga, Anda dapat membuangnya dengan sfdiskatau membuatnya kembali parted.

Nils
sumber
Terima kasih, kedengarannya sangat menarik, apakah Anda sudah mengatur ini sebelumnya? Bagaimana cara membuat gambar lengkap dari bagian-bagian ini, cukup gunakan perangkat loopkack? (Ya, ingin tetap mempartisi dan sebagainya. Ingin gambar siap untuk ditulis ke kartu SD / disk baru tanpa mengutak-atik lagi)
stefan.at.wpf
@ stefan.at.wpf Saya baru saja mencampur beberapa solusi saya untuk kloning VM, membuat server fisik (autoyast / kistart) membuat mirror raid1 dari sistem yang tidak dicerminkan dan cara yang biasa untuk mereplikasi (statis) bagian dari filesystem untuk node cluster. Saya tidak menggunakan myselv ini. Metode saya adalah menginstal otomatis server baru (termasuk klien cadangan) dan kemudian mengembalikan melalui cadangan konten server lama ke server baru.
Nils
4

Untuk Debian , Anda hanya perlu mencadangkan data dan file konfigurasi .

Untuk mencadangkan status yang ada:

  • Cadangkan pilihan paket dengan dpkg --get-selections > dpkg_selections.
  • Cadangkan basis data debconf dengan sudo debconf-get-selections > debconf_selections.

Untuk menerapkan ini ke sistem baru:

  • Pertama, terapkan pilihan debconf dengan sudo debconf-set-selections < debconf_selections.
  • Terapkan pilihan paket dengan dpkg --set-selections < dpkg_selections.
  • Instal paket dengan apt-get dselect-upgrade.

Data Anda terutama harus dalam /homedan /var(misalnya, /var/lib/mysqluntuk MySQL, /var/wwwuntuk Apache, dll.). Anda harus bisa mengetahui aplikasi mana yang penting bagi Anda.

Konfigurasi akan terutama di /etc. Sekali lagi, seharusnya tidak sulit untuk memilih apa yang penting bagi Anda.

bahamat
sumber
Untuk debconf-get-selectionmenjalankanapt-get install debconf-utils
pandita
1

Saya tidak tahu, apakah ini baik untuk dilakukan, ketika sistem berjalan, tetapi ini yang saya lakukan.

sudo dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

seperti yang saya katakan, mungkin ada solusi yang lebih baik, dalam hal ini saya ingin mengetahuinya juga!

Emil
sumber
1

Saya telah mencoba begitu banyak cadangan dan memulihkan perangkat lunak dan tidak pernah senang. Inilah yang saya lakukan sekarang: Saya memiliki Debian kedua yang diinstal pada komputer cadangan (MB yang sama, kartu NIC, dll). Setiap malam saya rsync dari mesin A ke mesin B. Ada beberapa file yang saya tahan (/ etc / network / interfaces, / etc / hosts, / etc / hostname) karena saya tidak ingin konflik dari dua sistem yang sedang berjalan. Sebenarnya, saya punya salinannya di folder lain. Saya juga menonaktifkan beberapa layanan yang saya tidak perlu jalankan di mesin B (postfix, mysql, dll). Saya memiliki skrip yang ditulis pada mesin B yang pada dasarnya akan mengubahnya menjadi mesin A (ganti file-file yang saya tahan), restart NIC dan aktifkan layanan yang dinonaktifkan. Tentu saja mesin A harus mati ketika saya menjalankan skrip atau akan ada kekacauan. Saya menguji mesin B setiap bulan dengan mematikan mesin A, menjalankan skrip, dan melakukan beberapa tes untuk memastikan itu terbaru dan berjalan dengan benar. Itu bekerja seperti pesona!

Joseph Vernice
sumber
0

Lihat Clonezilla. Saya melihatnya tercantum dalam repo standar Debian. http://clonezilla.org/

Sunting: Mungkin tidak, Clonezilla mencantumkan persyaratan di halaman depan mereka: "Prosesor X86 atau x86-64"

Tim
sumber
Proyek yang menarik, terima kasih :-)
stefan.at.wpf
0

Untuk mencadangkan pi saya, saya mengeluarkan kartu microSD, dan colokkan ke laptop saya. Kemudian jalankan a dduntuk menghasilkan file pada laptop saya dari seluruh disk, seperti di atas:

dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M
Bob
sumber
2
Ini benar-benar mengabaikan bagian terpenting dari pertanyaan. Pertanyaannya adalah bertanya bagaimana cara membuat gambar langsung dari suatu sistem dan pada saat Anda memindahkan disk di sekitar Anda sebaiknya mematikan sistem.
Sirene
0

Gunakan systemback. Saya membuatnya bekerja bahkan dengan debian stretch. Ini memberi Anda live boot usb yang bagus dengan desktop yang dikonfigurasi dengan tepat.

Peter
sumber