1. 程式人生 > >win+linux雙系統下修復grub

win+linux雙系統下修復grub

1

先安裝Win,再安裝Linux,則在安裝完Linux後會直接進入Linux系統,進入系統後執行:

#sudo updata-grub

更新grub,讓其找到winbootloader,重啟,在grub介面即可看到進入win的選項。

2

先安裝了Linux,再安裝的win。此時,硬碟的MBR裡面之前的grub引導記錄被覆蓋,需要重新將grub資訊寫入MBR中。由於磁碟中已有Linux系統,只需將該系統中grub資訊寫進MBR即可。方法如下:製作一個Linux系統的LiveCD,普通的U盤安裝啟動檔案即可,進入到LiveCD,將當前系統中已有的Linux系統所在的磁碟掛載至/media/linux

目錄下:

#sudo mount /dev/sdaN /media/linux

注意N為你當前系統中linux所在的位置。然後執行如下指令:

#sudo grub-install --root-directory=/media/ubuntu /dev/sda

即可將相應GRUB資訊寫入當前硬碟的MBR中。重啟,即可進入GRUB引導介面。

3

原雙系統使用GRUB引導,但是在Win下格式化了Linux所在分割槽,造成啟動引導失敗。此時由於MBR中仍然存在GRUB的相關資訊,會進入GRUB RESCUE介面。由於此時核心檔案已經不再分割槽內,故不能有RESCUE介面進入Normal介面。此時可用Win安裝盤修復Win

啟動項,直接將Win啟動引導資訊寫入MBR,覆蓋原有的GRUB資訊。方法如下:找一個Win安裝檔案(如U盤安裝檔案)啟動進入修復介面,進入命令列,輸入:

>bootrec/fixmbr

重啟即可。

4

Grub Rescue處理方式:rescue模式下可使用的命令有:set, ls, insmod, root, prefix;若GRUB的核心檔案在(hd0,8)分割槽,則進入normal模式的步驟如下:

>root=(hd0,8)
>prefix=/boot/grub
>set root=(hd0,8)
>set prefix=(hd0,8)/boot/grub
>insmod normal
>normal
>linux /boot/vmlinuz-xxx-xxx root=/dev/sda8
>initrd /boot/initrd.img-xxx-xxx
>boot

這樣就能啟動系統了。 參考大神