想好好折騰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安裝到隨身碟上也是一樣的.
------------分割線----------------
裝完後在自己電腦上成功啟動, 但換個電腦就不行了. 按照對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/