FAQ
升级失败-救援模式
现象描述
在较老版本中,使用方案 1 升级完成后,无法进入操作系统且无法通过回退方式恢复源操作系统,可通过使用 ISO 镜像光驱进入救援模式进行系统救援。
处理步骤
此处以 x86_64 系统为例。
获取标准 ISO 发布镜像。(例如 openEuler-20.03-LTS-SP1-everthing-x86_64-dvd.iso)
光驱挂载 ISO 镜像并重启机器通过光驱引导。
在光驱的 GRUB 菜单界面中进入“系统救援”,具体操作如下:
进入“救援模式”后,按下数字键 1 选择 Continue。
按下回车键后,进入 Rescue Shell
执行以下命令检查当前环境是否存在 x2openEuler-upgrade 软件包,若存在则跳转至 7。
find / -name x2openEuler-upgrade
为当前环境配置可用的 ip 地址。
执行以下命令,开启 SSH 服务,上传 x2openEuler-upgrade 软件包至 /root 目录下。
mv /etc/ssh/sshd_config.anaconda /etc/ssh/sshd_config systemctl restart sshd scp root@xxx.xxx.xxx.xxx:/xxx/x2oepnEuler-upgrade* /root/
执行以下命令解压安装包获取 x2openEuler-upgrade 软件包并进行安装。
ln -s /usr/bin/python3 /usr/bin/python rpm -ivh /root/x2openEuler-upgrade-* --nodeps source /root/.bashrc
执行以下命令,修改 x2openEuler-upgrade 配置文件,不对 /run/install 进行回滚。
vim /mnt/sysroot/etc/sut/sut.conf
执行以下命令,进行系统救援。
x2openEuler rescue -p /mnt/sysroot/
系统救援完成后,执行以下命令重启系统。
reboot
说明: 系统重启之后,SELinux 会进行 relabel 动作,物理机可能耗时较长。relabel 动作触发完成后,系统会自动进行重启,此时才真正回退至最初的源操作系统。
执行以下命令进行系统救援结果验证。
cat /etc/os-release
说明:
- 救援完成后,可执行源操作系统命令进行验证。
- 根据业务需求,执行业务恢复或适配脚本。
升级后部分命令无法执行
现象描述
升级完成后,目标操作系统部分命令无法正常执行,报错原因为“找不到符号链接”。
可能原因
升级前配置了高版本的动态依赖库,升级后会出现系统冲突。
处理步骤
排查 /etc/ld.so.conf.d 目录下是存在和系统目录下的 so 文件冲突的配置。
升级过程漫长
现象描述
源操作系统升级至目标操作系统过程耗费时间过长。
可能原因
固定备份目录下存在大文件。
处理步骤
执行以下命令查看升级节点的文件系统,查看固定备份目录下是否存在大文件。
df -h
如有需要将对应目录填写在排查目录中。
升级前检查 grub2 版本不满足要求
现象描述
升级前检查报告 grub2 版本不满足要求。
处理步骤
若升级的目标系统为 openEuler-20.03-LTS-SP1,需要挂载 update 源。
升级前检查报错
现象描述
升级前检查报错,回显信息如下:
Abnormal exit,error:/etc/x2openEuler/database_2.0.0.630/centos7.4/x86_64/primary not exist
处理步骤
访问 OEPKGS,根据报错回显信息,获取对应版本数据包,例如“缺少 CentOS 7.4 的数据库包需要安装 x2openEuler-database-centos7.4-2.0.0.630-1.noarch.rpm,x2openEuler-database-centos7.4-openEuler20.03-LTS-SP1-2.0.0.630-1.noarch.rpm”。
上传获取的数据包至部署 x2openEuler 工具的环境,并使用 SSH 远程登录工具登录。
进入执行以下命令进行安装,此处以安装 CentOS 7.4 对应版本数据包为例。
rpm -ivh x2openEuler-database-centos7.4-2.0.0.630-1.noarch.rpm rpm -ivh x2openEuler-database-centos7.4-openEuler20.03-LTS-SP1-2.0.0.630-1.noarch.rpm
进入升级任务,重新开始升级前检查。
QEMU相关问题处理
现象描述1
安装了 qemu-kvm 软件,在操作系统升级之后,发现软件被卸载。
处理步骤
执行以下命令安装 qemu 软件后,再次启动虚拟机。
yum install qemu
现象描述2
系统升级后安装 qemu,启动虚拟机报错如下:
Process exited prior to exec: libvirt: QEMU Driver error : Unable to get devmapper targets for /data1/var/lib/scevm/instances/xxxxxxx/disk.qcow2: Success
处理步骤
由于主机没有加载 dm_mod.ko 导致,可以通过 modprobe dm_mod 来解决该异常,执行如下命令:
modprobe dm_mod
现象描述3
升级完成后虚拟机启动提示 machine 不匹配相关异常。
处理步骤
由于升级后 machine 不匹配,首先执行以下命令查询 openEuler 支持的 machine 类型。
qemu-kvm -machine help
之后执行以下命令修改对应虚拟机的 machine 参数为 openEuler 支持的类型,并再次启动虚拟机。
virsh edit
工具 Web 服务启动失败,提示 MariaDB is not installed
现象描述
在安装 x2openEuler 工具之前已通过编译安装的方式安装了 MariaDB。x2openEuler 工具安装完成后启动工具 web 服务时,返回如下信息。
图 15 启动 web 服务回显信息
可能原因
x2openEuler 工具不能通过 mysql.sock 连接到 MariaDB。
处理步骤
执行以下命令查询 MariaDB 进程的 PID。
ps -ef | grep mariadb
获取到 mariadb 的 PID 后执行以下命令终止进程。
kill -9 PID
注释 /etc/my.cnf 中 socket 参数。
执行以下命令编辑 my.cnf 文件,按下 “i” 进入编辑模式。
vi /etc/my.cnf
注释 [mysqld] 字段下的 socket 参数。
# socket=/var/lib/mysql/mysql.sock
按 “ESC”,输入 “:wq”,按 “Enter” 保存并退出。
执行以下命令重启 MariaDB 服务。
systemctl start mariadb.service
重新启动 x2openEuler 工具 web 服务。