首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在QEMU下在RPi映像引导上挂载根文件系统

无法在QEMU下在RPi映像引导上挂载根文件系统
EN

Unix & Linux用户
提问于 2020-03-28 19:15:31
回答 1查看 835关注 0票数 0

我正在尝试从QEMU引导HypriotOS (https://github.com/hypriot/image-builder-rpi/releases/) RPi映像。

我正在使用来自https://github.com/dhruvvyas90/qemu-rpi-kernel的内核,并使用https://github.com/duquesnay/prepare-hypriot-qemu为QEMU准备映像。

我测试了映像中的根分区是否可以挂载,在我看来很好:

代码语言:javascript
复制
$ sudo fdisk -lu hypriotos-rpi-v1.1.3-qemu01.imgDisco hypriotos-rpi-v1.1.3-qemu01.img: 8 GiB, 8589934592 bytes, 16777216 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x00000000

Disposit.                        Inicio Comienzo    Final Sectores Tamaño Id Tipo
hypriotos-rpi-v1.1.3-qemu01.img1            2048   133119   131072    64M  c W95 FAT32 (LBA)
hypriotos-rpi-v1.1.3-qemu01.img2          133120 16777215 16644096     8G 83 Linux

$ sudo mount -o loop,offset=68157440 hypriotos-rpi-v1.1.3-qemu01.img /mnt/

$ ls /mnt/
bin  boot  dev  etc  home  lib  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

但是,当尝试使用以下参数引导时,它将失败:

代码语言:javascript
复制
$ export APPEND_ARGS="root=/dev/sda2 panic=1 rw loglevel=8 console=ttyAMA0,115200"

$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot \
    -dtb ../../qemu-rpi-kernel/versatile-pb.dtb -serial stdio -append "${APPEND_ARGS}" \
    -kernel ../../qemu-rpi-kernel/kernel-qemu-4.4.34-jessie \
    -net nic -net user,restrict=off -hda hypriotos-rpi-v1.1.3-qemu01.img

输出显示在引导时检测到了/dev/sda2,但出于某种原因,内核一直抱怨无法挂载它:

EN

回答 1

Unix & Linux用户

发布于 2020-03-29 15:01:54

解决这一问题的关键是严格遵循https://github.com/dhruvvyas90/qemu-rpi-kernel#choosing-a-kernel-image中有关DTB的说明。

选择一个内核映像这个存储库包含三种类型的内核映像:

  • kernel-qemu-4.*.*-buster是最新的图像,它与Raspbian和most兼容。要使用这些映像,您需要通用的-pb.dtb文件,该文件也包含在这个存储库中。除非你是积极的,你需要一个不同的内核,最近的这些图像可能是你想要的。
  • kernel-qemu-4.*.*-stretch是与Raspbian和Jessie兼容的图像。要使用这些映像,您将需要versatile-pb.dtb文件,该文件也包含在这个存储库中。
  • kernel-qemu-4.4.*-jessie是与Raspbian和Wheezy兼容的图像。
  • kernel-qemu-3.10.25-wheezy是来自xecdesign.com的原始映像,它只与Raspbian兼容。

这两个命令成功地启动了映像:

内核4.19.50-破坏:

代码语言:javascript
复制
$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "${APPEND_ARGS}" -kernel ../../qemu-rpi-kernel/kernel-qemu-4.19.50-buster -dtb ../../qemu-rpi-kernel/versatile-pb.dtb -net nic -net user,restrict=off -drive file=hypriotos-rpi-v1.1.3-qemu01.img,index=0,media=disk,format=raw

内核4.4.34-jessie

代码语言:javascript
复制
$ qemu-system-arm -cpu arm1176 -m 256 -M versatilepb -no-reboot -serial stdio -append "${APPEND_ARGS}" -kernel ../../qemu-rpi-kernel/kernel-qemu-4.4.34-jessie -net nic -net user,restrict=off -drive file=hypriotos-rpi-v1.1.3-qemu01.img,index=0,media=disk,format=raw
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/576580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档