이 디스크 이미지를 어떻게 마운트할 수 있나요?

이 디스크 이미지를 어떻게 마운트할 수 있나요?

프로젝트 샌드캐슬(아이폰7에서 안드로이드 10을 실행할 수 있는 프로젝트)에서 제공하는 안드로이드 낸드 이미지를 설치하려고 합니다. 이 이미지에 있을 수 있는 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 라이브 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으로 압축된 낸드 이미지를 찾을 수 있습니다.이 링크에서. 누구든지 제공할 수 있는 도움을 주시면 정말 감사하겠습니다.

답변1

귀하의 fdisk출력은 이것이 다음과 같다는 것을 나타냅니다.아니요효과적인 파티션 테이블: nand2는 128KB만 차지하며 이는 NTFS 파티션에 충분하지 않습니다. 저는 Wine에서 실행되는 7-zip(기본적으로 사용 가능한 p7zip을 사용할 수 있음)을 사용하여 이미지를 열었습니다. 이미지에는 두 개의 "파티션"과 ext4 파티션인 대용량 파일이 포함되어 있습니다.

이 ext4 파티션의 오프셋을 찾는 방법을 묻지 마세요. 다음 명령을 사용하여 설치할 수 있습니다.

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

Android 10은 아직 메인라인에 포함되지 않은 'shared_blocks'라는 새로운 ext4 기능을 구현하기 때문에 읽기-쓰기로 마운트할 수 없습니다.

관련 정보