我试图在Linux主机的VirtualBox或VMWare上运行VirtualBox操作系统。官方指示说,如何只在qemu上运行操作系统。然而,官方页面(https://pdos.csail.mit.edu/6.828/2014/xv6.html)提到,xv6也可以直接在硬件上引导,但还不清楚如何引导。
我想先在VirtualBox或VMware上引导VMware。我从Makefile中提取了下面的命令,在使用xv6命令编译之后,Makefile从命令行运行make
。
/usr/bin/qemu-system-i386 -serial mon:stdio -drive file=fs.img,index=1,media=disk,format=raw -drive file=xv6.img,index=0,media=disk,format=raw -smp 2 -m 512
请帮我继续。如果程序已经被记录下来,那么一些参考将是有帮助的。
发布于 2020-05-18 21:42:55
我看到您希望在VirtualBox或VMware上引导它,但另一种选择是使用docker来运行xv6。通过docker开始使用xv6的一个很好的指南是这里。
完整的指南是详细的,可以帮助你开始。这是一个替代的选择,但一个能让你快速前进的选择。
它只需要4步就可以使用xv6:
步骤1
步骤2 -在PowerShell或bash中运行此命令以使用xv6 docker pull grantbot/xv6
提取ubuntu映像
步骤3 -要运行码头映像并使用xv6,请运行以下命令docker run -it grantbot/xv6
步骤4 -现在在ubuntu映像中的shell中运行cd /home/a/xv6-public/
以输入xv6的根文件夹。
Done -现在您可以使用make qemu-nox
编译和运行xv6了
发布于 2021-11-08 03:38:16
步骤1.可压缩的xv6
下载代码,解压缩并输入目录,编译操作系统映像和根文件系统,命令如下:
make xv6.img&&make fs.img
步骤2.将映像写入磁盘
在现有的vmware虚拟机中创建两个磁盘(我的vmware版本为15.2.2,linux为Centos7.8),操作步骤是:虚拟机设置-> add -> disk -> SCSI ->创建一个新的虚拟磁盘->大小为0.005 (立即分配,单个文件) ->将磁盘命名为"os",这意味着此磁盘是操作系统。
以同样的方式创建另一个名为"fs“的磁盘来放置根文件系统。
此时,/dev/目录中应该有"sdb“和"sdc”(sda是当前操作系统本身)。如果您没有看到"sdb“和"sdc",请重新启动来宾操作系统。使用以下命令将操作系统和根文件系统写入磁盘:
dd if=./xv6.img of=/dev/sdb bs=4k count=1000
dd if=./fs.img of=/dev/sdc bs=4k count=1000
关闭当前虚拟机以确保文件与磁盘同步。此时,这两个映像已经写入磁盘,vmware将磁盘保存为一个文件,位置位于当前虚拟机的目录中,名为os.vmdk
、fs.vmdk
,下一步将这两个文件加载到新的虚拟机中。
步骤3.创建xv6虚拟机
要创建一个空虚拟机,操作步骤是:定制(高级) -> next ->,安装操作系统以后,->选择其他操作系统类型(选择其他版本) ->,将虚拟机名称作为xv6 (名称依赖于您) ->,然后使用默认配置直到“下一步”完成。
右键单击创建的虚拟机并删除默认创建的磁盘。将上一步中创建的磁盘文件添加到当前虚拟机。操作步骤是:添加-> " disk“-> IDE (请注意,这是一个IDE而不是SCSI磁盘,因为xv6读取ide格式磁盘) ->使用现有的虚拟磁盘->,在步骤2->complete中选择os.vmdk
生成。
以同样的方式添加fs.vmdk
。请注意,必须首先添加os.vmdk
。因为os.vmdk
是操作系统,所以它需要成为第一个硬盘。
现在,创建一个有两个磁盘的虚拟机。一个是os磁盘,另一个是根文件系统磁盘,一切就绪。
启动虚拟机,xv6将成功启动。
https://stackoverflow.com/questions/54262259
复制相似问题