GNU/Linux >> Belajar Linux >  >> Linux

Mereplikasi Kartu Sd?

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!
Terkait:Apa artinya menjadi "sh kompatibel"?

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:

  1. 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
    
  2. 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.

  1. sudo cat /dev/sdb >sdcard.image
  2. Keluarkan kartu sumber dan masukkan kartu target.
  3. Secara opsional, verifikasi konten dengan memasang gambar, mis. sudo mount -o loop -r sdcard.image /mnt .
  4. 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).


Linux
  1. Utilitas Bluetooth tingkat rendah?

  2. Cara membuat perangkat blok virtual (perangkat loop/sistem file) di Linux

  3. uflash:perintah tidak ditemukan

  1. Nomor perangkat dalam keluaran perintah stat

  2. Tidak ada ruang tersisa di perangkat

  3. Gunakan perangkat melalui SSH?

  1. Cara menginstal driver perangkat di Linux

  2. Linux – Sysfs dan Devtmpfs?

  3. Bagaimana cara membuat perangkat kartu suara dummy di server Linux?