ubuntu安裝到移動硬盤 & grub rescue問題解決

想好好折騰linux, 選擇ubuntu入手, 但想到linux下配置啥的挺麻煩, 裝個系統最好能長久用下去, 於是就將ubuntu安裝到移動硬盤上, 這樣到哪都好用了.

如何在ubuntu安裝到移動硬盤?

1. 首先製作一個u盤版的livecd. 這個可以用Fedora LiveUSB Creator, 兼容Ubuntu, 網址是https://fedorahosted.org/liveusb-creator/, 幾分鐘就搞定了
2. 選擇從u盤啓動, 進入livecd系統, 相當於體驗版. 選擇安裝Ubuntu, 注意分區選擇移動硬盤, 掛載點最簡單的是根目錄和swap, 其他按序掛載; 最後"安裝啓動引導器的設備"選擇移動硬盤, 如sda, 而不是它的某個分區, 如sda1, 這樣系統就可以從移動硬盤啓動了.

只要簡單兩步就安裝完成了, 同理如果把ubuntu安裝到U盤上也是一樣的.

------------昏割線----------------

裝完後在自己電腦上成功啓動, 但換個電腦就不行了. 按照對linux啓動的瞭解, 啓動的先後順序是BIOS, MBR, BootLoader, OS. 已經系統的grub(GRand Unified Bootloader)安裝到移動硬盤上了, 從移動硬盤啓動時, MBR能直接識別Grub以啓動系統, 在自己電腦上試驗成功說明安裝的確是成功的.

tips. 事實上, 這個版本系統是用UCloner克隆到移動硬盤上, 或許問題出在此.

在其他電腦上啓動時, 無法啓動grub, 而是進入了grub rescue, 顯示信息爲

error: unknown filesystems
grub rescue>

網上遇到這個問題多數是安裝了windows+ubuntu雙系統後, 在windows對磁盤重新分區導致的, 與我在移動硬盤上的ubuntu在別的電腦上運行類似, 疑問: 爲什麼grub啓動跟其他磁盤或分區有關係呢?

一. 在grub rescue中通過ls查看磁盤和分區, 如果ls (hd0,6)/boot/grub顯示信息, 說明(hd0,6)是安裝/boot的分區, 可通過以下命令進入系統

set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal

# after getting into ubuntu
sudo update-grub
sudo grub-install /dev/sda

但本人ls每個個分區都是出錯, set命令顯示的boot和prefix都是指向實際的'/'分區.

 

二. 繼續搜索網上解決方法, 多是reinstalling GRUB from the LiveCD, 如下:

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

# sda4 is the / partition, so sda is the disk

# Back in Ubuntu
sudo update-grub

但本人試過這個方法, 沒有成功.

 

三. 堅持不懈的搜索, 終於發現這句話:Some bioses have a maximum read capability of 137GB and will therefore not find boot files which are on the disc after that limit.

有些bios的讀取磁盤能力有限, 只能讀前137G大小的內容. 這才發現最初因爲移動硬盤前面部分存了幾百G的資料, 爲省力直接在磁盤後面部分劃分出空閒空間作爲linux分區. 重新將linux安裝到移動硬盤前面部分, 便可以到處啓動啦, 真心坑爹啊!!

 

p.s. 下面是兩個啓動信息分析工具, 如有其它問題, 可以檢測後, 貼到論壇讓大牛們幫忙分析:

1. Boot-Repair: https://help.ubuntu.com/community/Boot-Info
2. Boot Info Script: http://bootinfoscript.sourceforge.net/


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