Saya memiliki satu pi diatur dan berjalan baik untuk sementara waktu (RPi - 1). Saya ingin membuat gambar RPi - 1 sehingga saya dapat memuat salinan persis ke pi 2 saya (RPi - 2). Kartu SD dalam RPi - 1 adalah 4GB (hanya sekitar setengah yang digunakan) dan kartu SD dalam RPi - 2 juga 4GB. Saya menggunakan Win32 Disk Imager untuk berhasil membuat salinan RPi - 1. Saya kemudian memformat kartu SD untuk RPi - 2 dengan SD Formatter 4.0 (pada Windows 7). Namun, ketika saya menggunakan Win32 Disk Imager untuk menulis RPi - 1 gambar ke RPi - 2's SD card saya mendapatkan: "Tidak cukup ruang pada disk: Ukuran 7744512 Tersedia: 7626752 sektor Ukuran sektor: 512"
Saya tahu ini bukan gambar yang buruk karena saya dapat memformat kartu SD untuk RPi - 1 dan menulis gambar kembali ke sana tanpa masalah.
Apa yang kulewatkan di sini? Tidak semua kartu SD 4GB memiliki ukuran yang sama atau sedikit berbeda? Apakah ada sesuatu yang perlu Anda lakukan untuk kartu SD baru yang saya lewatkan?
(RPi - 1 Kartu SD = Sandisk 4GB // RPi - 2 Kartu SD = Kingston 4GB)
Jawaban:
Memang tidak semua kartu SD memiliki ukuran persis sama. Anda harus mengecilkan partisi agar pas di SD yang lebih kecil. Saya sendiri punya masalah serupa. Apa yang saya lakukan adalah memiliki SD terpisah dengan (dalam kasus saya) Raspbian. Dan saya mencolokkan di SD saya saya ingin mengubah ukuran, menggunakan pembaca kartu USB.
Sebelum Anda dapat dengan mudah menyusutkan partisi Anda, Anda perlu memastikan tidak ada data yang ada di akhir Anda menghapus. Anda dapat melakukannya dengan
resize2fs -M -p /dev/sda2
(Anda harus mengganti / dev / sda2 dengan jalur yang benar ke pembaca kartu USB dan partisi linux yang ingin Anda ubah ukurannya). Ini akan mengubah ukuran sistem file ke ukuran sekecil mungkin. Anda sebenarnya dapat menentukan ukuran persis yang Anda inginkan, tetapi itu melibatkan beberapa matematika dan mengubah ukuran menjadi blocksize dan sektor dan apa yang tidak. Lebih aman dan lebih mudah untuk tidak melakukan ini.Setelah itu kamu bisa mengecilkan partion. Saya pikir saya digunakan
fdisk
untuk ini. Dapatkan posisi awal yang tepat dari partion, hapus dan buat ulang menggunakan posisi awal yang sama, tetapi dengan ukuran yang lebih kecil.Terakhir Anda perlu memperbesar sistem file lagi untuk menempati seluruh partisi menggunakan
resize2fs -p /dev/sda2
sumber
e2fsck -f /dev/mmcblk0p2
(saya menyusutkan partisi kedua mmcblk0) untuk memeriksa konsistensi. Kemudian saya diizinkan untuk berlariresize2fs -M -p /dev/mmcblk0p2
seperti yang disarankan.Saya tahu ini adalah artikel lama, namun, saya hanya memiliki masalah yang sama dan menyelesaikannya menggunakan metode yang dijelaskan di sini http://www.aoakley.com/articles/2015-10-09-resizing-sd-images.php
sumber
Anda akan lebih baik membuat tarball dari sistem file, karena ketika Anda membuat gambar disk penuh, Anda juga menyalin data yang dihapus. Ketika Anda menghapus file, inode tidak terhubung tetapi data aktual masih pada disk. Disk image penuh menggunakan
dd
akan menyalin data lama itu (kecuali jika Anda pertama kali menimpanya/dev/zero
, yang membutuhkan waktu) tetapi menggunakan cadangantar
hanya akan menyalin data saat ini.Atau ... Anda bisa melakukannya seperti banyak distribusi: kurangi ukuran sistem file Anda menjadi sesuatu yang aman seperti 1,9 GiB sebelum Anda membuat gambar, dan ubah ukuran untuk mengisi disk setelah Anda memulihkan cadangan.
Peringatan: Saya tidak terbiasa dengan alat pencitraan Windows, saya adalah pengguna Linux.
sumber
jika Anda menggunakan linux, berikut ini sedikit skrip:
credit: Sirlagz (soooo sorry!)
sumber
echo "$partinfo" | grep $fileSystemType | awk -F: ' { print substr($2,0,length($2) - 1) } '
" untuk menghilangkan B di partstart.