Pertanyaan ini menjawab pertanyaan tentang bagaimana saya menggunakan komputer eksternal untuk membuat cadangan RPi saya.
Saya bertanya-tanya apakah saya dapat membuat gambar cadangan kartu SD yang sedang digunakan, dan menyalinnya ke file di perangkat penyimpanan USB. Apakah ini mungkin? Jika tidak, apakah ada cara untuk membuat cadangan RPi tanpa melibatkan komputer lain?
dd
, lihatlahrsync
.dd
salinan dengan ukuran blok yang sesuai mungkin akan lebih cepat untuk salinan "baru". Melakukan salinan file per file ke media flash / SD mungkin merupakan ide yang buruk.Jawaban:
Inilah pengantar untuk digunakan
rsync
untuk membuat cadangan pada Pi. Setelah pencadangan awal dibuat, tetap perbarui dengan cara ini jauh lebih cepat daripada terus-menerus merobek seluruh gambar. Anda dapat melakukan ini pada hard drive lokal atau melalui jaringan.Anda sebenarnya tidak ingin salinan lengkap dari sistem yang berjalan sebagai cadangan, karena beberapa hal yang tampaknya ada di sistem file hanya ada saat runtime. Menyertakannya dalam cadangan dan kemudian menggunakannya untuk membuat ulang gambar nanti dapat membuat masalah bagi Anda.
Ada beberapa pengecualian lain juga.
rsync
dapat menerima daftar pola ( gumpalan ) untuk dikecualikan, dan itu dapat dibaca dari file, jadi mari kita pergi melalui apa yang seharusnya ada di file seperti itu. Perhatikan bahwa entri berbentuk/directory/*
dan bukan/directory
. Ini karena kami ingin mereka ada, tetapi kami tidak ingin menyalin apa pun di dalamnya.Ini tidak benar-benar ada pada disk. Mereka adalah antarmuka ke kernel, yang membuat dan memelihara mereka dalam memori . Jika Anda menyalin ini dan kemudian menyalinnya kembali ke sistem dan mem-bootnya, itu akan (paling tidak) tidak berarti, karena kernel menggunakan itu sebagai titik mount untuk antarmuka [Jika Anda ingin melihat apa yang terjadi ketika Anda memasang partisi sistem file pada direktori dengan data di dalamnya, coba. Ini berfungsi dan tidak akan membahayakan, tetapi barang-barang yang ada di direktori sekarang tidak dapat diakses.]
Perhatikan bahwa sangat penting bahwa
/sys
dan/proc
titik mount ada. Tapi mereka seharusnya tidak mengandung apa pun. Lanjut:The
dev
direktori tidak cukup hal yang sama sepertiproc
dansys
tetapi untuk tujuan kita itu. Jika Anda yakin bahwa Anda harus menyimpan ini sehingga Anda dapat memiliki node perangkat yang sama di cadangan Anda atau sesuatu, Anda salah . Jangan repot-repot. Jangan menyalindev
. Dahulu kala Linux memang bekerja seperti itu, tetapi tidak lagi.Ini adalah semacam kasus khusus dengan sebagian besar (mungkin semua) distro khusus Pi seperti Raspbian. Ini sebenarnya adalah titik mount untuk partisi pertama, vfat. Kami akan menghadapinya secara terpisah. Apa pun yang Anda lakukan, jangan repot-repot memasukkannya ke sini, karena sekali lagi, ini adalah titik puncak.
/run
umumnya tidak pada disk juga, itu di memori. Mungkin/tmp
bisa terlalu (ini akan menghemat sedikit aksi kartu SD), tetapi bagaimanapun, seperti namanya, ini bukan tempat untuk menyimpan data yang persisten. Aplikasi yang menggunakannya berharap dapat dihapus pada setiap boot.Ini penting terutama jika Anda berencana untuk mencadangkan ke hard drive atau stik USB dan perangkat sedang
/mnt
atau/media
(otomatis cenderung menggunakan yang terakhir), karena jika Anda tidak mengecualikan lokasi perangkat tersebut di sistem file Anda akan buat loop yang mencadangkan konten drive ke dirinya sendiri, sampai kehabisan ruang. Saya pikirrsync
mungkin cukup pintar untuk menemukan sesuatu yang bodoh, tetapi cobalah untuk menghindari pengujian premis.Aktif ke pencadangan aktual: Buat direktori untuk mencadangkan pada harddrive yang terpasang secara lokal, USB, dll. - mis. "Pi_backup". Anda dapat mem-backup secara bergantian ke lokasi yang jauh melalui
ssh
(lihat di bawah) atau menggunakan sistem file yang terpasang di jaringan, tetapi ini mungkin akan memakan waktu agak lama untuk pertama kalinya.Jika file yang berisi daftar untuk dikecualikan adalah
/rsync-exclude.txt
1 dan drive Anda adalah/mnt/usbhd
, untuk melakukan pencadangan yang sebenarnya:Perhatikan bahwa ada garis miring pada
pi_backup/
.Ini akan memakan waktu cukup lama dan menghasilkan banyak output (jika Anda ingin memeriksanya dalam log, tambahkan
> rsync.log
).--delete
tidak ada artinya pertama kali, tetapi untuk menjaga cadangan diperbarui menggunakannya. Ini memastikan bahwa hal-hal yang Anda kemudian hapus pada Pi juga akan dihapus dari cadangan Anda. Thea
set rekursi ke direktori dan memastikan semua atribut berkas pertandingan.-H
adalah untuk melestarikan hard link 2 ,v
adalah untuk verbose itulah sebabnya Anda mendapatkan beberapa output (jikarsync
tidak diam). Lihatman rsync
lebih lanjut.Ada jalan pintas di mana Anda dapat melewati
--exclude-from
file. Jika Anda yakin bahwa semua hal yang tidak ingin Anda salin (/tmp
dll.) Ada di sistem file yang terpisah, Anda bisa menggunakan:-x
telah dimasukkan. Ini adalah bentuk singkat dari--one-file-system
, yang memberitahursync
untuk tidak melewati batas filesystem. Secara pribadi saya lebih suka--exclude-from
, tetapi pada misalnya, Raspbian default,--one-file-system
akan berfungsi dengan baik. Anda dapat menggunakan keduanya jika ingin-x
berhati-hati: DItu bukan cadangan yang lengkap. Sudah cukup jika Anda belum memasukkan apa pun
boot
dan Anda baik-baik saja dengan menggunakan cadangan untuk hanya mengembalikan sistem dengan menempelkan kartu di komputer dan menjalankan:Anda juga dapat melakukan ini dengan kartu dengan gambar baru di atasnya (anggap itu sama dengan gambar dasar Anda) walaupun itu sedikit tidak efisien jika Anda harus membuat gambar (karena Anda kemudian akan menimpa sebagian besar dari itu). Anda juga dapat menghubungkan kartu SD lain melalui adaptor USB dengan gambar seperti itu, dan menggunakan metode di atas untuk mempertahankan kartu duplikat.
Jika Anda memasukkan barang-barang
/boot
(misalnya, kernel khusus), termasuk/boot/config.txt
, Anda juga ingin mencadangkannya (cukup sederhana - tidak banyak). Lakukan saja secara terpisah, dan ketika Anda memulihkan, hal itu masuk di partisi pertama.Lihat di sini jika Anda ingin membuat gambar gaya Raspbian kosong yang dapat Anda backup. Anda dapat menggunakan metodologi serupa untuk membuat kartu gaya Raspbian kosong - hanya daripada berurusan dengan
.img
file, Anda akan berurusan dengan perangkat nyata (misalnya/dev/sdb
), artinya yang harus Anda lakukan adalah membuat tabel partisi denganfdisk
dan kemudian format/dev/sdb1
dansdb2
(atau apa pun) denganmkfs
.Tetapi menyalin seluruh gambar lebih mudah! Kenapa repot-repot dengan ini?
Tidak sesulit itu; Saya mengembalikan ke kartu kosong (diformat sesuai tautan terakhir) dalam 10 menit. Ya, hanya menggunakan
dd
semuanya lebih sederhana (jika Anda menemukan hal-hal seperti kata-kata membingungkan ...), TETAPI itu butuh waktu cukup lama setiap kali Anda ingin memperbarui cadangan Anda karena Anda harus melakukan 100% setiap kali. Dengan menggunakanrsync
, begitu ada cadangan, memperbarui itu jauh lebih cepat, sehingga Anda dapat mengaturnya agar terjadi tanpa rasa sakit setiap hari melalui cron. Bahkan melalui jaringan. Setiap enam jam. Semakin sering Anda melakukannya, semakin sedikit waktu yang dibutuhkan.rsync
melaluissh
Ini sebuah contoh:
"Opsi" akan menjadi, misalnya,
-av --delete --exclude-from=/rsync-exclude.txt
dan "opsi ssh" adalah apa pun yang biasanya Anda gunakan (jika ada). Anda harus memiliki akses root melaluissh
untuk melakukan hal ini untuk keperluan backup sistem (setPermitRootLogin=yes
di/etc/ssh/sshd_config
dan restart server).1 Anda harus menyimpan file ini. Anda dapat memberikan komentar di dalamnya pada baris yang dimulai dengan
#
atau;
. Ini bisa termasukrsync
perintah aktual , yang dapat disalin kemudian disalin sehingga Anda tidak harus mengingatnya setiap kali.2 Terima kasih kepada Kris karena menunjukkan
rsync
tidak melakukan ini secara otomatis.sumber
mkdir /tmp/backupable && mount --bind / /tmp/backupable
dan rsync itu? Itu juga memiliki keuntungan mencadangkan data yang disimpan di tempat-tempat yang "dibayangi" oleh sesuatu yang dipasang di sana.--exclude-from
adalah ide yang lebih baik. Jika Anda punya waktu, Anda dapat menuliskannya sebagai jawaban terpisah, Anda memiliki suara saya, dan saya dapat merujuknya. Jawaban ini cukup panjang lebar..img
Anda bisa; ini dan ini akan membantu menjelaskan bagaimana mereka terstruktur dan dapat dibuat.Sebuah skrip yang berfungsi dari Komunitas Raspberry dibuat oleh anggota di sana.
Anda dapat menggunakan kembali dan mengubah kode sesuka Anda. Ini didokumentasikan dengan baik dan cukup jelas.
Pertimbangkan untuk menambahkan komentar ke forum asli atau memposting versi Anda sendiri untuk membantu mematangkan konten. Ambil sedikit, beri sedikit.
* Dan terima kasih telah memberikan kembali AndersW (Klik untuk skrip GIT)
sumber
rsnapshot
terdengar promoisingrsync
adalah cara untuk pergi; ketika saya punya waktu besok saya akan menambahkan jawaban.rsnapshot
juga layak diselidiki.Saya telah mengadaptasi jawaban @goldilocks pada rsync untuk cadangan pada pi. Saya mencadangkan ke
ext4
partisi pada HDD yang dipasang pada Pi. Jika HDD tidak dipasang, rsync akan menyalin ke direktori pemasangan (hingga SD Card penuh). Jika HDD tidak dipasang dalamrw
mode pesan kesalahan berlebihan diproduksi. Tidak satu pun dari ini diinginkan, jadi saya memeriksa apakah partisi saya sudah terpasang dalamrw
mode sebelum melanjutkan.CATATAN 2015-03-03 Saya mengubah jawaban saya untuk menyalin hardlink secara akurat. Dokumen asli berfungsi, tetapi mengubah banyak hardlink menjadi file. Selain membuang-buang ruang, kompromi ini banyak menggunakan yang menganggap hardlink ada di tempat. (Gambar saya saat ini memiliki 869 tautan, banyak di Raspbian itu sendiri.)
Script saya untuk melakukan ini adalah sebagai berikut. (Partisi saya sudah
PiData
terpasang/mnt/PiData
Pulihkan (atau perbarui Pi lain) dengan yang berikut: -
Saya telah meningkatkan
rsync-exclude.txt
untuk menghilangkan file yang tidak perlu.Grup pertama adalah direktori yang didokumentasikan oleh @goldilocks https://raspberrypi.stackexchange.com/users/5538/
Grup kedua adalah file dan direktori yang dibuat oleh OS X ketika saya mengakses Pi saya menggunakan AFP (Apple Filing Protocol). (Ini biasanya tidak terlihat pada OS X, tetapi tidak pada Raspbian. Dalam hal apapun, tidak perlu cadangan.) Bahkan jika Anda tidak pernah menggunakan AFP, ini tidak akan membahayakan.
Grup ketiga adalah file yang tidak perlu dicadangkan (dan tentu saja tidak disalin ke Pi lain). Contohnya palsu-hwclock.data, laporan RPi-Monitor. Anda mungkin akan memiliki orang lain.
sumber
Saya memiliki tiga PIS yang berjalan di jaringan lokal saya dan perlu membackupnya secara reguler dengan cron ketika sedang aktif. Itu sebabnya saya membuat skrip yang dapat membuat cadangan dd, tar dan rsync dan untuk mengembalikannya. Saya lebih suka menggunakan rsync untuk cadangan saya tetapi orang lain lebih suka dd atau tar. Ini sudah digunakan oleh banyak orang. Semoga bermanfaat bagi orang lain juga :-) raspibackup - Raspberry membuat cadangan sendiri
sumber
Berikut ini adalah alat stabil kami untuk tujuan tersebut: https://github.com/aktos-io/aktos-dcs-tools
Alat ini ditulis untuk
make ssh
koneksi,make backup-root
,make mount-root
dari tempat-tempat terpencil di pikiran pada awalnya, dan kemudian sesi lokal ditambahkan. Jadi mendukung backup lokal, backup jarak jauh langsung, backup jarak jauh proxy. Cadangan diambil secara bertahap (hanya perbedaan yang ditransfer) dan direktori pencadangan berdiri sendiri (cukup pilih direktori / versi untuk dipulihkan, direktori mana pun memiliki cadangan lengkap). Tentu saja, Anda memiliki versi (backup.last-0 adalah yang terbaru). Anda dapat menghentikan proses pencadangan kapan saja dan melanjutkan nanti.Berikut adalah instruksi untuk masalah spesifik Anda:
SUNTING
Sekarang ada target baru yang ditambahkan: Anda dapat membuat Kartu SD fisik dari cadangan Anda dengan satu perintah:
Ikuti instruksi, buat SD Card Anda, boot RaspberryPi dengan SD Card yang baru dibuat ini.
sumber
Berikut ini adalah pendekatan berbeda yang lengkap. Anda dapat menggunakan LVM ( L ogical V olume M anager ) untuk membuat cadangan yang konsisten. Selain peningkatan lainnya seperti penambahan, perluasan, dan penyimpanan yang mudah atau mengembalikan sistem operasi ke status sebelumnya dari snapshot, Anda juga dapat membuat cadangan. Anda tidak perlu khawatir tentang file berubah dinamis selama cadangan, pengaturan sistem file hanya baca, mengecualikan direktori tertentu atau sesuatu yang lain. Dengan LVM Anda cukup membuat snapshot, pasang snapshot ini dan cadangkan dengan metode yang Anda inginkan. Anda dapat membuat salinan dengan
cp -a
, membuat cermin denganrsync
, membuat arsip dengan,tar
atau membuat gambar dengandd
. Dengan asumsi Anda telah memasang perangkat cadangan yang/mnt/usbhd/pi_backup/
dapat Anda lakukan misalnya:Hanya perlu sedikit usaha untuk mengatur LVM . Cara melakukannya, Anda dapat melihat Easy backups dan snapshots dari sistem yang sedang berjalan dengan LVM .
sumber
Saya telah menemukan alat cadangan yang membuat gambar dapat diinstal.
Ini juga memiliki utilitas untuk memasang dan mengecilkan gambar.
Ini mungkin bermanfaat bagi orang lain
Dokumentasi yang menyertainya sangat singkat sehingga saya perhatikan hal berikut: -
ext4
partisi yang diformat pada Pi Anda di/mnt
atau/media
(format apa pun yang memungkinkan file besar dan didukung oleh Pi misalnya exFAT atau drive jaringan dapat digunakan)./mnt/Image/BusterBackup.img
Saya telah sedikit memodifikasi dokumen asli (untuk menyalin mountpoints), untuk menghitung dengan benar ukuran dan ukuran partisi dan menambahkan beberapa komentar.
sumber
Buka terminal dan ketik 'lsblk -f'.
Ini harus menunjukkan semua perangkat penyimpanan yang terhubung.
Kemudian ketik 'dd if = / dev / [NAMA kartu sd Anda] bs = 1M'.
Ini akan memakan waktu cukup lama sehingga Anda mungkin ingin menjalankannya di latar belakang.
Ini adalah cara persis yang sama Anda membuat cadangan kartu sd Anda di Linux.
sumber