私はLinuxの下にあります:
Device Boot Start End Blocks Id System
/filename.img * 63 1007999 503968+ a5 FreeBsd
上記のパーティションの下に、ufsファイルシステムとスワップの2つのスライスがあります。 ufsパーティションをマウントするためのマウントオフセットを決定する方法がわかりません。
mount -r -t ufs -o loop,offset=32256,ufstype=ufs2 filename.img /test/
dmesg出力
ufs_read_super: bad magic number
動いていない。
私はそれがだと思う
mount -r -o loop,offset=32768,ufstype=ufs2 filename.img /test/
私の記憶が正しければ、最初のBSDパーティションは、ディスク全体に対して32kBの境界から始まります。これは512Bの64セクターです。 PCパーティションは、ディスク全体に対して1セクターのオフセットで開始するため、PCパーティションに対して、BSDパーティションのオフセットは63セクターです。ディスクの最初のセクターには、パーティションテーブルが含まれています。
Rozcietrzewiaczが提案しているように、BSDパーティションのオフセットは次のように確認できます。
partx -l filename.img
Linuxカーネルがループデバイスのパーティションへの自動アクセスをサポートするための パッチ があります。 Debianはそれをカーネルに適用します。このパッチを適用している場合は、loop
ドライバーに十分な大きさのmax_part
パラメーターがあることを確認してください(rmmod loop; modprobe max_part=63
を実行する必要がある場合があります)。すると、BSDパーティションは/dev/loop0p5
や/dev/loop0p6
のように表示されます。
すべてのヒントをありがとう。
# partx -l filename.iso
HDIO_GETGEO: Inappropriate ioctl for device
/ dev/mapperディレクトリに論理マッピングを作成するファイル名マッピングを追加しました
# kpartx -a filename.iso
# ls -l /dev/mapper/
control loop0p1
最後のチェック
# partx -l /dev/mapper/loop0p1
1: 0- -1 ( 0 sectors, 0 MB)
2: 0- -1 ( 0 sectors, 0 MB)
3: 0- -1 ( 0 sectors, 0 MB)
4: 0- 49999 ( 50000 sectors, 25 MB)
1: 8388671-142078859 (133690189 sectors, 68449 MB)
2: 63- 8388670 ( 8388608 sectors, 4294 MB)
そして成功した最後のもの
mount -r -t ufs -o loop,offset=$((8388671*512)),ufstype=ufs2 filename.iso /test/
よろしく!