ubuntu安裝windows系統引導丟失修復

ubuntu 安裝windows出現的grub丟失 (沒有動分區)
(1)從U盤啓動試用版ubuntu
(2)找到原有ubuntu系統分區,最後一個字段system ->是linux
sudo fdisk -l

(3)掛載系統所在分區

mount /dev/sda7 /mnt

(4)安裝grub

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

(5)重新啓動,進入ubuntu 更新grub

sudo update-grub
ubuntu 安裝windows出現的grub丟失 (動了分區,我這裏合併了C,D盤)

一般情況下,出現以上情況基本可以恢復系統的引導。 但是這一次,我將原來的C,D盤合併重新安裝了windows系統。當然原來F盤裝的ubuntu系統引導信息就丟失了。然後我嘗試做修復。同樣採用以上的步驟。結果重新啓動時。停留在 grub界面。然後我嘗試用grub中的命令嘗試手動引導,但是發現連root,kernel之類的命令不可用。
於是再次通過U盤啓動盤進入試用版ubuntu.先更新了grub.
sudo apt-get install grub
然後再重新安裝grub到sda.
sudo grub-install /dev/sda
再重新啓動,這下root, kernel之類的命令就可以用了。進入grub界面。grub>
開始手動引導原有ubuntu系統
root (hd0,6)
這裏大家不要想當然,最好確認一下是不是自己的ubuntu分區。技巧是使用tab鍵,會自動補齊。如果(hd0,X)是你的ubuntu根分區的話,(hd0,x)/boot/ 這樣可以訪問到根目錄的文件,看是否是正確的。找到了纔有意義,因爲內核鏡像和文件系統找到才能正常啓動。指定內核鏡像,和文件系統
kernel /boot/vmlinux-xxx ro root=/dev/sda7
這裏就是指定linux內核鏡像和真正文件系統的位置。這裏看起來有點奇怪,在grub中明明找到的(hd0,6)這個分區,但是這裏文件系統指定確又是/dev/sda7.   一般IDE硬件是用hd標識,SATA硬盤就用sd來標識。但是在grub中好像都是直接用的hd, 我的電腦上只有一塊硬盤,這裏就是hd0. 但是如果進了ubuntu去看的話,分區顯示的都是/dev/sdaX。這些都是命令的細節,沒必要死扣,能解決問題就行啦。這裏root=/dev/sda7.我也是通過U盤啓動盤進系統看到的。一開始我用root=/dev/hda6  之類的來試,一直提示找不到。我的理解是grub也就是bootloader,所以當內核跑起來後,先是起來虛擬文件系統initrd, 然後再去加載真正的文件系統,所以他所識別的,自然是按他的命令來確定的。也就是這裏傳遞的參數應該是/dev/sda7。繼續:
initrd /initrd.img
這裏指定虛擬文件系統的位置 ,這個位置也需要指定對。這個正確的一般可以啓動到initramfs界面,如果上面真正的根文件系統指定錯誤的話。ubuntu下面用這個是通用的,這是一個軟鏈接。
initrd.img -> boot/initrd.img-3.8.0-29-generic。 真正的文件還是在/boot目錄下。以前完成就可以正式啓動了。
boot
總結:要能正常啓動系統,無非四個重要的點,找到系統存在分區,找到內核鏡像位置,文件系統位置,虛擬文件系統位置,爲什麼要先跑個虛擬文件系統,google一下吧。

系統啓動後,更新一下grub配置文件。
sudo update-grub
爲了下次能自動引導, 最好是重新安裝一下grub, 因爲之前通過U盤啓動系統安裝的grub版本和當前系統的grub版本不一致,所以這裏update-grub產生的引導信息,老的不一定能用,我這裏就遇到這樣的情況。所以乾脆重新再安一次。
sudo grub-install /dev/sda
再重啓應該就可以啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章