win + ubuntu 雙系統 grub引導項修復


  1.  ubuntu liveCD模式,找到ubuntu的系統盤位置,掛載到系統上面,然后使用grub進行修復
  2. ubuntu liveCD模式下是用boot-repair軟件進行修復
  3. grub急救模式

  

1. ubuntu liveCD模式 + grub修復

一種情況是grub已經損壞或者丟失,開機后直接進windows,沒法進入grub,也沒法進入急救模式resume,

此時需要使用ubuntu安裝盤選擇try ubuntu without installing,進入liveCD模式,掛載ubuntu系統盤,

如果不知道哪個盤是ubuntu安裝盤,可以使用下面的命令查看磁盤,可以看到sda5是linux的系統盤

sudo fdisk -l

找到ubuntu的系統盤后,使用下面的命令將磁盤掛載到系統上

sudo mount /dev/sda5 /mnt

grub-install 會恢復grub文件夾中丟失的文件,但是不會恢復故意刪除和損壞的文件,

所以要完成引導的修復,需要grub2完全被卸載並重新安裝

下一步開始恢復grub2的引導,此時要注意如果是grub執行的是--root-directory,grub2才是執行的下面這個命令,現在基本上都是grub2

sudo grub-install --boot-directory=/mnt/boot /dev/sda

如果沒有報錯,就代表修復完成

如果重啟后grub的引導界面上沒有windows系統,則進入ubuntu后,更新一下grub的引導項

sudo update-grub

上圖就是修復了grub的啟動項,包括ubuntu和windows

 

2. 使用boot-repair來修復grub引導項

第一步進入ubuntu liveCD模式,

第二步安裝boot-repair

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

等待一會就會出先boot-repair的界面

點擊Recommended repair,修復過程中它可能會要求你去執行一些命令,按照他的要求,打開終端,執行命令,執行完畢后,點擊forward(下一步)

在boot-repair修復完成后,重新啟動,就可以見到久違的啟動菜單了

 

3. grub急救模式

開機后,進不去系統,進入grub管理頁面,這表示grub的配置文件損壞,進入了急救模式,

在急救模式下只有少數幾個命令可以使用:

set:查看系統環境變量,這里可以查看啟動路徑和分區

ls: 查看設備

insmod:加載模塊

root:用於啟動系統的分區,在救援模式下設置grub啟動分區

prefix:設定grub啟動路徑

具體修復步驟如下:

3.1 尋找ubuntu的系統盤

首先查看有哪些磁盤,然后去找ubuntu的系統盤

ls
ls(hd0,msdos6)

挨個去試,直到找到ubuntu的系統盤

3.2 安裝MBR

grub rescue>set root=(hd0,msdos6)
grub rescue>set prefix=(hd0,msdos6)/grub
grub rescue>insmod normal                     //加載normal
grub rescue>normal

自動重啟后就可以看到grub的啟動菜單欄了

選擇ubuntu后,發現還是進入不了系統,這是因為還沒有真正的修復grub,這個需要到ubuntu系統中進行修復

怎么進入ubuntu系統呢?

進入系統啟動界面,按c進入命令行模式

grub >set root=hd0,msdos6
grub >set prefix=(hd0,msdos6)/grub
grub >linux (hd0,msdos6)/boot/vmlinuz-xxx-xxx root=/dev/sda6 //里邊的xxxx可以按Tab鍵,如果有acpi問題,在最后加一句acpi=off
grub >initrd (hd0,msdos6)/boot/initrd.img-xxx-xxx
grub >boot

這樣就可以進入ubuntu了

3.3 進入ubuntu修復grub

前面的工作已經恢復了MBR,下一步需要更新下grub引導項

sudo update-grub

 重啟后就可以看到grub引導菜單中有windows和ubuntu了

如果不行的話,回到第三步,在更新grub引導項后,再執行命令

sudo grub-install /dev/sda

此時可能會報錯"grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory"

解決方式是安裝一下grub-pc-bin這個包,然后重新執行一下上面的命令

sudo apt-get install grub-pc-bin

 

 

 

 



 

 

參考文檔 

https://www.howtogeek.com/114884/how-to-repair-grub2-when-ubuntu-wont-boot/

https://blog.csdn.net/gatieme/article/details/59127020

https://lesca.me/archives/restore-boot-menu-after-reinstalling-windows.html

https://askubuntu.com/questions/737059/problem-installing-windows-over-ubuntu-grub-install-error

https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot

http://yhz61010.iteye.com/blog/2302418

http://blog.sina.com.cn/s/blog_7deb436e0101nzkq.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM