我们在一个流行的主机上托管一个 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
尝试使用串行控制台。