环境
wsl ubuntu20.04
下载
到 linux官网 中复制需要下载的linux版本地址
在命令行中 wget 版本地址
下载压缩包
下载完成后 使用 tar xvf 压缩包名
命令解压缩
编译依赖包
更新apt sudo apt-get update
下载需要的包 根据编译报错去找缺少的包
sudo apt-get install libssl-dev
sudo apt-get install libelf-dev
sudo apt-get install bison
sudo apt-get install flex
编译选项
解压完成后 进入文件夹 使用make config
命令 配置编译选项
编译选项勾选参考
编译选项参考1
配置完后 使用make
命令编译
配置项可在.config文件中看到
运行
运行linux内核
qemu运行linux参考
qemu运行有很多参数配置
根据参考链接未能运行
根据文心一言提供的命令 略加修改 得到能够成功跑起来的命令
qemu-system-x86_64 -kernel bzImage路径 -append "root=/dev/vda1 console=ttyS0" -m 512 -drive file=磁盘文件,format=磁盘文件格式 -nographic -serial mon:stdio
以下为文心一言对此命令的解释
qemu-system-x86_64:
这是 QEMU 的一个可执行程序,用于模拟 x86_64 架构的虚拟机。
-kernel bzImage:
-kernel 选项用于指定虚拟机启动时使用的内核映像文件。在这里,它指向名为 bzImage 的文件,这通常是一个经过压缩的 Linux 内核映像。
-append "root=/dev/vda1 console=ttyS0":
-append 选项用于向内核传递启动参数。在这个例子中,传递了两个参数:
root=/dev/vda1 指定了根文件系统所在的设备。在这里,它被设置为虚拟机的第一个虚拟磁盘(通常是 vda)的第一个分区(1)。
console=ttyS0 指定了控制台的输出设备为串口 0 (ttyS0)。这通常用于将虚拟机的控制台输出重定向到 QEMU 的监视器或串口终端。
-m 512:
-m 选项用于设置虚拟机可用的 RAM 大小,单位是 MB。在这里,它被设置为 512 MB。
-drive file=disk.raw:
-drive 选项用于指定虚拟机的磁盘设备。在这里,它使用 file=disk.raw 来指定磁盘映像文件的路径和名称。QEMU 会尝试自动探测 disk.raw 文件的格式,但如果你知道文件的格式,建议使用 format=raw(或其他格式)来明确指定,以避免潜在的格式探测错误。
-nographic:
-nographic 选项告诉 QEMU 不使用图形界面,而是使用文本控制台。这对于在没有图形界面的环境中运行 QEMU 或当您想要通过文本终端与虚拟机交互时非常有用。
-serial mon:stdio:
-serial 选项用于配置虚拟机的串口设备。mon:stdio 表示将串口输出重定向到 QEMU 的监视器(monitor),通常这就是标准输出(stdout)。这使得您可以在终端中看到从虚拟机串口发送的数据。
这个命令配置了一个简单的 x86_64 虚拟机,使用 bzImage 作为内核,根文件系统位于 vda1 分区,具有 512 MB 的 RAM,并使用 disk.raw 作为磁盘映像。虚拟机没有图形界面,并且其串口输出被重定向到终端。