想好好折腾linux, 选择Ubuntu入手, 但想到linux下配置啥的挺麻烦, 装个系统最好能长久用下去, 于是就将ubuntu安装到移动硬盘上, 这样到哪都好用了.
如何在ubuntu安装到移动硬盘?
- 首先制作一个u盘版的livecd. 这个可以用Fedora LiveUSB Creator, 兼容Ubuntu, 网址是https://fedorahosted.org/liveusb-creator/, 几分钟就搞定了
- 选择从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安装到移动硬盘前面部分, 便可以到处启动啦, 真心坑爹啊!!