我正在尝试设置一个服务器,以在 UEFI 环境和 GRUB2 上通过 PXE 启动 opensuse-15.5。我发现这个适用于 Suse 的教程效果很好。我有一个客户端获取 IP 地址,从同一台机器上的 TFTP 下载一些文件,并且我还设置了一个 NFS 服务器。
问题是,我发现的每个教程似乎都专注于在客户端安装新操作系统,而这不是我所需要的。我真正需要的是加载一个非常基本的、极简的操作系统,以便能够从终端运行一些命令。没有别的。我不需要加载 Live 映像或运行安装程序。
按照教程中的说明,我遇到了客户端无法连接到存储库以开始安装操作系统的情况。之后,我所做的是将initrd和linux映像替换为从尝试启动的同一客户端中的操作系统安装中获得的映像。此外,我在客户端(同一安装)中创建了根文件系统的映像并将其放置在服务器中,以便可以通过 NFS 访问它。在此之后,结果是客户端加载了initrd,然后是linux,但它在完成之前就停止了,因为它(可能)正在尝试设置显卡。该行提到了drm 和 i915(抱歉,我现在没有客户端,但我明天会更新正确的消息)。
我甚至不确定我必须加载哪个 Linux 映像以及我必须传递给 GRUB 的参数才能使一切正常工作。我一直试图从 GRUB 手册和其他来源中了解,但我的问题多于确定性。有人能告诉我……:我应该将哪些命令添加到grub.cfg(以及我应该删除哪些命令)?我应该使用哪个 Linux 映像?以及可能想到的任何信息来源?
非常感谢您抽出时间。
加布斯。
编辑:崩溃点与 graphics/drm/i915 无关。显示的最后一条消息(大约一分钟)将显示graphics/drm/i915,但问题实际上紧接着出现,在dracut initqueue hook处。据我所知,在使用dd制作根分区映像时,它会以某种方式开始寻找已安装并包含在fstab中的内存条。
重新制作图像后(这次通过 NFS 将其发送到服务器),我可以看到问题已解决(见图)
现在的问题(如下图所示)处于切换根阶段。我真的不知道这是什么意思,但我会做一些研究。
下一张图片是net/grub.cfg。我编辑了这个文件,删除了install和instsys命令,因为我认为它们是无关紧要的(因为我不是要安装操作系统)。我还尝试了这个grub.cfg,没有root和nfsroot命令(根据我的理解),这两个命令将使用硬盘中的文件系统,而不是服务器中的文件系统,整个设置似乎可以正常工作。只有当它需要从 NFS 服务器获取根文件系统时,我才会收到第二张图片中的错误。抱歉,第三张图片很模糊。
此时,我猜想文件系统有问题。我用dd制作了映像,将其移动到服务器,然后使用mount -o loop /image /srv/tftpboot/openSUSE-XXX/rootfs挂载它。我读到对分区进行映像与对整个磁盘进行映像是不一样的。此外,btrfs在映像方面有些特殊。是否有特定的方法可以做到这一点?抱歉更新延迟。再次感谢您的帮助和评论时间。