如何设置用于无头使用的 linux 服务器?

max*_*zig 7 remote-management headless

考虑一个像这样的无头服务器:一个典型的远程位置的 x86 机器,你可以用一个股票 - 例如 - Ubuntu 映像远程初始化。初始化后,您只能通过 ssh 登录 - 或远程重置它,即您无法访问 BIOS 或引导管理器提示(例如 Grub 1)。

也许某种KVM可用,但KVM的使用非常昂贵,您必须按小时预订。

在这种情况下,人们可能会对启动问题产生偏执。例如:

  1. 如果内核升级失败怎么办?
  2. 早期启动过程中的 fsck-prompt 怎么样?可能,ssh 尚不可用...

还有其他需要注意的问题吗?

对于内核升级,我配置了 grub(旧版),以便menu.lst序言包含

default saved
fallback 2  # counts from 0
Run Code Online (Sandbox Code Playgroud)

第一个条目以:

savedefault fallback
Run Code Online (Sandbox Code Playgroud)

第一个 grub 条目是升级后的内核,第三个是已知的工作内核。另请参阅有关回退引导grub 手册部分

我更改了启动脚本/etc/rc.local(在类似 Debian 的系统上),以便在成功启动的情况下重置默认条目设置:

grub-set-default 0
Run Code Online (Sandbox Code Playgroud)

这个 grub-setup 有效,但例如在 Ubuntu 上,这不是默认设置,必须menu.lst在每次内核更新后手动调整。

我供应

panic=60
Run Code Online (Sandbox Code Playgroud)

作为内核参数,例如在错误root=参数或损坏内核的情况下,系统会在出现错误时自动重新启动。

关于 fsck 问题,我不确定最好的方法是什么。在类似 Debian 的系统上,您可以设置

FSCKFIX=yes
Run Code Online (Sandbox Code Playgroud)

in /etc/default/rcS,它告诉 fsck 默认情况下自动修复。

但是如果自动修复失败,也许我仍然会收到无法远程访问的提示?

或者,我可以通过第六列中的零禁用 fsck 检查/etc/fstab- 如果出现 fs 错误,则只需重新初始化系统并恢复备份 - 从而避免所有 fsck 问题?

Šim*_*óth 6

说真的,如果您的提供商不为极端情况提供免费(或至少便宜)的手动帮助,那么是时候转换了。否则,我认为您的设置非常好。

当您的系统损坏到 fsck 无法修复它时,除了完全重新安装外,别无他法。除非发生致命的硬件故障,否则我实际上还没有看到这种情况发生。

需要注意的一件事。像这样的机器,选择稳定的发行版(Debian、RHEL、SLES),一定要过一段时间才升级(新版本至少稳定6个月)。