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 - ``` - ������ 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 ``` - 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. ������������������ - + - ������������
������������������������������������������������
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 ```
- 通过 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
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
Good idea.
```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/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
Ok.
Thanks, Chenglong
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
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
- 通过 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.
1,2都不需要,执行了./run就知道如何操作了 Thanks, Yinsi
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
On Tue, Dec 15, 2020 at 03:52:15PM +0800, Liu Yinsi wrote:
- 通过 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.
1,2都不需要,执行了./run就知道如何操作了
ok
docker 镜像需要用户自己下载
Thanks, Chenglong
Thanks, Yinsi
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
- 检查rootfs
定制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. 检查关键配置
这些检查项没有脚本化吗 Thanks, Yinsi
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
On Tue, Dec 15, 2020 at 02:59:03PM +0800, Liu Yinsi wrote:
- 检查rootfs
定制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. 检查关键配置
这些检查项没有脚本化吗
docker-rootfs 脚本创建过程中如果失败会报错。
Thanks, Chenglong
Thanks, Yinsi
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
```
2. 检查关键配置
这些检查项没有脚本化吗
docker-rootfs 脚本创建过程中如果失败会报错。
Thanks, Chenglong
Thanks, Yinsi
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 已删除
不管有没有这个文件,在脚本里面都删删除,这样这检查项就都免了。 Thanks, Yinsi
- 打包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