Anda menyebutkan dalam komentar kepada RooTer bahwa A) Anda telah mengurangi ukuran partisi awal gparted
, tetapi dd
masih menyalin seluruh kartu, dan B) yang ingin Anda sertakan kedua partisi dalam gambar.
Masalah "A" mudah dijelaskan: Anda masih menyalin seluruh kartu karena itu yang /dev/mmcblk0
dimaksud. Partisi individual tentu saja /dev/mmcblk0p1
dan /dev/mmcblk0p2
. Ini adalah komplikasi dalam masalah "B", tetapi Anda tidak bisa hanya dd
setiap partisi dan menggabungkan dua file bersama-sama, karena tabel partisi di awal /dev/mmcblk0
yang mengindeks awal dan panjang masing-masing partisi. Tanpa itu, gambar tidak akan dapat digunakan.
Namun, Anda bisa mendapatkan panjang masing-masing partisi fdisk -l
, dan menggunakannya untuk menentukan beberapa parameter dd
. Sebagai contoh:
> fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 16.1 GB, 16138633216 bytes
4 heads, 16 sectors/track, 492512 cylinders, total 31520768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/mmcblk0p2 122880 26746879 13312000 83 Linux
Unit "Start" dan "End" adalah sektor, dan perhatikan ukuran sektor diberikan, 512 byte. Untuk /dev/mmcblk0p2
, 26746879 (sektor terakhir) - 122880 (sektor pertama) = 26623999/2 (untuk 2 sektor per kB) / 1024 (kB per MB) / 1024 (MB per GB) = 12,69, yang saya tumbuhkan partisi menggunakan gparted hingga 12 GB, jadi ini terlihat benar (sebenarnya saya harus menggunakan 1000 dan bukan 1024 sebagai pembagi dengan penyimpanan, yang berfungsi hingga 13,31 GB, tapi saya curiga gparted dan beberapa alat lain juga menggunakan 1024).
Jadi hal pertama yang ingin Anda periksa adalah bahwa partisi kedua Anda benar-benar ukuran yang lebih kecil dari yang Anda atur. Selanjutnya, cukup gunakan angka-angka itu dengan dd
; bagi saya itu akan:
dd if=/dev/mmcblk0 of=rpi.img bs=512 count=26746880
Saya memiliki sektor tambahan di sana untuk menghindari segala jenis gangguan karena salah paham tentang cara dd
kerjanya. Ada cara sederhana untuk memeriksa apakah ini berhasil:
> fdisk -l rpi.img
Disk rpi.img: 102 MB, 102400000 bytes
255 heads, 63 sectors/track, 12 cylinders, total 200000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00017b69
Device Boot Start End Blocks Id System
rpi.img1 8192 122879 57344 c W95 FAT32 (LBA)
rpi.img2 122880 26746879 13312000 83 Linux
Perhatikan ada sedikit perbedaan di sini: sektor "Mulai" dan "Akhir" cocok dengan tabel partisi asli, tetapi ukuran total dalam statistik di atas hanya 102 MB! Ini karena saya benar-benar digunakan count=200000
sebagai param dd
karena saya tidak benar-benar ingin repot dengan salinan 12 GB (perhatikan juga "total sektor 2.000.000"). Alasan tabel di bagian bawah tidak mencerminkan hal ini adalah karena fdisk mendapatkan informasinya dari data partisi yang disalin kata demi kata di awal gambar dari awal kartu SD, yang, seperti yang saya sebutkan pada paragraf kedua, sangat penting untuk mempertahankan. Jika saya (benar) menyalin sisanya, angka-angka akan menjadi copacetic dan gambar akan layak.
Cobalah. :)