操作系统实战45讲-环境配置

操作系统实战45讲-环境配置

前言

最近在极客时间上学习彭东老师的课程《操作系统实战45讲》,内容干货满满,就是自己太菜了,很多汇编代码只能边看边学。下面是关于课程中涉及到的环境配置总结,将过程中遇到的坑记录一下,防止下次忘记。

环境准备

  • 物理机操作系统:Windows 10

  • 虚拟机工具:VirtualBox

  • 虚拟机JoinApper操作系统版本:Ubuntu 18.04

我主要使用VirtualBox来进行此次实验环境的配置,创建了两个虚拟机环境:一个JoinApper用来进行虚拟磁盘的生成,一个HelloOs用来演示实验效果。

注意:对于演示实验效果的虚拟机,在创建的时候需要选择不添加虚拟硬盘,因为后面需要添加我们自己生成的虚拟磁盘。


硬盘生成

 1.生产虚拟硬盘
 dd bs=512 if=/dev/zero of=hd.img count=204800
 ​
 ;bs:表示块大小,这里是512字节
 ;if:表示输入文件,/dev/zero就是Linux下专门返回0数据的设备文件,读取它就返回0
 ;of:表示输出文件,即我们的硬盘文件。
 ;count:表示输出多少块
 ​
 2.硬盘上建立文件系统
 2.1 将虚拟硬盘文件变成Linux下的回环设备
 sudo losetup /dev/loop0 hd.img
 ​
 2.2 格式化回环快设备
 sudo mkfs.ext4 -q /dev/loop0  
 ​
 3.硬盘挂载
 sudo mount -o loop ./hd.img ./hdisk/ ;挂载硬盘文件
 sudo mkdir ./hdisk/boot/ ;建立boot目录

安装GRUB

1.挂载虚拟硬盘文件为loop0回环设备
 sudo losetup /dev/loop0 hd.img
 sudo mount -o loop ./hd.img ./hdisk/ ;挂载硬盘文件
 2.安装GRUB
 sudo grub-install --boot-directory=./hdisk/boot/ --force --allow-floppy /dev/loop0
 ;--boot-directory 指向先前我们在虚拟硬盘中建立的boot目录。
 ;--force --allow-floppy :指向我们的虚拟硬盘设备文件/dev/loop0
 3.在/hdisk/boot/grub目录下建立一个grub.cfg文本文件
 写入下面内容
 menuentry 'HelloOS' {
 insmod part_msdos
 insmod ext2
 set root='hd0,msdos1' #我们的硬盘只有一个分区所以是'hd0,msdos1'
 multiboot2 /boot/HelloOS.eki #加载boot目录下的HelloOS.eki文件
 boot #引导启动
 }
 set timeout_style=menu
 if [ "${timeout}" = 0 ]; then
   set timeout=10 #等待10秒钟自动启动
 fi

转换虚拟磁盘格式

因为我们是在虚拟机上创建的虚拟磁盘,但是VirtualBox是安装在windows上的,因此我们需要将创建好的虚拟磁盘先共享到windows上,关于如何共享windows与virtualbox虚拟机的文件,可以参考下面的链接:

Virtualbox主机和虚拟机之间文件夹共享及双向拷贝(win7——centos7)_赶路人儿-CSDN博客_怎么把virtualbox虚拟机里的文件拷贝出来

之后我们需要将虚拟磁盘的格式进行转换,这一步主要是为了让虚拟机能够识别硬盘。

 # Linux下命令
 VBoxManage convertfromraw ./hd.img --format VDI ./hd.vdi
 ;convertfromraw 指向原始格式文件
 ;--format VDI  表示转换成虚拟需要的VDI格式
 ​
 # Windows下命令
 VBoxManage.exe convertfromraw ./hd.img --format VDI ./hd.vdi
 注意:可以在VirtualBox安装目录下找到这个exe文件

安装虚拟硬盘

因为我是在Windows下进行的,所以只介绍windows系统上的操作,linux的可以自己搜索一下。

打开设置中的存储,然后注册之前创建的虚拟硬盘即可。

启动虚拟机

启动后就可以进入GRUB的引导界面了。

遇到的问题

  • 安装VirtualBox成功后,在启动虚拟机的时候出现一个问题:

 经过查询,需要禁用Hyper-V,因此以管理员身份执行下面语句

 bcdedit /set hypervisorlaunchtype off
  • 在设置回环设备时,遇到以下错误:

我们先通过以下命令看看哪些回环设备忙

 ls /dev/loop*

然后找到其中没有的,我就是使用了/dev/loop19

参考

  • 环境配置参考:

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.

  • windows与virtualBox虚拟机间共享文件:

Virtualbox主机和虚拟机之间文件夹共享及双向拷贝(win7——centos7)_赶路人儿-CSDN博客_怎么把virtualbox虚拟机里的文件拷贝出来

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值