LATAR BELAKANG
Kartu SD telah dikonfigurasi untuk pi Raspberry. Tujuannya adalah untuk mereplikasi kartu SD dengan tepat (OS, aplikasi, data) sehingga replika akan berfungsi dalam rPi persis seperti kartu SD master asli.
PEMBARUAN:Asumsikan:
- replikasi akan dilakukan pada laptop yang dikonfigurasi dengan sistem operasi seperti
UNIX - replikasi tidak boleh dilakukan dari rPi
- kartu SD target sama merek/model
- kartu SD sumber dipartisi dengan sistem file yang berbeda:
Pertanyaan
Opsi kloning UNIX apa yang tersedia untuk laptop HP Ubuntu dengan slot kartu SD dan pembaca/penulis kartu SD USB.
Apakah ada bedanya jika RW kartu SD USB adalah pembaca atau penulis?
Tujuan (batasan) adalah untuk menghindari pembelian perangkat keras tambahan.
Pengamatan Solusi
date; sudo sh -c 'cat sdcard.image >/dev/mmcblk0'; date
Sen 3 Jun 17:53:18 EDT 2019
kata sandi [sudo] untuk pengguna:
Sen 3 Jun 23:42:17 EDT 2019
date; sudo sh -c 'pv sdcard.image >/dev/mmcblk0'; date
Sel 4 Jun 00:33:50 EDT 2019
kata sandi [sudo] untuk pengguna:
119GiB 6:06:12 [5,56MiB/s] [================================>] 100%
Sel 4 Jun 06:43:05 EDT 2019
Analisis gParted dari kartu SD yang di-flash menunjukkan partisi yang identik:
Jawaban yang Diterima:
Sistem Unix membuat perangkat penyimpanan tersedia melalui file perangkat. File perangkat berperilaku seperti file biasa dalam banyak hal. Khususnya, untuk membuat salinan persis perangkat penyimpanan, Anda cukup menyalin konten perangkat sumber ke perangkat target.
Pertama, Anda perlu menentukan file perangkat sumber dan file perangkat target. Nama tergantung pada varian Unix Anda dan cara konfigurasinya, tetapi dalam praktiknya, file perangkat selalu berada di bawah /dev
direktori. Jika Anda memasang kartu SD, Anda dapat menemukan file perangkat yang berisi
df /media/sdcard1/some/file/on/the/sdcard
File perangkat ada di kolom pertama. Alat lain dapat memberikan informasi yang sama, misalnya pesan log kernel saat Anda memasukkan kartu SD, atau lsblk
perintah di Linux.
Mungkin ada partisi pada kartu. Jika demikian, salin seluruh kartu, meskipun ada satu partisi, karena beberapa informasi waktu boot mungkin terletak di luar partisi. Misalnya, jika df
menunjukkan /dev/sdb1
di Linux, salin /dev/sdb
dan bukan hanya /dev/sdb1
.
Jika Anda mengeluarkan kartu SD dan memasukkannya kembali, biasanya akan ada nama file perangkat yang sama seperti sebelumnya, tetapi ini tidak dijamin.
Sebelum menyalin, pastikan bahwa:
- Perangkat sumber tidak dipasang atau hanya dipasang hanya-baca.
- Perangkat target tidak terpasang sama sekali.
- Perangkat target setidaknya sebesar sumbernya. Di Linux,
lsblk
menampilkan ukuran perangkat. - Anda memiliki perangkat target yang benar. Perhatikan bahwa perintah di bawah ini akan menimpa isinya tanpa meminta konfirmasi!
Misalkan Anda telah mengidentifikasi bahwa perangkat sumbernya adalah /dev/sdb
dan perangkat targetnya adalah /dev/sdc
. Untuk menyalin konten, jalankan perintah berikut sebagai root:
cat /dev/sdb >/dev/sdc
Jika Anda menggunakan sudo, pengalihan >
perlu terjadi sebagai root, jadi Anda perlu menulis sesuatu seperti
sudo sh -c 'cat /dev/sdb >/dev/sdc'
Atau, untuk memastikan Anda tidak menimpa perangkat yang salah secara tidak sengaja, Anda dapat melanjutkan dalam dua langkah:
- Berikan kepada pengguna (
gatorback
dalam contoh saya) izin untuk membaca dari perangkat sumber (dev/sdb
dalam contoh saya) dan untuk menulis ke perangkat sumber (/dev/sdc
dalam contoh saya).sudo setfacl -m user:gatorback:r /dev/sdb sudo setfacl -m user:gatorback:w /dev/sdc
- Lakukan penyalinan tanpa sudo.
cat /dev/sdb >/dev/sdc
Anda dapat menyalin gambar disk ke file, lalu menyalin file gambar ke perangkat target. Ini berguna jika Anda perlu membuat banyak salinan, atau jika Anda hanya memiliki satu pembaca kartu SD, atau untuk mengurangi risiko penyalinan ke arah yang salah.
sudo cat /dev/sdb >sdcard.image
- Keluarkan kartu sumber dan masukkan kartu target.
- Secara opsional, verifikasi konten dengan memasang gambar, mis.
sudo mount -o loop -r sdcard.image /mnt
. sudo sh -c 'cat sdcard.image >/dev/sdb'
Jika Anda ingin melihat informasi kemajuan dengan mudah, gunakan pv
bukannya cat
(pv
jarang diinstal secara default, tetapi tersedia sebagai paket di sebagian besar distribusi).