之前一直使用的是winXP+Ubuntu的雙系統,後來winXP出現了些問題,而且越來越慢,好吧,既然工作的主系統是Unbutu,那麼從使用者體驗上來說,win7無疑是更好的選擇.
覆蓋安裝win7後,Ubuntu的啟動項直接不見了,手上又沒有阿j哥的Ubuntu的安裝盤,只能用工具去引導了.
網上很多相關資料都是Ubuntu老的版本的,掙紮了幾個小時後,終於搞定了.
所需工具:1.grub4dos 2.Ubuntu的livecd或者u盤中的linux系統,我用的是KNOPPIX.
準備好後就可以動手了。
1.進livecd的Ubuntu或u盤中的linux,找到:檔案系統/boot/grub/grub.cfg,用記事本開啟,記下ubuntu的啟動命令(有很多個,我們只需要第一個);
2.安裝grub4dos,即解壓後把grldr,grldr.mbr,menu.lst粘到X盤(win7所在分區)。
3.X盤建立boot.ini,鍵入[boot loader]
[operating systems]
C:\grldr.mbr="grub4dos"
;
4.在menu.lst中鍵入之前記下的ubuntu啟動資訊(不同電腦,系統參數不同)
title Unbuntu 10.10
root (hd0,1)
kernel /boot/vmlinuz-2.6.35-24-generic root=UUID=1fe21987-20c1-4eb1-9a8a-c943e53b2f7e ro quiet splash
initrd /boot/initrd.img-2.6.35-24-generic
boot
5.重啟,選grub4dos,再選Unbuntu 10.10,可愛的logo出現了。
也可以直接用grub4dos的commondline來進系統,不過麻煩了。
裝pe的話會順壞grub4dos,重複2->5步驟即可。
就是這樣。
這篇是一年前寫的文章,當時發在校內上了,看的人也不多,結果當時就沒怎麼在意。
但這兩天剛好又在倒騰電腦,發現這文章寫得真是 。。。 爛。
說明不清楚,還有拼字錯誤,想起了一句話:錯誤的注釋比沒注釋更可怕。
改正如下:
假設電腦上已裝有Ubuntu,重裝win7到C盤後引導項被刪除。為重新引導ubuntu,我們先在win7上裝grub4dos。
原理是利用win7的bootmgr。
準備軟體:grub4dos軟體。
步驟:
1.在X盤中建立boot.ini,在裡面寫入
[boot loader]
[operating systems]
C:\grldr.mbr="grub4dos"
這樣在開機的時候bootmgr就能從boot.int中讀取啟動資訊,在次啟動的時候就能選擇啟動win7或是啟動grub4dos;
2.解壓grub4dos後拷貝檔案夾中grldr,grldr.mbr,menu.lst三個檔案到C盤,到這grub4dos就算裝好了,開機後能夠選擇grub4dos引導;
3.menu.lst中記錄的是引導資訊,這裡我們有利用它來引導Ubuntu,先要獲得Ubuntu的啟動資訊,10.10之後的系統都存放在/boot/grub/grub.cfg,有兩種方法,1)在裝好Ubuntu後,開啟/boot/grub/grub.cfg,找到如下欄位
menuentry 'Ubuntu,Linux 3.0.0-12-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 60aeeaf3-1d61-47f4-a2c5-72d18e775e86
linux /boot/vmlinuz-3.0.0-12-generic root=UUID=60aeeaf3-1d61-47f4-a2c5-72d18e775e86 ro quiet splash vt.handoff=7
initrd /boot/initrd.img-3.0.0-12-generic
}
紅色的欄位就是有用的資訊,建立一個文檔把它存起來;2)如果是之前沒有記錄啟動資訊,那在裝完win7之後可利用Ubuntu的livecd,或是隨身碟linux系統來擷取;
4.編輯menu.lst,
title Unbuntu 10.10
root (hd0,0)
kernel /boot/vmlinuz-3.0.0-12-generic root=UUID=60aeeaf3-1d61-47f4-a2c5-72d18e775e86 ro quiet splash
initrd /boot/initrd.img-3.0.0-12-generic
boot
注意一下第二行,grub.cfg中寫的是 root='(hd0,msdos1)',menu.lst中也這樣寫的話會提示錯誤,改成hd0,0後就沒問題了,意思是掛在第一塊硬碟的第一分區。
5.grub4dos還有很多其他功能,比如引導pe,安裝系統,這裡就不意義贅述了。