現在のユーザー ディレクトリに操作への読み取りおよび書き込みアクセス権があることを確認する必要があります
sudo mkdir -p /tmp/test && sudo mount -o loop,rw,sync image.img /tmp/test
ここでの回答に基づく完全なプロセスは次のとおりです:
.img ファイルはパーティションのイメージではなく、ディスク全体のイメージです。つまり、ブートローダーとパーティション テーブルから始まります。パーティションのオフセットを検出し、具体的にマウントする必要があります。悲しいことに、それを自動化する Linux ツールを見つけることができませんでした。だから、数学をしなければなりませんが、それは簡単です。プロセスは次のとおりです。
fdisk -l raspberry_pi.img
以下の出力が得られます。バイト単位のセクター サイズ (この場合は 512。以下の 2 行目を参照) とパーティションの開始セクター (Linux パーティションの場合は 94208。以下の最後の行を参照) に注意してください。
Disk raspberry_pi.img: 7.3 GiB, 7826571264 bytes, 15286272 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
Disklabel type: dos
Disk identifier: 0xbeb1a7ff
Device Boot Start End Sectors Size Id Type
raspberry_pi.img1 8192 93813 85622 41.8M c W95 FAT32 (LBA)
raspberry_pi.img2 94208 15069183 14974976 7.1G 83 Linux
ここで、手動で開始セクター * セクター サイズを掛けて、mount
のオフセット バイトを取得します。 コマンドが必要です。この場合、94208 * 512 =48234496
sudo mkdir /media/sdcard
sudo mount -o loop,rw,sync,offset=48234496 printer_v5.img /media/sdcard
これで、イメージの Linux パーティションが /media/sdcard にマウントされ、root ユーザーがそのファイルを編集できるようになります。
最後に、終了したら:
sudo umount /media/sdcard
問題は、イメージに複数のパーティションがあることです。普通の古いマウントは、オフセット 0 でファイルシステム情報を探します。これは、あなたの場合、明らかにいくつかの BIOS ブート情報を指していますが、目的の ext4 fs を指していません。目的のパーティションへのオフセットを指定して loopback-device を作成すると、成功するはずです。
このリンクが役に立ちます。