|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
操作系统问题
Harvester 运行在基于 OpenSUSE 的操作系统上。该操作系统是由 elemental-toolkit 生成的工件。以下部分包含信息和提示,以帮助用户排除与操作系统相关的问题。
如何登录到 Harvester 节点
用户可以使用用户名 rancher 和在安装过程中提供的密码或 SSH 密钥对登录到 Harvester 节点。
用户 rancher 可以在不输入密码的情况下执行特权命令:
# Run a privileged command rancher@node1:~> sudo blkid # Or become root rancher@node1:~> sudo -i node1:~ # blkid
我该如何安装软件包?为什么有些路径是只读的?
操作系统文件系统像容器镜像一样,是基于镜像的,并且在某些目录之外是不可变的。
我们建议使用 toolbox container 来运行未打包在 Harvester 操作系统中的程序以进行调试。请参见 这篇文章 以了解如何构建和运行 toolbox 容器。
Harvester 操作系统还提供了一种临时启用读写模式的方法。请按照以下步骤操作:
|
启用读写模式可能会在文件被修改时破坏您的系统。请自行承担风险使用。 |
-
对于版本
v0.3.0,我们需要先应用一个变通方法,以在启用读写模式后 使某些目录不被覆盖。在运行的 Harvester 节点上,以 root 身份运行以下命令:cat > /oem/91_hack.yaml <<'EOF' name: "Rootfs Layout Settings for debugrw" stages: rootfs: - if: 'grep -q root=LABEL=COS_STATE /proc/cmdline && grep -q rd.cos.debugrw /proc/cmdline' name: "Layout configuration for debugrw" environment_file: /run/cos/cos-layout.env environment: RW_PATHS: " " EOF -
重启系统以进入 GRUB 菜单。按 ESC 键以停留在菜单上。
-
在第一个菜单项上按
e。将rd.cos.debugrw附加到linux (loop0)$kernel $kernelcmd行。按Ctrl + x启动系统。
如何永久编辑内核参数
|
以下步骤是一个变通方法。一旦有永久解决方案,Harvester 将通知社区。 |
-
以读写模式重新挂载 state 目录:
# blkid -L COS_STATE /dev/vda2 # mount -o remount,rw /dev/vda2 /run/initramfs/cos-state
-
编辑 grub 配置文件并将参数附加到
linux (loop0)$kernel $kernelcmd行。以下示例添加了一个nomodeset参数:# vim /run/initramfs/cos-state/grub2/grub.cfg menuentry "${display_name}" --id cos { # label is kept around for backward compatibility set label=${active_label} set img=/cOS/active.img loopback $loopdev /$img source ($loopdev)/etc/cos/bootargs.cfg linux ($loopdev)$kernel $kernelcmd ${extra_cmdline} ${extra_active_cmdline} nomodeset initrd ($loopdev)$initramfs } -
重启以使更改生效。
如何更改默认的 GRUB 启动菜单项
要更改默认项,首先检查菜单项的 --id 属性。GRUB 菜单项位于以下文件中:
-
/run/initramfs/cos-state/grub2/grub.cfg:包含默认、备用和恢复项 -
/run/initramfs/cos-state/grubcustom:包含调试项
在以下示例中,项的 ID 是 debug。
# cat \
/run/initramfs/cos-state/grub2/grub.cfg \
/run/initramfs/cos-state/grubcustom
<...>
menuentry "${display_name} (debug)" --id debug {
search --no-floppy --set=root --label COS_STATE
set img=/cOS/active.img
set label=COS_ACTIVE
loopback loop0 /$img
set root=($root)
source (loop0)/etc/cos/bootargs.cfg
linux (loop0)$kernel $kernelcmd ${extra_cmdline} ${extra_passive_cmdline} ${crash_kernel_params}
initrd (loop0)$initramfs
}
您可以通过运行以下命令来配置默认项:
# mount -o remount,rw /run/initramfs/cos-state # grub2-editenv /run/initramfs/cos-state/grub_oem_env set saved_entry=debug
如有必要,您可以通过运行命令 grub2-editenv /run/initramfs/cos-state/grub_oem_env unset saved_entry 来撤销更改。
如何调试系统崩溃或挂起
收集崩溃日志
如果系统崩溃时内核恐慌跟踪未记录在系统日志中,找到崩溃日志的一个可靠方法是使用串行控制台。
要启用将内核消息输出到串行控制台,请按照以下步骤操作:
-
启动系统进入 GRUB 菜单。按 ESC 键以停留在菜单上。

-
在第一个菜单项上按
e。将console=ttyS0,115200n8附加到linux (loop0)$kernel $kernelcmd行。按Ctrl + x启动系统。
根据您的环境调整 控制台选项。*确保*在行末添加
console=字符串。 -
连接到串行端口以捕获日志。