实战篇:手动编译安装微软 Linux 开源版 CBL-Mariner_cbl-mariner2


![](https://img-blog.csdnimg.cn/img_convert/4b348ac5baca2d36181b2e119d61caab.png)


#### 连接主机修改密码



vagrant ssh
sudo passwd root
su - root


![](https://img-blog.csdnimg.cn/img_convert/2354f14663bb22a40952a2e7a936d9f3.png)


### 先决条件配置


**添加一个 backports 存储库以安装最新版本的 Go:**



sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update


![](https://img-blog.csdnimg.cn/img_convert/d3c4ad1f3bfa23e02769e455931d42f2.png)


**1、安装所需的依赖项:**



sudo apt -y install make tar wget curl rpm qemu-utils golang-1.15-go genisoimage python-minimal bison gawk parted


![](https://img-blog.csdnimg.cn/img_convert/81a37e2b514e4773949c010ab3d53f07.png)


**2、推荐安装 `pigz` ,但不是必须,用于更快的压缩操作:**



sudo apt -y install pigz


![](https://img-blog.csdnimg.cn/img_convert/8b740dfd64e1599c906f625bc59114d5.png)


**3、修复 go 1.15 link:**



sudo ln -vsf /usr/lib/go-1.15/bin/go /usr/bin/go


![](https://img-blog.csdnimg.cn/img_convert/15010c183a1d8a366d0c572416f719d6.png)


**4、安装 docker:**



curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER


![](https://img-blog.csdnimg.cn/img_convert/3b92f289cc7ab58082aa0c82aec2e4bb.png)


配置完成后建议关闭主机:



vagrant halt


### 下载 CBL-Mariner 项目


由于官方源太慢,于是我 fork 到了我的 **gitee 仓库**:<https://gitee.com/luciferlpc/CBL-Mariner>。



git clone https://gitee.com/luciferlpc/CBL-Mariner.git


**下载到本地之后,上传到服务器主机中:**


![](https://img-blog.csdnimg.cn/img_convert/c5bb1df0fe5bd8723ab2c0c89d190238.png)


编辑 Vagrantfile 文件,挂载当前目录到主机 /vagrant 目录:


![](https://img-blog.csdnimg.cn/img_convert/010bf1c148900e9dbb48c39278d5f7d7.png)


重新启动 Ubuntu 主机:



cd /Volumes/DBA/vagrant/ubuntu1804
vagrant up


**或者通过 ftp 等工具进行上传!**


![](https://img-blog.csdnimg.cn/img_convert/03f7483db675bb800317cf1249723f38.png)


**同步到最新的稳定版本:**



git checkout 1.0-stable


![](https://img-blog.csdnimg.cn/img_convert/1da3a53f0f8cd791b54fe84482dc2c97.png)


**把文件拷贝到 /opt 目录下:**



cp -r /vagrant/CBL-Mariner /opt


### 构建 VHD 或 VHDX 镜像


**📢 注意:这里有个小问题,关于解析和GO:**


![](https://img-blog.csdnimg.cn/img_convert/8432d4742364263b443d1bf3bf9030c1.png)


**修复:**



export GO111MODULE=on
export GOPROXY=https://goproxy.io
echo ‘47.246.43.224 goproxy.cn’ >>/etc/hosts
echo ‘140.82.121.3 github.com’ >>/etc/hosts
echo ‘nameserver 8.8.8.8’ >>/etc/resolv.conf
echo ‘nameserver 8.8.4.4’ >>/etc/resolv.conf


#### 构建 VHDX 镜像


**镜像放在…/out/images/core-efi:**



cd toolkit
sudo make image REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/core-efi.json


构建过程中,可能存在域名无法解析的问题,可以访问:https://packages.microsoft.com/cbl-mariner/1.0/prod/,手动下载缺少的 rpm 包。


![](https://img-blog.csdnimg.cn/img_convert/3856a0e4582c48c20065cee1f77e63e0.png)


等待很久很久时间后,完成:


![](https://img-blog.csdnimg.cn/img_convert/1e630b4724c54f26e18468cbde76aefc.png)


![](https://img-blog.csdnimg.cn/img_convert/39d074de88337969a9cc499091e6388d.png)


#### 构建 VHD 镜像


**镜像放在…/out/images/core-legacy:**



cd toolkit
sudo make image REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/core-legacy.json


![](https://img-blog.csdnimg.cn/img_convert/3c6220dbfbb37258597a2a402ac8991a.png)


![](https://img-blog.csdnimg.cn/img_convert/dc9c8915b0a984ae01edf2aa39742706.png)


![](https://img-blog.csdnimg.cn/img_convert/5c6c6c24aea26e37dfe56e7a6ff420a2.png)


#### 构建 cloud-init 配置镜像


**镜像放在…/out/images/meta-user-data.iso**



cd toolkit
sudo make meta-user-data


![](https://img-blog.csdnimg.cn/img_convert/6626d4c4ab24caca79b1966e934c8d58.png)


#### 新建并访问主机


使用 `virtualbox` 创建 VHD(X) 虚拟机。


**1、创建新主机**


![](https://img-blog.csdnimg.cn/img_convert/de9eccb5fbc7f219c8c98d9cce6a80b8.png)


**2、选择编译好的 VHD(X) 文件**


![](https://img-blog.csdnimg.cn/img_convert/63b2d77d05f2e046ad2398f2e8b07408.png)


![](https://img-blog.csdnimg.cn/img_convert/1901302ef7e20355eb372b7ef3b936d3.png)


**3、挂载 Meta-User-Data.Iso 镜像**


![](https://img-blog.csdnimg.cn/img_convert/8df0cbe5e7096af935c185f6971d193e.png)


**4、启动并登录虚拟机**


账号密码:



mariner_user/p@ssw0rd


![](https://img-blog.csdnimg.cn/img_convert/79fc6b343445606517d243519f5c0244.png)


![image.png](https://img-blog.csdnimg.cn/img_convert/82df3ff3e2f5ee6d1d0d1055891a2b6d.png)


**总体来说,Linux 的命令都差不多。**


### 构建 ISO 镜像


**镜像放在…/out/images/full**



cd toolkit
sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.json


![](https://img-blog.csdnimg.cn/img_convert/b4c0763c56a1d34580f6dc27df1cc449.png)


![](https://img-blog.csdnimg.cn/img_convert/debe7add52fbd6d2e9accdfd365ff187.png)


![](https://img-blog.csdnimg.cn/img_convert/f9c119c4c31639b756cc0bfcaf911aa4.png)


**生成的 ISO 镜像大概 700M 不到。**


#### 用 ISO 镜像安装系统




### 最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

### 资料预览

给大家整理的视频资料:

![](https://img-blog.csdnimg.cn/img_convert/9f86e5ccd60d26a814f364c2b083bbcf.png)

给大家整理的电子书资料:

  

![](https://img-blog.csdnimg.cn/img_convert/916cb87d30066b7bc0ed6be6d940ab97.png)



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
理的电子书资料:

  

[外链图片转存中...(img-aV5tiUDF-1714371653413)]



**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以点击这里获取!](https://bbs.csdn.net/topics/618542503)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值