云服务器中的时间漂移​​ - 需要维护 GRUB 配置

云服务器中的时间漂移​​ - 需要维护 GRUB 配置

我们在一个流行的主机上托管一个 VPS,并且每天都会出现几分钟的常规时间漂移(大约 7)。

Linux 内核:2.6.18-164.11.1.el5 GNU/Linux 发行版:CentOS 版本 5.4(最终版)

我们联系了我们的托管服务提供商,他们的支持人员告诉我们“这是云服务器的一个已知问题。要解决这个问题你需要在 grub 配置中添加一行位于:/boot/grub/菜单.lst

您需要添加的行是:noapic nolapic 分隔符=10 nolapic_timer

这应该可以解决这个问题。添加后您将需要重新启动。“

因为我对操作 grub 很谨慎,所以我最担心的是我们的服务器可能无法重新启动 - 我问你们,专业的 *nix 管理员 - 这个文件中到底哪里推荐插入以下内容:

# line from 1&1 for time syncing issue (Case 5163)
noapic nolapic divider=10 nolapic_timer

去吗?请指定具体在哪里,以及命令的顺序是否重要。为什么“title CentOS ...”下面的块缩进?

如果有人能给我概述一下它的工作原理,或者给我指出一个容易理解的资源,那就是我立即寻找的,一个简单概述或对我正在做的事情的基本了解。如果 GRUB 和引导加载程序是内核黑客的深层宝库或类似的东西,那就太好了,推荐的深入资源也非常受欢迎。

这是我现在的/boot/grub/菜单.lst

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
#boot=/dev/sda
#
serial --unit=0 --speed=57600
terminal --timeout=5 serial console

timeout=5

title CentOS (2.6.18-164.11.1.el5)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.18-164.11.1.el5 ro root=/dev/hda1 console=tty0 console=tty
    initrd /boot/initrd-2.6.18-164.11.1.el5.img

最重要的是:我需要知道上面文件中的哪个位置适合粘贴建议的行,这样我就可以放心地在操作 GRUB 配置后重启我的 VPS

答案1

由于您可以访问串行控制台,我的第一个建议是进行测试设置并临时执行更改,以便在您需要重新启动时不会给您带来麻烦。

临时测试设置

连接到服务器的串行控制台并重新启动。当服务器启动并显示 grub 倒计时时,按任意键(例如 SPACE)取消默认启动过程并进入 GRUB 菜单。

它将带你进入一个菜单,在那里你会看到

CentOS(2.6.18-164.11.1.el5)

作为一种选择

e进入命令行编辑选项。

这将向您显示以下几行:

    root (hd0,0)
    kernel /boot/vmlinuz-2.6.18-164.11.1.el5 ro root=/dev/hda1 console=tty0 console=tty
    initrd /boot/initrd-2.6.18-164.11.1.el5.img

按 ↓ 选择核心排队和按压e编辑它。使用箭头键向左移动并写入...按 → 到末尾(可能您已经在那里了)。

注意:如果行对于屏幕来说太长,它将只显示屏幕左侧该行的最后几位,不要被它吓到:-)

您可以在此处添加支持人员给您的额外参数:

... noapic nolapic divider=10 nolapic_timer

因此你的整个内核行将是

    kernel /boot/vmlinuz-2.6.18-164.11.1.el5 ro root=/dev/hda1 console=tty0 console=tty noapic nolapic divider=10 nolapic_timer

您将返回到显示启动命令的上一个屏幕。

只需按下b以便系统可以启动。

如果一切顺利,APIC 驱动程序将关闭并且您的计时器将会滴答作响... :-)

当您想要使更改永久生效时...您可以将它们添加到 grub 文件中,如下所示。

永久改变

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
#boot=/dev/sda
#
serial --unit=0 --speed=57600
terminal --timeout=5 serial console

timeout=5

title CentOS (2.6.18-164.11.1.el5)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.18-164.11.1.el5 ro root=/dev/hda1 console=tty0 console=tty noapic nolapic divider=10 nolapic_timer
    initrd /boot/initrd-2.6.18-164.11.1.el5.img

如果您愿意,请重新启动并享受。

请注意,您可以随时按照我在 grub 中向您展示的操作来解决问题。

万一你最终进入 grub> 提示符 :-)

如果你最终grub>在您的控制台上意外提示

grub> 配置文件 /grub/grub.conf

您可以随时通过输入一个良性命令(例如 configfile 后跟斜杠 (/))并按两次 Tab 键(就像在 bash 提示符下执行名称补全一样)来查看当前分区,然后您将看到启动分区中的文件列表

答案2

这些参数是内核调整。

将这些参数添加到您的内核行:

kernel /boot/vmlinuz-2.6.18-164.11.1.el5 ro root=/dev/hda1 console=tty0 console=tty noapic nolapic divider=10 nolapic_timer


哦,顺便说一句,您可能是指console=ttyS0尝试使用串行控制台。

相关内容