Saya memiliki kartu SD 16GB yang memiliki beberapa partisi (sebenarnya kartu untuk Raspberry Pi). Saya memiliki beberapa kartu 4GB lain yang ingin saya tiru dari kartu utama. 3 partisi pada kartu utama adalah:
- Partisi boot yang serak, FAT, 60MB
- Partisi Linux, ext2, 1GB
- Tambahan partisi "penyimpanan", FAT, 1GB
Jika saya gunakan dd
untuk membuat gambar kartu melalui:
dd if=/dev/sdb of=~/sd-card.bin
maka .bin yang dihasilkan berukuran 16GB. Apakah ada cara yang digunakan dd
untuk menyalin hanya apa yang sebenarnya digunakan, yaitu <4GB sehingga saya dapat kemudian dd
ini ke kartu 4GB baru? Atau ada solusi yang lebih baik yang harus saya gunakan?
sd-card
raspberry-pi
dd
Charlie Schliesser
sumber
sumber
dd
ke sejumlah kartu lainnya. Tetap ingin tahu apakah mungkin untuk menyelesaikan masalah awal.Jawaban:
Saya menganggap Anda menggunakan PC linux atau komputer mac untuk melakukan salinan, bukan pi raspberry itu sendiri. Anda mungkin perlu menambahkan ukuran blok.
Saya telah melihat satu dan empat MB yang digunakan untuk disk pi Raspberry dengan menentukan bs = 1M atau bs = 4M. Saya pikir ukuran blok lebih penting ketika menulis disk karena transfer besar lebih cepat daripada yang lebih kecil. Ini tidak mengatur ukuran blok untuk disk, itu hanya mempengaruhi ukuran transfer yang digunakan. Salah satu alasan untuk menetapkan ukuran blok besar adalah kebutuhan untuk menghapus flash sebelum menulisnya. Ini dilakukan secara otomatis tetapi lebih cepat untuk transfer yang lebih besar dari ukuran hapus minimal.
Anda dapat membatasi jumlah total data yang disalin oleh dd menggunakan "count". "count" dalam satuan blok. Jika akhir partisi terakhir pada disk sumber adalah sebelum ukuran tujuan Anda dapat melakukan apa yang Anda inginkan.
Sesuatu seperti
dd if=/dev/sdb of=~/sd-card.bin bs=1M count=4000
akan membuat gambar dengan ukuran 4000MB.Lihat http://en.wikipedia.org/wiki/Dd_(Unix) dan http://elinux.org/RPi_Easy_SD_Card_Setup untuk informasi lebih lanjut. Tidak yakin bagaimana menemukan akhir dari partisi terakhir atau ukuran total kartu. Namun jika Anda telah memformat disk Anda mungkin akan tahu bagaimana melakukan ini.
sumber
Memperluas jawaban William , orang dapat menghitung akhir partisi terakhir menggunakan
fdisk
dan kalkulator:Total ruang yang digunakan dalam byte = sektor akhir dari ukuran sektor X partisi terakhir (di sini adalah 3667967 x 512).
Total ruang yang digunakan dalam GB = total ruang yang digunakan dalam byte / 1024 3 (di sini 1,749023 GB).
Biasanya, tidak penting untuk membuat gambar yang dikupas sampai ke bit data terakhir yang berguna sehingga dalam contoh di atas saya akan membuat gambar 2 GB menggunakan metode yang dijelaskan oleh William dalam jawaban sebelumnya yang sama :
Termasuk di akhir gambar akan menjadi bagian kecil dari guff berguna setelah data berguna terakhir Anda tetapi pada prinsipnya tidak berbeda dengan guff berguna yang akan ditimpa ketika Anda menulis gambar kembali ke media Anda.
Metode ini telah bekerja untuk saya pada selusin klon. Jika ada kesalahan fatal dalam metode ini, mereka belum muncul ke permukaan.
sumber