Saya telah menulis program untuk Raspberry Pi (menjalankan Raspbian) saya selama beberapa minggu sekarang dan ingin memastikan saya melindungi pekerjaan yang telah saya lakukan.
Bagaimana saya bisa membuat cadangan file yang saya buat?
Bisakah saya mencolokkan kartu SD ke PC Windows (XP atau 7) saya dan menyalinnya ke hard drive atau kartu SD lain?
git
atauhg
, dengan cara itu Anda tidak hanya memiliki salinan kode Anda di banyak tempat, tetapi juga memiliki riwayat lengkap tentang bagaimana kode itu telah berubah.Jawaban:
Jika Anda ingin menyimpan semua data, Anda mungkin harus membuat image disk. Selain itu, Windows tidak dapat mengenali sistem file Linux biasa, jadi Anda mungkin bahkan tidak akan dapat melihat file Anda, ketika Anda mencolokkan kartu SD Anda.
Membuat image disk tidak hanya akan melindungi file tetapi juga struktur sistem file dan ketika Anda memutuskan untuk mem-flash kartu SD baru Anda, Anda akan bisa cukup mencolokkannya dan itu akan berfungsi.
Linux
Di Linux, Anda dapat menggunakan
dd
alat standar :Di mana
/dev/sdx
kartu SD Anda.Mac
Di Mac, Anda juga dapat menggunakan
dd
alat standar dengan sintaks yang sedikit berbeda:Di mana
/dev/rdiskx
kartu SD Anda.(Menggunakan rdisk lebih disukai karena merupakan perangkat mentah - lebih cepat)
Untuk mengetahui disk mana yang perangkat Anda ketikkan
diskutil list
pada prompt perintah - juga, Anda mungkin harus root; untuk melakukan jenis inisudo -s
dan masukkan kata sandi Anda saat diminta.Windows
Pilihan 1
Di Windows, Anda dapat menggunakan proses sebaliknya yang digunakan saat memasang kartu SD.
Anda dapat menggunakan Win32 Disk Imager , yang merupakan alat yang lebih disukai untuk memasang kartu SD Foundation. Cukup masukkan nama file (lokasi dan nama file gambar cadangan yang akan disimpan), pilih perangkat (kartu SD) dan tekan baca:
Tentu saja, Anda juga dapat menggunakan RawWrite ,
dd
untuk Windows atau alat serupa, prosesnya sangat mirip.pilihan 2
Jika Anda tidak ingin mencadangkan seluruh sistem Anda, tetapi hanya file tertentu, saya sarankan Anda terhubung ke Raspberry Pi Anda melalui SFTP dan menyalin file ke komputer lokal Anda (Anda dapat menggunakan klien WinScp ). Jika SSH diaktifkan, SFTP biasanya tidak memerlukan konfigurasi khusus di sisi Raspberry Pi.
Pilihan lain adalah menyalin file ke sistem jarak jauh menggunakan rsync .
Anda juga dapat menginstal driver khusus sehingga Windows Anda dapat membaca
ext
sistem file (dan karenanya akan dapat membaca seluruh kartu SD), sepertiext2fsd
tetapi mungkin tidak sepadan dengan usaha.Karena gambar akan memiliki ukuran yang sama dengan kartu SD Anda, Anda mungkin ingin mengompresnya. Ini dapat dicapai hanya dengan menggunakan alat kompresi favorit Anda, seperti
gzip
, 7zip, WinZip, WinRar ...sumber
rsync
viassh
mungkin akan lebih mudah. Juga, untuk kode sumber - seperti yang sudah dinyatakan oleh Mark Booth - Anda harus benar-benar menggunakan DVCSJika Anda menjalankan Linux maka Anda dapat menggunakan
dd
perintah untuk membuat cadangan penuh gambar:atau untuk kompresi:
Di mana
sdx
kartu SD Anda.Untuk memulihkan cadangan, Anda membalikkan perintah:
atau ketika dikompresi:
sumber
:)
)bs=1M
atau beberapa parameter serupa keluar. Ukuran blok default 512 byte akan mematikan kinerja salin.Selain cadangan tingkat blok tersebut, ada dua pendekatan umum untuk menangani sumber: mengarsipkannya terus menerus (1), atau menggunakan sistem kontrol revisi (2).
Kita akan menggunakan command-line (terminal lokal atau koneksi SSH ke mesin Raspberry Pi), kan?
1. Arsip
2. RCS (Git misalnya)
sumber
Di Mac Anda tidak ingin menggunakan
/dev/diskn
. Anda sebaiknya menggunakan/dev/rdiskn
, di mana n adalah angka yang digunakan OS untuk mengidentifikasi kartu SD Anda. Ini mengurangi waktu yang dibutuhkan untuk menyalin dengan jumlah besar.Jadi untuk proses pencadangan optimal pada Mac, saya akan merekomendasikan melakukan hal berikut:
Jalankan
diskutil list
, dan temukan disk yang sesuai dengan kartu SD Raspberry Pi Anda:Jelas
/dev/disk1
kartu SD 8GB saya, nama partisi Linux juga sedikit petunjuk.Namun, alih-alih menggunakan
/dev/disk1
dengandd
, Anda harus menggunakan/dev/rdisk1
, seperti:Dan untuk mengembalikannya, cukup tukar
if
(file input), danof
(file output) parameter:Atau, dengan
gzip
, untuk menghemat sejumlah besar ruang:Dan, untuk menyalin gambar kembali ke SD:
Untuk informasi lebih lanjut, lihat halaman wiki ini .
sumber
Anda dapat menjalankan perintah ini dari PC Linux Anda dengan banyak ruang:
Sebagai prasyarat Anda harus membuat kunci .ssh dan menyalin
id_XXX.pub
ke/root/.ssh/authorized_keys
.Mungkin ada masalah dengan sistem file karena itu adalah cadangan langsung, tetapi jika Raspberry Pi Anda tidak terlalu sibuk, biasanya akan baik-baik saja.
Mungkin lebih cepat melakukan kompresi pada PC seperti ini:
sumber
ssh root@raspberry dd if=/dev/mmcblk0 bs=1M | pv | gzip -c > img.gz
Jika Anda menggunakan Windows:
Unduh Win32 Disk Imager.
Buat jalur file yang ingin Anda gunakan untuk menyimpan gambar Anda. (Saya menggunakan C: \ RasPi_Bkp)
Jalankan Win32 Disk Imager
Telusuri ke tempat jalur file cadangan Anda, dan ketikkan nama file.
Klik simpan
Pastikan perangkat yang ditampilkan di tarik turun di sebelah kanan jalur file Anda adalah yang ingin Anda buat cadangannya.
Klik "Baca"
Tunggu.
sumber
Jika semua program Anda ada di pi userid, sebenarnya tidak ada alasan untuk membuat cadangan seluruh sistem file, seperti yang disarankan. apa yang saya lakukan adalah hanya membuat cadangan id tunggal. Saya menjalankan perintah:
dari direktori home pi, yang membuat file pi.tgz, yang berisi semua file dan direktori yang ada di sana (tidak termasuk file tersembunyi). Saya kemudian scp file ini ke komputer linux lain, tetapi Anda bisa ftp atau mengirim email ke suatu tempat untuk menjaga ... apa pun yang membawanya ke komputer lain.
Ini membuat file yang jauh lebih kecil untuk cadangan Anda.
Khawatir tentang semua paket tambahan yang telah Anda instal di sepanjang jalan? Buat skrip yang akan melakukan pemasangan itu lagi untuk Anda jika Anda perlu membuat kembali kartu SD Anda, dan simpan di direktori home pi di suatu tempat. (Saya memiliki direktori ~ / bin untuk hal-hal seperti itu). Minta semua perintah yang Anda perlukan untuk menginstal agar Anda kembali ke posisi yang Anda inginkan. Ini mendokumentasikan perubahan Anda, dan memungkinkan Anda untuk dengan cepat membangun kartu SD baru. Itu akan berisi perintah dalam bentuk:
Mulailah dengan
sehingga sistem Anda juga dibawa ke level saat ini sebelum Anda mulai menambahkan paket Anda.
Karena ini akan ada di file pi.tgz Anda, Anda akan memilikinya ketika Anda membutuhkannya.
sumber
Saya menjalankan Raspbian dan menggunakan dd dan cron untuk melakukan backup otomatis kartu SD saya ke drive USB eksternal saya.
Ini adalah solusi yang sangat sederhana. Ini berjalan seminggu sekali pada jam 2 pagi pada hari Senin pagi dan membuat gambar kartu SD.
Saya menulis sebuah skrip yang mematikan layanan seperti lighttpd dan cron, untuk meminimalkan risiko kartu SD ditulis di tengah cadangan, kemudian memanggil dd, sebelum memulai ke layanan lagi ketika cadangan telah selesai.
Saya telah meletakkan skrip dan beberapa instruksi di blog saya, http://www.stuffaboutcode.com/2012/08/raspberry-pi-auto-backups.html
sumber
dd
ing sebuahsd?
perangkat dengan partisi yang terpasang tidak terdengar cukup aman.Untuk Debian Anda bisa menggunakan dd dan tar. Ini akan membuat salinan lengkap dari kartu SD Anda dan akan membutuhkan penyimpanan eksternal (ke kartu SD), mungkin dipasang USB atau drive jaringan.
Dengan / dev / sdd menjadi lokasi kartu SD Anda, dan
of
menjadi nama file output.sumber
.tar.gz
file dari file dd? Bukankah lebih baik hanya menjalankangzip
ataubzip2
pada file dd secara langsung?/dev/mmcblk0p1
dan/dev/mmcblk0p2
terdaftar ...Untungnya Raspberry Pi dapat membuat cadangan sendiri yang tidak tergantung pada OS utama yang digunakan untuk mengakses Raspberry (Windows, Linux, Mac). dd, tar dan rsync adalah alat yang berbeda untuk membuat cadangan di Linux. Semua jenis cadangan ini dapat dibuat oleh Pi berjalan asalkan menghentikan semua tugas sibuk seperti mysql, smb, dlna, owncloud, seafile, apache et al sebelum membuat cadangan. Ada pertanyaan berbeda di mana pendekatan tersebut dijelaskan secara lebih rinci dan solusi yang mungkin dijelaskan di sini
sumber
Jika Raspberry Pi Anda terhubung ke jaringan dan Anda ingin backup otomatis saat terbang, mungkin cara termudah adalah Bittorent Sync - sangat mudah menginstal dan menjalankan dengan lancar dan stabil pada Pi dan banyak platform lainnya.
sumber
Tidak ada lagi menakutkan, sinkronisasi, tar, ..., SD Card Copier yang ramah bagi pemula
Versi baru Raspbian yang disebut stretch memiliki aplikasi ramah yang sangat pemula yang disebut SD Card Copier. Anda tidak perlu menggunakan alat Linux seperti dd dll. Ia bahkan dapat menyalin kartu besar ke kartu kecil.
Bagaimana cara melakukannya
Anda mulai dengan ikon menu aplikasi GUI RPi di sudut kiri paling atas, buka Aksesoris, lalu klik SD Card Copier.
Yang perlu Anda lakukan adalah beberapa klik di dalam GUI!
Setelah membuat kartu SD cadangan, Anda dapat menggunakan Windows Disk Manager untuk membaca gambar kartu ke file Windows dan menyimpannya di direktori Windows mana pun. Dengan cara ini Anda hanya memerlukan kartu SD fisik dan menyimpan banyak versi gambar di PC Windows.
Tentu saja Anda bisa menggunakan kartu cadangan sebagai copy pekerjaan, untuk mengganti kartu asli Anda, yang sekarang menjadi kartu master Anda, dan menguncinya di tempat yang aman.
sumber
Saat mencari untuk membuat gambar kartu SD khusus saya, saya menemukan posting ini. Jawaban terbaik di sini membahas pencitraan kartu SD, tetapi apa yang saya cari diperlukan menyusutkan sistem file untuk membuat gambar sekecil mungkin. Saya akhirnya membuat alat sendiri untuk melakukan ini dan menguraikan prosesnya di: https://raspberrypi.stackexchange.com/a/37899/32585
sumber
Berikut 3 opsi:
Dalam versi terbaru Raspbian, ada alat yang mengubah OS dan file Anda menjadi file .img yang kemudian dapat Anda tempatkan ke USB, atau PC Anda.
Pasang kartu SD Anda ke PC Windows, dan mulai Win32 Disk Imager (instal di sini jika Anda belum melakukannya.)
Pada (1) ketikkan nama file & lokasi untuk file gambar. Dalam (2), pilih huruf drive kartu SD Anda. Kemudian tekan 3. Ini melakukan hal yang sama dengan opsi 1.
Sambungkan stik USB ke Pi Anda, dan salin semua file penting.
sumber
Aplikasi android ini akan membaca kartu SD menjadi file .img, dan mengepresnya secara bersamaan: https://play.google.com/store/apps/details?id=com.redrobe.raspicardimager
sumber
Saya membuat sebuah utilitas untuk membuat cadangan raspberry pi Anda jika Anda Linux. Ini juga akan mengecilkan gambar pi raspberry Anda, sehingga Anda dapat menempatkan .iso pada kartu SD yang lebih kecil: RaspberryPiShrink
Ini akan menjalankan skrip python yang akan memandu Anda melalui proses. Cukup colokkan kartu microSD Anda ke komputer Ubuntu, Linux Mint atau Debain Anda, dan ikuti instruksi di terminal.
sumber
Saya telah menggunakan usbit untuk Windows. Ini satu-satunya alat yang dapat saya temukan yang memungkinkan Anda bertukar dari kartu SD yang lebih besar ke kartu yang lebih kecil. Yang saya lakukan adalah mencentang berikut di halaman opsi; Abaikan pengecekan ukuran dan Pangkas gambar besar .
Ini memungkinkan saya untuk menukar gambar OpenELEC dan Xbian saya dari kartu SD kelas 16 GB ke kartu kelas 10 GB 8 GB.
Jauh lebih mudah daripada mengubah ukuran tabel partisi, dll.
sumber
find -type f -exec md5sum {} \; > filelist.txt
?