Ubuntu의 ARM 가상 머신

Ubuntu의 ARM 가상 머신

나는 팔로우하고 있다이 가이드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.img512를 곱한 다음 결과를 루프 장치로 마운트하기 위한 오프셋으로 가져옵니다.

mount명령은 오프셋 값을 허용합니다.바이트. 각 섹터에는 512바이트가 있으므로 시작 섹터 오프셋에 512를 곱하면 시작 오프셋(바이트)이 생성됩니다.

이를 수행하는 다른 방법은 다음과 같습니다. (예를 들어 원시 Raspbian 이미지를 사용합니다)

  1. 오프셋 찾기:

    $ 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는 우리가 관심 있는 루트 파티션입니다.

  1. 간단한 수학:

    $ perl -e "print 137216*512"
    70254592
    
  2. 마운트하세요:

    sudo mount -o loop,offset=70254592 vexpress.img /mnt/tmp
    

관련 정보