Saya sudah mencoba membuat gambar Raspbian baru dengan kernel yang berbeda (dengan dukungan CAN) dan dengan Python 3.3 diinstal. Daripada melakukan semua ini pada Raspberry Pi, saya pikir akan menarik untuk melakukannya di komputer sebagai gantinya (mengikuti instruksi ini ). Namun, begitu saya sudah memasang gambar dan siap untuk pergi, saya dengan cepat kehabisan ruang disk. Saya kira ini adalah karena gambar berukuran hanya cukup besar dengan harapan bahwa pengguna akan mengubah ukuran sistem file setelah itu telah ditulis ke kartu SD.
Apakah mungkin untuk mengubah ukuran gambar dan sistem file sebelum menulisnya ke kartu SD sehingga saya dapat melakukan lebih banyak penyesuaian tanpa kehabisan ruang?
Jawaban:
Ini adalah cara mengubah ukuran file gambar mentah. Saya tahu itu terdengar sangat sederhana, tetapi itu akan berhasil.
Buat gambar kosong, dari ukuran yang Anda ingin memperluas aslinya (dalam contoh saya, saya menggunakan 5GB);
Tambahkan ini ke gambar asli:
Ubah ukuran sistem file yang hidup di akhir disk (biasanya ini yang Anda inginkan lebih besar):
Selesai! Disk Anda sekarang harus lebih besar 5GB!
sumber
fdisk -l file.img
(itu 122880) dan kemudianlosetup --offset $((122880 * 512)) /dev/loop0 file.img
. Saya kemudian bisa menggunakanresize2fs
pada/dev/loop0
dan merapikan denganlosetup -d /dev/loop0
. Jika Anda memperbarui jawaban Anda untuk memasukkan ini, saya akan menandainya sebagai jawaban yang diterima. Terima kasih telah menunjukkan saya ke arah yang benar.resize2fs
pada/dev/loop0
tetapi mendapat saya mendapatkan kernel panik saat boot mengatakan ukuran superblok dan ukuran partisi tidak cocok:The filesystem size (according to the superblock) is 483840 blocks The physical size of the device is 458240 blocks
Memiliki Anda menemukan sesuatu seperti ini?Ini adalah sintesis dari jawaban di atas dan di tempat lain yang berfungsi untuk saya - buat cadangan gambar Anda jika Anda melakukan kesalahan:
Pertama-tama buat file gambar lebih besar (di sini kami menambahkan 1GB sampai akhir):
Selanjutnya memetakan seluruh gambar sebagai perangkat loop sehingga kita dapat menyodok di tabel partisi
Untuk referensi di masa mendatang mari kita buang:
Outputnya seperti:
Sekarang kita akan membuat ulang partisi terakhir dengan menghapusnya, lalu membuatnya kembali di lokasi awal yang sama, jenis yang sama tetapi lokasi akhir yang berbeda. Jadi catat kolom "Start" untuk loop0p2 (partisi 2 - partisi Linux) - kita akan menggunakannya nanti - 122880 di sini.
Masukkan yang berikut ini - mereka aman untuk masuk - tidak ada yang permanen terjadi sampai Anda telah membaca penjelasan saya yang berikut:
p
d
2
n
p
2
122880
p
Langkah 1 - cetak tabel saat ini. Langkah 2-3 - hapus partisi 2, Langkah 4-8 - buat ulang partisi 2 dengan titik akhir baru (standarnya adalah akhir gambar), Langkah 9 - cetak tabel baru.
Dengan asumsi tabel Anda yang baru dicetak identik dengan tabel asli kecuali untuk nilai Akhir dan nilai Blok (yaitu ukurannya telah berubah) Anda siap untuk melakukan.
Masukkan
w
untuk melakukan perubahan Anda, lalu masukkanq
untuk keluar.Anda dapat menghapus perangkat loopback itu, kami akan membuat yang lain untuk partisi kedua. Ingat offset awal yang Anda catat dan gunakan di atas - kami akan menggunakannya lagi:
Itu akan membuat pemetaan baru pada
/dev/loop0
menunjuk hanya pada partisi 2 - untuk referensi 512 adalah ukuran sektor yang dapat Anda lihat difdisk
output pertama .Sekarang ubah ukuran partisi untuk mengisi ruang yang tersedia:
Selesai - sekarang bersihkan:
sumber
Bagi yang menjalankan Oracle VM VirtualBox itu cukup mudah.
Pada mesin Windows, semuanya berjalan sebagai berikut:
input.img
di sini gambar yang ukurannya harus dikurangi danoutput.img
merupakan gambar akhir - dalam contoh ini didefinisikan sebagai 7000 MB besar.Semoga ini bisa membantu sedikit.
sumber
Kernel panic - not syncing: VFS: Unable to mount rootfs on unknown-block(179,2)
Ini adalah cara mengubah ukuran file gambar mentah. Saya tahu itu terdengar sangat sederhana, tetapi itu akan berhasil.
Buat gambar kosong, dari ukuran yang Anda ingin memperluas aslinya (dalam contoh saya, saya menggunakan 5GB);
Tambahkan ini ke gambar asli:
Selanjutnya adalah mengubah ukuran partisi dan sistem file. Pertama, dapatkan offset partisi;
Hasil dalam tabel seperti ini:
Perhatikan offset mulai dari partisi kedua
Terakhir unmount / dev / loop
Selesai! Disk Anda sekarang harus lebih besar 5GB!
sumber