我正在寻找一个 Linux live 系统,它允许我通过 SSH 调查我的服务器的启动故障,该服务器位于我的桌子下面,并且出于节能原因没有显卡。我有时会犯配置/管理错误,导致 SSH 服务器启动之前启动失败。
在这种情况下,我希望能够将 USB 记忆棒插入实时系统并重新启动(UEFI 配置为在 SSD 之前启动 USB)。然后,系统应该在没有交互的情况下启动 DHCP 和 SSH 服务器,以便我可以从客户端上找出 IP 地址ifconfig
(通过有根据的猜测)并连接到 SSH 服务器。
目前,我必须关闭服务器,插入显卡,将键盘连接到它,而不是上面的操作。这很好,但并不理想。
我尝试了 Ubuntu 17.04 桌面版和服务器版。它们在启动 DHCP 或 SSH 服务器之前都会永远等待输入。一般来说,搜索很困难,因为操作系统不会公布所需的功能(只是它们包含 DHCP 和 SSH,但在启动时不包含)。
答案1
正如 @RuiFRibeiro 在他的评论中所说,这就是串行控制台的用途。 USB 转 RS-232 串行适配器很便宜(5-10 美元),零调制解调器电缆也很便宜。
顺便说一句,根据华擎 X99 Extreme 规格页面,您的主板上有一个 COM 端口接头。大多数主板都是这样。您所需要的只是将其从主板接头连接器延伸到后面板插槽之一上的 DB-9(或 DB-25)串行连接器的电缆套件。这些通常只需花费几美元,与 USB 转 RS-232 适配器的价格大致相同。
设置这个将是较少的比让实时系统执行您想要的操作更有效 - 并且将在引导失败的确切位置为您提供控制台访问权限(通常使用 initrd 的 root 登录提示),并且可以将 grub 配置为使用串行控制台。
但是,如果您坚持使用实时系统而不是串行控制台,则您将必须构建或定制自己的系统。他们中没有一个会完全按照你想要的去做......幸运的是,他们中的大多数(特别是那些面向救援和恢复的)将非常接近,并且只需要很少的改变。由于您的服务器根本没有显卡,因此您应该选择一个不会尝试启动图形控制台的服务器。
您似乎对 dhcp 客户端和 dhcp 服务器之间的区别有点困惑。 dhcp 服务器给出 IP 地址等其他已配置的网络接口上的计算机(不是其本身)。对于此任务,您需要将引导系统设置为 DHCP 客户端(并且在网络上的其他位置具有 DHCP 服务器)或配置为具有静态 IP 地址。
如果您所说的服务器是 LAN 的 DHCP 服务器,那么最好将网络上的其他计算机配置为辅助 DHCP 服务器。 dhcpd 不必一直在其上运行,它只需要安装该软件并准备好在需要时手动启动即可。它还需要主 DHCP 服务器配置文件的最新副本......或者至少需要一个最小配置,根据其 MAC 地址将已知 IP 地址分配给主服务器。例如在 ISC dhcpd 中dhcpd.conf
:
host server { hardware ethernet xx:xx:xx:xx:xx:xx; fixed-address 192.168.1.1; }
大多数Live系统USB/CD/等(包括gparted和clonezilla等救援型系统)已经内置了dhcp客户端支持,并且可以配置(或修改)以在LAN上拥有静态IP。同样,大多数都会安装 sshd 并配置为在有可用的网络接口时立即启动。
我会推荐克隆属USB 映像是构建您自己的实时救援系统的良好基础。与大多数不同,它已经面向文本/控制台使用而不是图形,并且因为它专注于备份和恢复,所以它已经拥有安装和使用 Linux 已知的几乎所有文件系统可能需要的所有工具。
当您自定义 Live 系统时,请记住更改默认密码(通常为空,或者一些琐碎且众所周知的密码)并安装 SSH 公钥的副本。