要能从移动硬盘启动linux, 首要的条件是主板支持usb启动, 如果不支持usb启动,也能实现这样的任务, 但是要求能进如windows, 而且需要其他的启动工具, 详见后文.
实验室电脑已经安装了Redhat AS版本, 所以想多学习Redhat. 我已经有了Redhat AS的iso文件, 所以开始的时候是打算从本地硬盘安装Redhat到移动硬盘的. 然而启动之后, 进入grub, 正常安装Redhat到选择分区的时候, 安装程序不能识别移动硬盘. 后来我用Ubuntu的livecd直接安装到移动硬盘. 用实验室带有grub的电脑顺利启动了移动硬盘上的linux.我戏称, 本来想和Redhat有亲密的接触, 不想却投入了Ubuntu的怀抱. 然而麻烦的事情还在后面.
如何在自己的笔记本上面启动安装的ubuntu?
在不对原有windows做任何影响的情况下, 我首先想到的是用usb启动, 进入dos, 启动grub4dos, 然后输入命令或其他来启动ubuntu. 但是有2块usb设备的时候, 似乎grub4dos不能识别第二块usb. 问题按下一个起来一个. 那我能否不用usb,而是用其他的dos启动,然后进入grub4dos呢. 虚拟软驱!下载虚拟软驱, 然后修改其img文件把grub4dos放进去.
但是启动之后, 软驱1.44Mb/2.88Mb都不足够启动grub. 又一次失败了. 考虑到所有问题的根源都是安装了ubuntu的移动硬盘分区不包含启动信息. 所以到网上找了各种工具来使这块分区能启动. 但都未成功(原因后面讲述). 而在这个时候, 发现了forum.ubuntu.org.cn上面的操作方法, 才使的后面的过程十分顺利.
既然可以虚拟软驱, 为什么不能虚拟grub? 询问在C:盘放入grldr, 修改boot.ini不会重写MBR后, copy grldr, 修改boot.ini 重启,选择grub. 顺利启动了安装在移动硬盘的ubuntu.
用几乎相同的方法在usb上面安装了一个liveusb的minilinux. 开机,选择从usb启动. 可以顺利启动. 开机, 进入ntloader后, 选择grubfordos, 也可以顺利启动minilinux.
那么为什么移动硬盘不能直接启动? 难道我的主板不支持吗? 之前128M的usb格式化的时候, 如果选择usb-zip格式是能进入dos的, 而选择usb-hdd格式却不能进入dos.
难道我的主板支持usb-zip却不支持usb-hdd? 进入bios查询, 似乎没有区别. 网上查询, 似乎说256M以下是usb-zip, 256M以上的是usb-hdd. 排除主板问题后再次查看移动硬盘.
用PQmagic查看,发现在linux分区前面有一个7.8M的未分配空间, 而且,竟然是主分区而不是逻辑分区. 那么我想问题应该出在这里. grub或者ntloader都是检测硬盘的第一个分区, 并找到相关的启动信息. 然后引导内核启动. 如果在第一个分区找不到, 当然不能启动.
问题似乎还不是把7.8M空间删除那么简单. PQmagic竟然删除不了, 总说出错. 而将其转换为逻辑分区也可以. 那么把已经存在的linux做ghost, 然后分区,再ghost回去如何?
可惜ghost不支持linux分区. 进入其他的linux系统, 用tar命令复制整个根目录, 却发现还是有一些文件夹是不能复制的, 比如/home,比如自建的文件夹等. 从网上下载了ghost4linux的程序(g4l), 这个复制的时候,竟然速度只有0.6M/s, 想想20G的分区要复制几个小时, 遂作罢. 既然7.8M空间为主分区, 那么何不把安装系统的分区设为主分区? 遂转换分区. 重新启动. OK!
来来回回,3周多的时间. 终于搞定了这个问题. 现在可以从移动硬盘直接启动也可以从ntloader,选择grub启动linux了.
1, 格式化移动硬盘的第一个分区为linux文件格式:ext2或ext3.
2, 用live CD安装系统到第一个分区.
3, (1)用工具安装grub到移动硬盘的第一个分区.
(2) 如果主板不支持usb启动, 可以下载grldr,修改c:boot.ini .
4, 修改/boot/grub/menu.lst ubuntu 7.10 已经支持uuid的挂载了.
5, 重启, 选择usb启动或者到ntloader后选择grub
6, Enjot the linux life。