qemu 规范路径_TIP: 在 QEMU 中可以使用 9P 文件系统挂载宿主目录作为根目录!

作用就是与宿主共享文件和目录更方便了,还能通过这种方法直接重用 docker 镜像

(记得补上 init,如 openrc 和 systemd 包)而不用重新打包到一个镜像文件里,也不用折腾复杂的分区操作,启动起来就像容器一样简单(加个-nographic 就更像了)

不知道有没有火星,直接贴主要代码 :)

#!/bin/bash

kernel=out/arch/x86_64/boot/bzImage

qemu-system-x86_64 \

-enable-kvm \

-cpu host \

-kernel "$kernel" \

-initrd initramfs-linux.img \

-net nic,model=virtio \

-net user \

-fsdev local,id=r,path=root,security_model=none \

-device virtio-9p-pci,fsdev=r,mount_tag=r \

-append 'init=/init'

/init:(就是 initramfs 里的,记得带上 busybox)

#!/bin/sh

hostname virtual

mount -t 9p -o trans=virtio r /mnt

mount -t proc none /mnt/proc

mount -t sysfs none /mnt/sys

mount -t devtmpfs none /mnt/dev

echo -e "\nBoot took $(cut -d' ' -f1 /proc/uptime) seconds\n"

exec /sbin/switch_root /mnt /sbin/init

不过我还是先弄了个 initrd(busybox)作为初始入口(理论上这个都不需要)

前提要求:内核开启 9p 文件系统支持(而且不要用模块的,虽然理论上可以把模块打到 initrd 里,但是多麻烦呢)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值