
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
1. 获取对应 os 版本的 rootfs(以 openEuler 为例) - 通过 docker 获取 rootfs - + 1) 下载 openEuler 官方提供的 docker 镜像压缩包 - + ```bash wget https://repo.openeuler.org/openEuler-20.03-LTS/docker_img/aarch64/openEuler-... - ``` - 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 ```
- 通过 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/o... ``` @@ -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
``` - 2. 定制rootfs - 1. 使用chroot命令切换到 rootfs (此步骤需要 root 权限) + + 2. 检查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 环境变量文件 - - 3. 退出 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 已删除 + + 3. 打包rootfs + ```bash + cd $rootfs + find . | coip -o -Hnewc |gzip -9 > $os_name.cgz + ``` + + 4. 打包驱动软件/内核源码 + 如果想要使用 {compass-ci} 未提供的内核版本, 可以在 rootfs 中手动安装对应版本内核,并将驱动软件/内核源码进行打包。 + ```bash + 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.390806] No filesystem could mount root, tried: [ 0.391489] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ... [ 0.399404] Memory Limit: none [ 0.399749] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]--- ``` - 解决方法 - + 1)启动内存不足,增加内存可解决。 2)内核文件权限不足,给予 644 权限。 - + 2. 系统运行缓慢 - + - 问题现象
打包镜像体积过大,会消耗很大内存 -- 2.23.0