On Tue, Dec 15, 2020 at 02:54:07PM +0800, Liu Yinsi wrote:
On Tue, Dec 15, 2020 at 09:50:56AM +0800, Wang Chenglong wrote:
Signed-off-by: Wang Chenglong 18509160991@163.com
doc/tutorial.md | 87 ++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 41 deletions(-)
diff --git a/doc/tutorial.md b/doc/tutorial.md index e6f8491..3110685 100644 --- a/doc/tutorial.md +++ b/doc/tutorial.md @@ -152,29 +152,20 @@ job yaml 是测试描述和执行的基本单元,以[YAML](http://yaml.org/YAM
- 获取对应 os 版本的 rootfs(以 openEuler 为例)
- 通过 docker 获取 rootfs
- 1) 下载 openEuler 官方提供的 docker 镜像压缩包
```
2) 加载 docker 镜像
```bash
docker load -i openEuler-docker.aarch64
```
```
2) {compass-ci}/container/docker-rootfs 可将 '.tar.xz' 格式的 docker 镜像包制作成 rootfs
```bash
./{compass-ci}/container/docker-rootfs/run openEuler-docker.aarch64.tar.xz /tmp/openeuler-rootfs-20.03
```
3) 启动 openEuler 容器
```bash
docker run -id openeuler-20.03-lts
```
4) 拷贝 docker 的 rootfs
```bash
docker cp -a docker run -d openeuler-20.03-lts:/ openEuler-rootfs
这四步不是在代码里面了吗,这里就写: 使用docker-rootfs工具,输入docker镜像压缩包,即可获得rootfs ```bash cd compass-ci/container/docker-rootfs && ./run ```
I delete 3 and 4. But the 1 and 2 need to be done by the user.
Thanks, Chenglong
- 通过 qemu.img(qcow2格式)获取 rootfs (openEuler为例)
1) 下载 openEule r官方网站提供的 qcow2 格式镜像
1) 下载 openEuler 官方网站提供的 qcow2 格式镜像 ```bash wget https://repo.openeuler.org/openEuler-20.03-LTS/virtual_machine_img/aarch64/openEuler-20.03-LTS.aarch64.qcow2.xz ```
@@ -183,45 +174,59 @@ job yaml 是测试描述和执行的基本单元,以[YAML](http://yaml.org/YAM cd {compass-ci}/container/qcow2rootfs ./run openEuler-20.03-LTS.aarch64.qcow2.xz /tmp/openEuler-rootfs
ditto Thanks, Yinsi
```
- 定制rootfs
1. 使用chroot命令切换到 rootfs (此步骤需要 root 权限)
- 检查rootfs
1. 使用 chroot 命令切换到 rootfs (此步骤需要 root 权限) ```bash chroot openEuler-rootfs ```
2. 根据个人需要安装并配置服务
a. 修改 root 密码
b. 配置 ssh 服务
c. 检查系统时间
d. 如果使用 docker 制作 osimage 还需要以下操作:
> 1. 安装所需版本内核
> 2. 从 centos 官方网站下载内核rpm包
> 3. 使用 yum 进行安装
> 4. 删除 docker 环境变量文件
- 退出 rootfs,并打包
```bash
cd $rootfs
find . | coip -o -Hnewc |gzip -9 > $os_name.cgz
```
2. 检查关键配置
a. 查看链接 /sbin/init
> 确定系统以systemd方式启动
```bash
ls -l /sbin/init
/sbin/init -> ../lib/systemd/systemd
```
b. 查看链接 /etc/localtime
> 确定系统时区正确
```bash
ls -l /etc/localtime
/etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
```
c. 如果使用 docker 制作 osimage 还需以下操作:
> docker 环境变量文件 /.dockerenv 已删除
- 打包rootfs
- cd $rootfs
- find . | coip -o -Hnewc |gzip -9 > $os_name.cgz
- 打包驱动软件/内核源码
- 如果想要使用 {compass-ci} 未提供的内核版本, 可以在 rootfs 中手动安装对应版本内核,并将驱动软件/内核源码进行打包。
- find /lib/modules/* | cpio -o -Hnewc | gzip -9 > /modules-$os_name.cgz
- find /usr/src/kernels/* | cpio -o -Hnewc | gzip -9 > /headers-$os_name.cgz
#### FAQ -1. 日志报错 “Unable to mount root fs on unknown-block” +1. 日志报错 “Unable to mount root fs on unknown-block” - 问题现象 ```bash [ 0.390437] List of all partitions:
[ 0.390806] No filesystem could mount root, tried:
... [ 0.399404] Memory Limit: none [ 0.399749] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]--- ```[ 0.390806] No filesystem could mount root, tried: [ 0.391489] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
- 解决方法
- 1)启动内存不足,增加内存可解决。 2)内核文件权限不足,给予 644 权限。
- 系统运行缓慢
问题现象
打包镜像体积过大,会消耗很大内存
-- 2.23.0