Gambar sistem file normal dapat dengan mudah dipasang:
mount system.img /mnt
Diperiksa, dan dimodifikasi. Tetapi ketika saya mencoba ini dengan gambar sistem Raspberry Pi (misalnya raspbian), saya mendapatkan:
mount: unknown filesystem type '(null)'
Dan apa pun yang saya coba -t
, itu tidak akan berhasil. Bagaimana saya bisa memasang gambar ini?
Jawaban:
Pertanyaan ini dijawab sebagai bagian dari jawaban untuk pertanyaan-pertanyaan lain, tetapi pantas mendapatkan perawatan kanonik di sini sehingga tidak harus terus diulang.
Anda tidak dapat memasang gambar secara keseluruhan karena sebenarnya mengandung dua partisi dan sektor boot. Namun, Anda dapat me-mount masing-masing partisi dalam gambar jika Anda tahu offsetnya di dalam file. Untuk menemukan mereka, periksa gambar sebagai perangkat blok dengan
fdisk -l whatever.img
. Output harus mencakup tabel seperti ini:Ini adalah dua partisi. Yang pertama diberi label "FAT32", dan yang lainnya "Linux". Di atas tabel ini, ada beberapa informasi lain tentang perangkat secara keseluruhan, termasuk:
Kita dapat menemukan offset dalam byte dengan mengalikan ukuran unit ini dengan
Start
blok partisi:Ini dapat digunakan dengan
offset
opsimount
perintah. Kami juga memiliki petunjuk tentang jenis setiap partisi darifdisk
. Jadi, anggap kita memiliki direktori/mnt/img/one
dan/mnt/img/two
tersedia sebagai mount point:Jika Anda mendapatkan kesalahan "tumpang tindih loop" di sini, versi
mount
Anda mengharuskan Anda untuk menentukan ukuran serta offset dari partisi pertama. Lepas itu, dan gunakan jumlah blok (57344) * 512 (= 29360128):Partisi kedua tidak perlu sizelimit karena tidak ada apa-apa setelah itu di gambar.
Anda sekarang dapat mengakses dua partisi. Jika Anda tidak bermaksud mengubah apa pun di dalamnya, gunakan
-r
sakelar (hanya baca) juga. Jika Anda mengubah apa pun, perubahan itu akan disertakan dalam.img
file.Perhatikan bahwa partisi pertama mungkin dipasang di
/boot
dalam partisi kedua ketika sistem sedang berjalan.sumber
kpartx -a whatever.img
membuat simpul (loop) yang sesuai, yang nantinya bisa Anda pasang sesuka hati. Jalankankpartx -d whatever.img
untuk menghapus simpul loop (tidak terpasang).sizelimit
opsi. Untuk info lebih lanjut: unix.stackexchange.com/a/342466/9689 . (Btw. Jawaban di atas dapat diperbarui untuk memberikan contoh penggunaan opsi itu)$((8192*512))
.losetup
menyediakan partisi yang menyelidikinya-P
. Menggunakan ini membuat pemasangan partisi dari gambar disk penuh seperti gambar kartu SD Raspbian sangat mudah:sumber
Pada awalnya saya menggunakan awk / grep untuk mem-parsing fdisk dan mengeluarkan offset, tetapi ternyata itu bisa sedikit rumit, flakey, dan sulit dimengerti nanti. Metode termudah yang saya temukan:
Hal ini menciptakan suhu-dir untuk Anda, auto-menugaskan loop-perangkat berikutnya dan set itu untuk Anda sebagai
p1
danp2
partisi perangkat, dan gunung boot dan root.Anda juga dapat menempatkan bagian pembersihan di jebakan keluar, jadi jika sesuatu gagal Anda tidak akan menggantung mount / file:
sumber
Dalam kasus fdisk -l muncul dengan sektor bukan blok di Arch linux ... Cara lain untuk menemukan jumlah blok dalam kasus "kesalahan loop tumpang tindih" adalah dengan mengurangi offset dalam byte dari partisi pertama dari partisi kedua dari partisi kedua dan bagi dua. Misalnya (62914560-4194304) / 2 = 29360128
sumber