grub rescue的修復方法

在win7下刪除了ubuntu的swap交換空間的分區(大約6G左右,根據本身的實際分區狀況決定)。從新啓動電腦進入界面,直接顯示:linux

error:unknow filesystemubuntu

grub rescue>vim

因此本身就找到ubuntu的光盤準備從系統的安裝過程當中將剛剛刪去的分區從新設置爲swap分區,無奈,筆記本的光盤也很差使,全部就只能拿着手機百度了。
工具

解決辦法

1 輸入ls

在grub rescue>中輸入ls,會顯示出磁盤中的磁盤分區狀況,例如我這裏顯示的:
測試

(hd0),(hd0,msdos1),(hd0,msdos2),(hd0,msdos4),(hd0,msdos5),(hd0,msdos6),(hd0,msdos7)ui

2 查找主分區所在位置

在grub rescue>中輸入ls (hd0,msdosX)/並回車(這裏須要將上面所列出的分區依次進行測試,X表示1,2,4,5,6,7),直到在屏幕中顯示出在主分區「/」中存在的全部文件,例如:
spa

bin    dev   initrd.img      lib32       media  proc  sbin     sys  var操作系統

boot   etc   initrd.img.old  lib64       mnt    root  selinux  tmp  vmlinuz3d

cdrom  home  lib             lost+found  opt    run   srv      usr  vmlinuz.oldorm

就表示主分區「/」就是當前硬盤分區上。

注意:

1.這裏也能夠使用「ls (hd0,msdosX)/boot/grub"進行查找分區,若是/boot沒有進行單獨分區能夠使用此方法。

若是/boot是進行單獨分區的,就須要使用」ls (hd0,msdosX)/grub"查找/boot分區所在磁盤

2. 在(hd0,msdosX)和文件路徑「/」或者「/boot/grub」之間沒有空格。本人以前因爲使用手機覺得之間有一個空格符,試了許屢次都沒有找到,不過一個比較明顯的區別。測試其它的磁盤分區的時候都顯示的「unknown filesystem",只有在一個磁盤分區下顯示的爲「bad filename」,後來找了找度娘,才發現磁盤分區(hd0,msdosX)和文件路徑之間是沒有空格的,須要連在一塊兒。

3 進入系統

我這裏找到的「/」在(hd0,msdos7)上,因此進行以下設置:

grub rescue>set root=(hd0,msdos7)
grub rescue>set prefix=(hd0,msdos7)/boot/grub
grub rescue>insmod /boot/grub/normal.mod

若是/boot是單獨分區的話,就進行以下設置:

grub rescue>set root=(hd0,msdosX)
grub rescue>set prefix=(hd0,msdosX)/grub
grub rescue>insmod /grub/normal.mod

若是你輸入正確的話,你會發現屏幕中最新的一行的字符由灰色變成了白色,這就證實你能夠進入到開機的grub選擇界面了。

在白色的grub rescue>中輸入normal

grub rescue>normal

我這裏就選擇進入ubuntu操做系統中,不過在屏幕中顯示UUID………………沒法找到之類意思的一段信息(當時本人嚇出一身冷汗,覺得還不能開機),進入操做系統中,使用ubuntu的「磁盤實用工具」將以前的磁盤分區從新設置爲是swap交換空間,就覺得能夠了,不太重啓以後發現又進入了「grub rescue>」中,因此請不要至關然。

4 更改fstab文件

請確保已經進行swap分區,我這裏經過「磁盤實用工具」進行分區的swap。使首先查找swap的UUID,這裏有兩種方法:

  1. 使用「sudo blkid"查看UUID:

/dev/sda7: UUID="132e271d-ddb7-489d-94b2-3d3bd8dd5eb9" TYPE="ext4" 

/dev/sda8: LABEL="M-fM-^VM-0M-eM-^MM-7" UUID="b3a6e112-065f-472b-aeb2-86ca9f951e2c" TYPE="swap" 

這裏TYPE爲swap的UUID就是新建立的swap分區的UUID。

  2. 使用「ls -l /dev/disk/by-uuid"查看UUID:

lrwxrwxrwx 1 root root 10  4月  1 19:31 132e271d-ddb7-489d-94b2-3d3bd8dd5eb9 -> ../../sda7

lrwxrwxrwx 1 root root 10  4月  1 19:31 b3a6e112-065f-472b-aeb2-86ca9f951e2c -> ../../sda8

更改fstab文件(在修改以前最好將該文件進行一下備份,以避免出現錯誤)

使用root用戶 # vim /etc/fstab

能夠看到文件中有一行含有swap的內容,這裏表示以前未刪除swap分區的UUID,這裏只須要將經過」sudo blkid"得到的新的swap的UUID進行更改就能夠了

UUID=7743e0a8-cb7b-409a-8b61-947d2c1071ae none            swap    sw              0       0(以前的文件內容)

更改成

UUID=b3a6e112-065f-472b-aeb2-86ca9f951e2c none            swap    sw              0       0(更改後的內容)

保存退出。

5 更新grub

完成上述內容後,就須要更新grub了

在終端中輸入「sudo grub-install /dev/sda",執行完成後,就能夠了。從新啓動系統,你就會發現一切又正常了

相關文章
相關標籤/搜索