🌲 前言
CBL 代表 Common Base Linux,Mariner 的目标是用作微软工程团队的内部 Linux 发行版,以构建云基础设施和边缘产品和服务。
☀️ 介绍
Mariner 是开源的,它在微软的 GitHub 组织下有自己的存储库。目前没有提供 Mariner 的 ISO 或映像,需要自行编译,但是 repo 有在 Ubuntu 18.04 上构建它们的说明。
文末有博主编译好的 ISO 文件,可以直接下载安装体验!
此GitHub 页面中列出了一系列先决条件,大致包括
Docker
、RPM 工具、ISO 构建工具和 Golang 等。
🍉 编译 CBL 镜像文件
❤️ 接下来,我们就本地编译一个镜像文件来玩玩!
编译环境准备
官方建议使用 ubuntu 18.04 版本进行编译,其他版本不知道是否可以!
vagrant 安装 ubuntu 18.04
由于需要在 Ubuntu 18.04 上进行构建,因此使用 vagrant 本地快速创建一台虚拟机环境。
1 | |

连接主机修改密码
1 | |
先决条件配置
添加一个 backports 存储库以安装最新版本的 Go:
1 | |

1、安装所需的依赖项:
1 | |
2、推荐安装 pigz ,但不是必须,用于更快的压缩操作:
1 | |

3、修复 go 1.15 link:
1 | |
4、安装 docker:
1 | |
配置完成后建议关闭主机:
1 | |
下载 CBL-Mariner 项目
由于官方源太慢,于是我 fork 到了我的 gitee 仓库:https://gitee.com/luciferlpc/CBL-Mariner。
1 | |
下载到本地之后,上传到服务器主机中:

编辑 Vagrantfile 文件,挂载当前目录到主机 /vagrant 目录:
重新启动 Ubuntu 主机:
1 | |
或者通过 ftp 等工具进行上传!
同步到最新的稳定版本:
1 | |
把文件拷贝到 /opt 目录下:
1 | |
构建 VHD 或 VHDX 镜像
📢 注意:这里有个小问题,关于解析和GO:

修复:
1 | |
构建 VHDX 镜像
镜像放在…/out/images/core-efi:
1 | |
构建过程中,可能存在域名无法解析的问题,可以访问:https://packages.microsoft.com/cbl-mariner/1.0/prod/,手动下载缺少的 rpm 包。

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


构建 VHD 镜像
镜像放在…/out/images/core-legacy:
1 | |

构建 cloud-init 配置镜像
镜像放在…/out/images/meta-user-data.iso
1 | |

新建并访问主机
使用 virtualbox 创建 VHD(X) 虚拟机。
1、创建新主机

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

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

4、启动并登录虚拟机
账号密码:
1 | |
总体来说,Linux 的命令都差不多。
构建 ISO 镜像
镜像放在…/out/images/full
1 | |


生成的 ISO 镜像大概 700M 不到。
用 ISO 镜像安装系统
终端模式安装
1、创建新主机:

后面选项全都默认即可。
2、挂载上面生成的 ISO 镜像:
3、启动主机并安装:
选择安装模式:分为终端和图形化,本次选择终端安装。

选择完全安装:
选择系统安装盘:

跳过磁盘加密:
设置主机名:
创建用户和密码:密码规则要求较高。
开始安装:
安装完重启:
图形化模式安装
1、创建新主机:

后面选项全都默认即可。
2、挂载上面生成的 ISO 镜像:
3、启动主机并安装:
选择安装模式:分为终端和图形化,本次选择图形化安装。
选择完全安装:
选择接受协议:
不加密磁盘:
创建用户密码:

开始安装:

安装完重启:
重启后连接:
⭐️ 至此,CBL-Mariner 已经成功安装体验过!
❄️ 写在最后
如果不想自己编译 ISO 镜像的朋友,可以直接下载我编译好的镜像安装体验!
❤️ 可以关注公众号:Lucifer三思而后行,菜单栏自取!❤️


