位置:海鸟网 > IT > linux/Unix >

将linux安装在移动硬盘/USB里面

要能从移动硬盘启动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。

本文来源:错新网[]