このディスクイメージをどのようにマウントできますか?

このディスクイメージをどのようにマウントできますか?

プロジェクトサンドキャッスル(iPhone 7でAndroid 10を実行できるプロジェクト)が提供するAndroid NANDイメージをインストールしようとしています。このイメージに存在する boot.img ファイルを編集できるように、このディスクイメージをマウントしようとしています。以下は、ファイルに関するいくつかの情報です。

$ file nand
nand: DOS/MBR boot sector; partition 1 : ID=0xee, start-CHS (0x0,0,2), end-CHS (0x0,4,4), startsector 1, 255 sectors; partition 2 : ID=0x7, start-CHS (0x0,4,5), end-CHS (0x0,8,8), startsector 256, 256 sectors
$ sudo fdisk -lu nand
Disk nand: 3.5 GiB, 3269459968 bytes, 6385664 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: 0x00000000

Device Boot Start   End Sectors   Size Id Type
nand1           1   255     255 127.5K ee GPT
nand2         256   511     256   128K  7 HPFS/NTFS/exFAT

macOSにインストールしようとしましたが、ファイルシステムが必要で、ext4とmsdosが機能しません。そのため、Ubuntu Live USBを作成して次のコマンドを試して、次のような結果を得ました。

$ sudo mkdir /android
$ sudo mount -o loop,rw,offset=512 nand /android
mount: /android: wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error.

それで、ファイル拡張子を与えようとしましたが、nand拡張子がないのでファイルとして認識できないのではないかと思いました。

$ mv nand android.image
$ sudo mount -o loop,rw,offset=512 android.image /android
NTFS signature is missing.
Failed to mount '/dev/loop6': Invalid argument
The device '/dev/loop6' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

offset=$((512*256)) を使用して別のパーティションをマウントしようとしましたが、同じ結果が得られました。私もオフセットなしで試しましたが、同じ結果を得ました。最後に、rwの代わりにroを試してみましたが、同じ出力が再び現れました。詰まって次に何をすべきかわかりません。 gzipで圧縮されたNAND画像を見つけることができます。このリンクから。誰でも提供できる助けをいただきありがとうございます。

ベストアンサー1

あなたのfdisk出力は、これが次のようになることを示します。いいえ効果的なパーティションテーブル:nand2は128 KBしか占有しておらず、これはNTFSパーティションには不十分です。私はWineで実行されている7-zip(デフォルトで利用可能なp7zipを使用できます)を使用して画像を開きました。イメージには、2つの「パーティション」とext4パーティションの大容量ファイルが含まれています。

このext4パーティションのオフセットを見つける方法を尋ねないでください。次のコマンドを使用してインストールできます。

mount -o loop,offset=3145728,ro nand /mnt/sandcastle

Android 10はまだメインラインに含まれていない「shared_blocks」という新しいext4機能を実装しているため、読み書きでマウントできません。

おすすめ記事