
나는 팔로우하고 있다이 가이드Ubuntu에 가상 ARM 환경을 설치합니다.
- linaro 및 qemu 패키지를 설치했습니다.
sudo add-apt-repository ppa:linaro-maintainers/tools
sudo apt-get install linaro-image-tools qemu-user-static qemu-system
- 크로스 컴파일러:
sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
- Linaro 릴리스 및 하드웨어 팩을 다운로드했습니다.
wget http://releases.linaro.org/platform/linaro-n/nano/alpha-3/linaro-natty-nano-tar-20110302-0.tar.gz
wget http://releases.linaro.org/platform/linaro-n/hwpacks/alpha-3/hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
- VM 디스크 이미지를 생성했습니다.
linaro-media-create --image_file vexpress.img --dev vexpress \
--binary linaro-natty-nano-tar-20110302-0.tar.gz \
--hwpack hwpack_linaro-vexpress_20110302-0_armel_supported.tar.gz
나는 실패하고 있어요커널 및 initrd 추출. 지침에는 다음을 실행하라고 나와 있습니다.
sudo mount -o loop,offset="$(file vexpress.img | awk 'BEGIN { RS=";"; } /partition 2/ { print $7*512; }')" \
-t auto vexpress.img /mnt/tmp
하지만 오류가 발생합니다.
마운트: 마운트 옵션을 구문 분석하지 못했습니다.
가이드에 다음과 같은 메모가 있습니다.
파일의 실제 이름은 빌드에 따라 약간 다를 수 있습니다.
그렇다면 이 마지막 줄을 Ubuntu에 맞게 수정하는 방법을 아는 사람이 있습니까?
답변1
sudo mount -o loop,offset="$(file vexpress.img | awk 'BEGIN { RS=";"; } \
/partition 2/ { print $7*512; }')" \
-t auto vexpress.img /mnt/tmp
위 명령이 수행하는 작업은 실제로 간단합니다. 이미지의 파티션 2의 시작 섹터를 찾아 vexpress.img
512를 곱한 다음 결과를 루프 장치로 마운트하기 위한 오프셋으로 가져옵니다.
이 mount
명령은 오프셋 값을 허용합니다.바이트. 각 섹터에는 512바이트가 있으므로 시작 섹터 오프셋에 512를 곱하면 시작 오프셋(바이트)이 생성됩니다.
이를 수행하는 다른 방법은 다음과 같습니다. (예를 들어 원시 Raspbian 이미지를 사용합니다)
오프셋 찾기:
$ fdisk -lu 2016-09-23-raspbian-jessie-lite.img Disk 2016-09-23-raspbian-jessie-lite.img: 1.3 GiB, 1389363200 bytes, 2713600 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: 0x5a7089a1 Device Boot Start End Sectors Size Id Type 2016-09-23-raspbian-jessie-lite.img1 8192 137215 129024 63M c W95 FAT32 (LBA) 2016-09-23-raspbian-jessie-lite.img2 137216 2713599 2576384 1.2G 83 Linux
파티션 2의 시작 오프셋은 입니다 137216
. 와 마찬가지로 vexpress.img
파티션 2는 우리가 관심 있는 루트 파티션입니다.
간단한 수학:
$ perl -e "print 137216*512" 70254592
마운트하세요:
sudo mount -o loop,offset=70254592 vexpress.img /mnt/tmp