コマンドを実行しています。ここに関する投稿からQt、qwt、およびオーバークロックRPIをコンパイルしてインストールする方法
sudo mount -o loop,offset=62914560
<date>-wheezy-raspbian.img /mnt/rasp-pi-rootfs
私はしfdisk 2016-02-26-raspbian-jessie.img
、私は得る
Disk: 2016-02-26-raspbian-jessie.img geometry: 976/128/63 [7870464 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: 0C 0 130 3 - 8 40 32 [ 8192 - 122880] Win95 FAT32L
2: 83 8 40 33 - 489 232 63 [ 131072 - 7739392] Linux files*
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
マウントのオフセットがなぜ特定されますか?
ベストアンサー1
62914560はファイル内の正確に60MiBを指しているため、Raspianディスクイメージが実際に分割されていると推測できます。 offsetは実際のオフセットを知らせますmount
(または実際に実行します)。losetup
根ファイルシステム(私はこれが2つのパーティションのうちの2番目であることを示唆しています。最初のものは/boot
ブートローダ/ファームウェアファイルである可能性が高いです)。
ここでの問題は、loop
ドライバが実際にパーティションイメージをサポートしていても、モジュールをロードするとき(またはカーネルコマンドラインから)デバイスあたりの最大パーティション数をモジュールパラメータとして指定する必要があることですloop
。デフォルトではこれを実行しないディストリビューションが多いため、これはデフォルトのパラメータ...,offset=XXX
(ゼロなので分割がサポートされていない)を使用するときに分割画像を処理する最も信頼性の高い方法です。loop
loop
ドライバを見ると、ドライバにパーティションサポートがロードされているかどうかをテストできます/sys/module/loop/parameters/max_part
。現在のシステム(ArchLinux)からloop
パラメータなしでロードする方法は次のとおりです。
$ cat /sys/module/loop/parameters/max_part
0
パーティションサポートを有効にするには、マウントを解除して必要なloop
オプション値にリロードする必要がありますmax_part
。
# modprobe -r loop
# modprobe loop max_part=8
その後、次のようにして画像の屋根ふき装置を手動で設定できます。
# losetup /dev/loop0 /path/to/<date>-wheezy-raspbian.img
/dev/loop0
これで、イメージ全体や(私の理論が正しい限り)、イメージ内のすべてのパーティションなどについて見ることができます/dev/loop0p1
。 (スクリプト参照)/dev/loop0p2
losetup
はい)。
編集する:
この作業を退屈な方法で直接実行するには(loop
正しいmax_part
オプションを使用して再ロードして単にパーティションを使用することをお勧めします)、イメージfdisk
ファイル(ArchLinux ISOが表示されている)から直接使用して必要なオフセットを見つけることができます。私はそれを持っていましたが、アイデアは同じです):
$ fdisk -l archlinux-2016.03.01-dual.iso
Disk archlinux-2016.03.01-dual.iso: 268.3 MiB, 281339392 bytes, 549491 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: 0x2237702c
Device Boot Start End Sectors Size Id Type
archlinux-2016.03.01-dual.iso1 * 0 1452031 1452032 709M 0 Empty
archlinux-2016.03.01-dual.iso2 172 63659 63488 31M ef EFI (FAT-12/16/32)
2番目のパーティションはセクタ172で始まり、セクタサイズは512バイトです。 2 つの値を掛けるとバイト単位のオフセットが得られるので、パーティションをマウントするには次のようにします。
# mount -o loop,offset=$((172*512)) archlinux-2016.03.01-dual.iso /mnt
# ls -l /mnt
total 4
drwxr-xr-x 4 root root 2048 Mar 1 15:49 EFI
drwxr-xr-x 3 root root 2048 Mar 1 15:49 loader
望むより。