最近,在一台已經裝有Ubuntu 的機器上,由於測試的需求要再安裝另一個作業系統
CentOS。在CentOS安裝完畢之後,重新開機,進入CentOS的開機選單,選擇要進入
Ubuntu時卻出現錯誤 訊息進不去,但相反的卻可以進去到CentOS。
(2)Try and Error:
此時選擇進入CentOS,在命令列模式下執行以下指令:
(一):
[root@CentOS5 /]# sudo grub
(二):此指令會在各個分割區去尋找是否有 kernel 為 2.6.28-19-generic 的檔案,也就是
Ubuntu的Kernel
[root@CentOS5 /]#find /boot/vmlinuz-2.6.28-19-generic
(三):執行 find 命令的結果卻是:
[root@CentOS5 /]#Error 15: File not found
說明:
由於在CentOS上找不到 vmlinuz-2.6.28-19-generic 這個檔案,所 以,也就無法透過menu.lst 去 增加Ubunutu 的開機 選項。因為就算添加,在CentOS的開機選單上仍然是無法正常執行
(3)問題發生原因:
原因在於一CentOS 和 Ubuntu的 檔案系統的 Inodes 大小是不同的。
CentOS檔案系統的Inodes是128KB,而Ubuntu是256k,所以CentOS
的Grub 辨識不了 Ubutu。但是相反的,Ubuntu的 Grub 卻能辨識CentOS
祥細的討論可參考以下這一篇文章:
Grub開機問題
(4)解決方法:
即然CentOS的Grub辨識不了 Ubutu,那麼我們只好使用Ubuntu的Grub了。
而這也是不更改現在分割區的indoes大小的唯一辦法了。
使用 Ubuntu 的 live cd 去更改 Grub,把Grub設成是Ubuntu。
祥細可以參考以下這一篇文章:
Ubuntu設定Grub
步驟如下:
(一)
使用 live cd 進入 ubuntu,並開啟命令列模式
(二)
sudo grup
(三) :此步驟必須明確知道Ubuntu是裝在那顆硬碟的那個分割區。本例是第1顆硬碟的第1個分割區。
root (hd0,0)
(四)
setup (hd0)
(五)
exit
以上步驟完成之後,grub就由原本的centos改成是ubuntu了。開機即可進入ubuntu。在進入ubuntu後,開啟命令列模式,進行以下操作:
(一)
sudo grub
(二)
find /boot/vmlinuz-2.6.18-194.el5PAE (查centos 的 kernel 檔案)
(三)
執行結果如下: (hd0,2) 發現找到了,沒有出現錯誤訊息出來。 此時,我們可以把centos的選項 增加到 ubuntu 的 menu.list 內。
(四)
sudo vim /boot/grub/menu.lst
(五)
title CentOS 5 (2.6.18-194.el5PAE) root (hd0,2) kernel /boot/vmlinuz-2.6.18-194.el5PAE ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.18-194.el5PAE.img
(六)
存檔重新開機