和使用晓泰实验云台提供的项目?https://github.com/tinyclub/cloud-lab?
首先需要将项目 git clone 到本地,并安装 docker for mac 桌面版
下面这段代码会将 docker 镜像拉到本地并在 ubuntu 镜像系统中安装必要的依赖
tools/docker/choose
下面这段代码会启动 docker 镜像,注意它同时会启动 cloud-ubuntu-web,杀掉它无需理会即可。如果是首次启动的话,会报错要求设置共享文件夹,按照提示设置即可
tools/docker/run
然后在 docker 桌面版中打开 linux-0.11-lab 镜像的命令行,如果是首次进入的话,是无法进行网络操作的,这是由于在上面安装时下面这段代码会将 docker 的虚拟网卡删除,解法也很简单,执行 killall Docker 然后重启应用即可,因为 docker 守护进程每次创建会自动创建网卡
// tools/docker/install
# Restart to make sure the above opts work
$SUDO ifconfig docker0 down
$SUDO brctl delbr docker0
$SUDO service docker restart
恢复完虚拟网卡后,在镜像里执行 sudo apt upgrade 即可安装其他依赖拉
然后便可按照 cloud-lab 的教程来调试 linux0.11 了
哼,哪有那么容易!!
linux0.11 支持的文件系统是 minix,但是?2021 年的 docker for mac 的 linuxkit 应该是不支持 minix 的,所以导致镜像系统无法 mount hdc-0.11.img,进而导致无法在上层系统编辑文件,关于 linuxkit 是什么请读者自行了解。并且项目里虽然有提供 4.9.125 版本的?linuxkit minix 文件系统包,但是 2021 年的 docker 自带 linuxkit 已经是 5.x 了,所以执行 insmod 时会报错!!
所以需要我们自己编译 linuxkit kernel !!!执行下面的代码,注意在 build 过程中会从 docker 服务器下载依赖,但是可能是服务器承载量不大,总是断开连接,几个依赖下了两天才下完!!!把编译出来的 kernel 文件替换掉 docker 桌面版包内的 resources/linuxkit 文件夹中的 kernel 文件,然后杀掉 docker,重启镜像,执行 uname -r,可以发现内核版本变为 4.9.125 了 !!!!
brew tap linuxkit/linuxkit
brew install --HEAD linuxkit
git clone git@github.com:linuxkit/linuxkit.git
cd linuxkit
// 修改 yml kernel 版本为 4.9.125
linuxkit build ./example/docker-for-mac.yml
然后便可以把 img 文件挂载到镜像系统里了!!!
|