编译内核,制作文件系统,使用Qemu模拟一个单核或者多核的x86_64架构的系统,根文件系统用ext4的形式,跟Host之间采用NFS的方式实现文件共享。
环境准备
sudo apt install qemu qemu-system
编译内核
make help
make x86_64_defconfig
make munuconfig
make
启动内核
qemu-system-x86_64 \
-m 512M \ # memary size
-smp 4 \ # cpu number
-kernel linux/arch/x86/boot/bzImage
制作磁盘镜像
制作
qemu-img create -f raw disk.raw 512M
mkfs -t ext4 disk.raw
挂载
sudo mount -o loop disk.raw mnt
安装内核模块
sudo make modules_install INSTALL_MOD_PATH=mnt # 指定安装路径
启动
qemu-system-x86-64 \
-m 512M \
-smp 4 \
-kernel linux/arch/x86/boot/bzImage \
-drive format=raw,file=disk.raw \ # 指定文件作为磁盘
-append "root=/dev/sda rw" # 内核启动参数,指定根文件系统所在设备
带网络启动
qemu-system-x86-64 \
-m 512M \
-smp 4 \
-kernel linux/arch/x86/boot/bzImage \
-drive format=raw,file=disk.raw \
-append "root=/dev/sda rw" \
-net nic -net tap,ifname=tap0 # tap dev: tap0
自动获取IP,安装dhcpc
sudo apt install dhcpcd
sudo systemctl enable dhcpcd
文档信息
- 本文作者:hsfeng
- 本文链接:https://hsfeng.site/hsfengbyte.github.io.old/2020/11/16/linux-qemu-system-x86_64/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)