本來是想把
grub2裝到
u盤,卻不小心把電腦的
grub搞壞了。原因可能是我執行命令
grub-install時沒有加任何引數,由於不知道沒有引數怎麼執行,我趕緊
ctrl+c終止了安裝,最後重啟後發現系統無法啟動,進入了
grub rescue模式。慶幸的是,重啟之前我成功給
u盤裝了
grub2,這可幫了我大忙了。其實恢復grub有多種方式,比如用系統盤或u盤啟動盤,我這種方式主要是為了熟悉grub,雖然比較麻煩,卻是一種很有效的方法。
再說重啟後進入了
grub rescue模式,它與
grub正常模式類似,但是大部分指令都不能用,我只用了基本的ls、
set,連
help
也沒有,貌似也沒有linux等命令。無奈之下,我插上
u盤,按下
ctrl+alt+delete,電腦竟然重啟了,再次啟動後進入了
u盤的grub(我設定電腦預設
u盤啟動)。
grub模式下輸入
ls可以檢視電腦目前的所有分割槽,以(
hdx,msdosy)的形式顯示,注意「(」和「)」不能少,
x代表磁碟序號,從
0開始;y代表分割槽號從
1開始。這個時候有可能搞不清楚哪個是
linux分割槽,所以可以輸入
ls -l
檢視分割槽詳細資訊,仔細檢視可以找到
linux分割槽。這裡我們假設為(
hd1,msdos4)。這個時候輸入
ls(hd1,msdos4)
/,按下
enter會列出該分割槽下的檔案,以此類推,(
hd1,msdos4)
/boot/會列出
boot下的檔案。為了啟動電腦,我們需要找到系統啟動核心
vmlinuz*和記憶體映像
initrd*,一般位於
boot目錄下。我的是
debian8,這兩個檔案位於(
hd1,msdos4)
/boot下。
準備好檔案,開始配置環境,
set命令可以檢視當前配置情況,包括
root
、prefix
等等變數的值。如果是
u盤啟動的,
root
預設位於
u盤下,為了啟動硬碟上的linux,要將root改為(
hd1,msdos4)
,所以輸入
set root=
(hd1,msdos4
),這樣
root
目錄指定到了電腦的
linux
分割槽下。
啟動核心用
linux /boot/vmlinuz* root=/dev/sda4
確定,*代表萬用字元,一般是版本號。有時候你不知道是sda還是sdb,可以用
uuid=××××××代替
/dev/sda4,uuid是硬碟分割槽的唯一固定id,這樣就可以準確定位分割槽。下一步執行
initrd /boot/initrd*
確定,之後再輸入
boot
確定,系統會輸出資訊,如果沒問題系統應該能夠正常啟動。
進入系統後,開啟終端使用
root
許可權進行
grub
修復,終端中輸入
fdisk -l
檢視磁碟資訊,確定
linux
系統的裝置號,這裡用
/dev/sda4
,將它掛載到系統的某個目錄下,這裡我掛載到了
/mnt
下,輸入
grub
安裝命令
grub-install --boot-directory=/mnt/boot /dev/sda
確定,就可以將
grub重新安裝到該硬碟的
mbr,啟動的根目錄位於
sda4分割槽。這時除掉
u盤重啟,熟悉友好的啟動選擇圖形介面應該就能出現了,如果還是不行,那麼重複上面的步驟到安裝
grub後,再執行
grub-mkconfig
確定,會重新生成
grub.cfg檔案,再重啟應該就沒問題了。
搞這麼麻煩有些人覺得很沒意義,那只能說明這些人不喜歡計算機技術而已。而我
寫這篇文章僅僅是紀錄一下我遇到問題的解決過程,並且想分享給可能遇到和我一樣問題的朋友,希望能幫助到需要的人。
重灌windows後修復grub2引導
使用安裝版的windows重灌windows時會改寫mbr,造成grub丟失,可以用grub4dos引導進入ubuntu後修復grub或用livecd啟動後修復grub。1 用grub4dos修復ubuntu 對 於vista win7系統,把壓縮包內的grldr.mbr和grldr複製到c盤根目錄...
Grub2 製作UEFI版本Grub2引導
首先要從grub官網下在grub2,grub2中包含所有grub2相關的命令,可以用來生成grub2引導,這裡著重介紹製作uefi版本的grub2 uefi啟動是fat fat32分割槽 efi boot bootia32.efi或者 efi boot bootx64.efi,然後程序由uefi交給...
使用grub2引導multiboot核心
grub2中直接提供了multiboot和multiboot2命令,可分別用於引導符合multiboot v1規範和multiboot v2規範的核心。最小multiboot核心 原始碼包中使用的是syslinux引導的硬碟映象,可使用run.sh進行qemu linker.ld內容如下 entry...