Grub

雲伺服器中的時間漂移 - 需要維護 GRUB 配置

  • November 17, 2011

我們在一個受歡迎的主機上託管一個 VPS,並且每天都會經歷幾分鐘的定期時間漂移(大約 7 分鐘)。

Linux 核心:2.6.18-164.11.1.el5 GNU/Linux 發行版:CentOS 版本 5.4(最終版)

我們聯繫了我們的託管服務提供商,他們的支持告訴我們“這是雲伺服器的一個已知問題。要解決此問題,您需要在位於**/boot/grub/menu.lst****的 grub 配置中添加一行**

您需要添加的行是:noapic nolapic divider=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/menu.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

由於您可以訪問串列控制台,我的第一個建議是進行測試設置並臨時執行更改,以便在需要重新啟動時不會給您帶來麻煩。

臨時測試設置

連接到伺服器的串列控制台並重新啟動。當伺服器啟動並顯示 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 提示符下進行名稱補全一樣,您將在引導中看到文件列表分割

引用自:https://serverfault.com/questions/331809