我正在尝试使用netconsole
以下文档通过本地网络上的以太网接口将内核启动消息记录到另一个设备: https: //www.kernel.org/doc/Documentation/networking/netconsole.txt,这是我从asnwer获得的另一个问题。
我通过 Debian Netinstall 直到配置了网络,然后了解到ip address
接口是enp2s0
,IP 地址是192.168.88.17
,MAC 是d0:50:99:83:4d:25
。我打开路由器的界面检查IP是否保持租用。
我重新启动并修改了内核的启动参数:
setparams 'Graphical install'
set background_color=black
linux /install.amd/vmlinuz vga=788 --- quiet
initrd /install.amd/gtk/initrd.gz
到:
setparams 'Graphical install'
set background_color=black
linux /install.amd/vmlinuz vga=788 [email protected]/enp\
2s0,[email protected]/14:f6:d8:b3:99:5d
initrd /install.amd/gtk/initrd.gz
并F10使用该参数启动。我立即将其复制syslog
到 USB 驱动器。我看了一遍。和表明内核参数已被接受syslog
。cat /proc/cmdline
启动之前,在目标 Fedora 工作站上,我nc -u -l 6666
监听端口,但没有任何显示。
我尝试删除vga=788
并添加ignore_loglevel
,但仍然没有消息。
lsof
Debian Netinstall 上没有。
我应该检查什么才能使其正确?我尝试首先使用 Debian Netinstall 来完成此操作,以便我可以使用导致麻烦的类似映像来完成此操作。
为了进行测试,我尝试netconsole
在配置网络时调用正在运行的 Debian Netinstall,但得到以下信息。
~ # insmod netconsole neconsole=@/,@192.168.88.21/
insmod: ERROR: could not load module netconsole: No such file or directory
~ # modeprobe netconsole
modprobe: FATAL: Module netconsole not found in directory /lib/modules/5.10.0-22-amd64
~ # lsmod | grep console
它看起来netconsole
根本不包含在 Debian Netinstall 中。获取内核启动消息的其他选项有哪些?
可以从运行 Debian 安装程序的计算机获取日志
ssh
。syslog
例如,这允许我从带有 USB 键盘的计算机上获取仅在 GRUB2 屏幕上工作但在内核启动后不工作的信息。为此,network-console
需要预先播种。我选择通过直接在 GRUB2 中将 URL 添加到内核引导参数来通过本地网络进行预置。Debian 安装程序文档中提供了其他预置方法。这是对我有用的预置配置文件:它由网络上的机器提供:
这假设您将
ssh
公钥保存为id_rsa.pub
,这是 RSA 的默认设置。最后两行是目标机器访问提供的预置文件和之后配置时的公钥network-console
。要使安装程序自动使用 DHCP 配置网络连接并加载预置文件,只需使用预置配置文件的 URL命中e并添加到 Linux 内核参数即可。auto=true priority=critical url=
以下是我的引导选项在 Debian Netinstall 安装程序上的样子:这是 Trisquel Netinstall 安装程序中的另一个:
在 Debian 上,
firmware=never
还可能需要跳过要求安装非自由固件以进行网络配置的步骤,但将其添加为 GRUB 菜单项中的内核引导参数对我来说没有任何效果。Trisquel 上不需要它,因为 Trisquel 从不提供非免费固件。如果您有Help
GRUB2 菜单选项,则可以从boot
提示符中进行预置:此行遵循以下示例: https: //www.debian.org/releases/stable/amd64/apbs02.en.html#preseed-bootparms-examples
以上假设您的计算机上有一个网络设备可供选择。否则,安装程序可能会暂停询问您选择哪一个。
ssh
以用户身份进入机器installer
。您可以仅从 HTTP 服务器输出中获知 IP 地址。不会
network-console
立即提供终端。相反,它会要求您选择三个选项之一,包括是否要照常继续安装过程或进入终端。scp
并且sftp
在此设置下不起作用。我nano /var/log/syslog
逐屏使用并复制了日志。你可以用Ncat复制
syslog
!打开它以侦听计算机上的端口并将其输出重定向到文件。保持其打开并连接到远程计算机。
选择
Start shell
. 将日志发送到远程端口。