把ubuntu安装至移动硬盘、并可在不同电脑上启动、运行的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、使移动硬盘具有和live cd一样的功能,可通过usb接口启动,运行,安装至主机内置硬盘,当然前提是电脑支持usb启动。
二、使移动硬盘具有类似live cd的功能,可通过usb接口启动、运行;与live cd不同的是,对此系统所作的修改将会保存下来,而不会像live cd那样一重启就恢复原状。
两种方案对各种不同版本的ubuntu live cd应该都适用。我是用hiweed 1.0做的试验,所以就以它为例来描述了。向hiweed致敬。
第一种方案实现起来比较简单:
首先,将live cd中的casper文件夹拷至移动硬盘某fat32分区(ext2或ext3或reiserfs分区亦可)。
然后,将grub安装至移动硬盘。启动一个linux系统,接上移动硬盘,一般会自动识别出来。假设其中某分区(除了ntfs任一分区均可)的路径为/media/usbdisk,假设移动硬盘为/dev/sda (注意如果主机中有sata硬盘,可能会变成/dev/sdb),运行以下命令:
sudo grub-install --root-directory=/media/usbdisk /dev/sda
在/media/usbdisk/boot/grub/目录下建立grub配置文件menu.lst,添加如下内容(其中的*号请根据自己的情况换成合适的数字):
timeout 6
default 0
fallback 1
title live cd
root (hd0,*)
kernel /casper/vmlinuz boot=casper ramdisk_size=1048576 root=/dev/ram rw splash
initrd /casper/initrd.gz
title live cd xforcevesa
root (hd0,*)
kernel /casper/vmlinuz boot=casper xforcevesa ramdisk_size=1048576 root=/dev/ram rw splash initrd /casper/initrd.gz
这样就好了。
第二种方案:
大致过程是,将live cd上的系统复制到移动硬盘,并修改相关脚本,使之适应移动硬盘环境。具体操作分4步:
第1步:复制live cd系统。
按您的需要给移动硬盘分区,其中预备一个根分区,2G左右,若还想添加软件就分大点;
一个swap区,256M以上。根分区文件系统可以是ext2或ext3或reiserfs。
运行hiweed 1.0 live cd,此时系统/rofs目录下挂载的就是live cd中内置的ubuntu系统,将其复制到移动硬盘上预备的根分区中(假设其路径为/media/usbdisk/):
sudo cp -a /rofs/* /media/usbdisk/
第2步:定制initrd文件
附件里有一个做好的,针对hiweed1.0,大家可以直接拿来用:)
这一步比较长,为了整个帖子看起来简洁一些,这步的详细描述也放在附件里了。
从附件里解出initrd.hiweed1.0-m 文件,拷到移动硬盘系统的/boot 目录下。
第3步:为移动硬盘安装GRUB。
仍然假设此时移动硬盘系统的根分区的路径为/media/usbdisk,并假设移动硬盘为/dev/sda (注意如果主机中有sata硬盘,可能会变成/dev/sdb),运行以下命令将grub安装到移动硬盘上:
sudo grub-install --root-directory=/media/usbdisk /dev/sda
然后在/media/usbdisk/boot/grub/目录下建立grub配置文件menu.lst,添加如下内容(其中的*号请根据自己的情况换成合适的数字):
timeout 6
default 0
fallback 1
title mobile ubuntu
kernel (hd0,*)/boot/vmlinuz-2.6.15-23-386 boot=casper ramdisk_size=1048576 root=/dev/ram rw splash debian-installer/locale=zh_CN
initrd (hd0,*)/boot/initrd.hiweed1.0-m
title mobile ubuntu xforcevesa
kernel (hd0,*)/boot/vmlinuz-2.6.15-23-386 boot=casper xforcevesa ramdisk_size=1048576 root=/dev/ram rw splash debian-installer/locale=zh_CN
initrd (hd0,*)/boot/initrd.hiweed1.0-m
第二个是强制VESA模式,如果前一个不能正常启动,可以试试它。
第4步:创建记号文件
在移动硬盘系统的根分区下创建一个文件,命名为hiweed1.0,用来标记系统分区。
这一步万不可少,否则就不灵了呵呵
OK,现在算是正式完工了!重启电脑进入BIOS设成从移动硬盘启动,试试能行不?
涉及到的几个问题:
1、与上一帖的区别
前面我曾发过类似的一帖,说的也是制作移动硬盘系统,但方法略有不同。那次是先把系统安装好,配置好,装好需要的软件,然后拷到移动硬盘上,并对initrd加以改造,以实现检测硬件的功能。这就涉及到一个问题:在一台计算机上安装好的linux,要移到另外一台不同配置的机子上运行,到底有哪些东西需要重新配置?解决好这个问题需要对linux系统有深入的了解,我功力不济,还请各位高手指导。
而这次是直接取用了live cd中的系统,因为live cd设计的初衷就是要在不同的机子上都能运行,所以上面的问题已经由live cd的设计者解决了。但又面临另一个问题:限于live cd 的光盘发行形式,live cd中的系统在功能上,比起正常安装的系统,可能会有缺陷。因为它毕竟不是为日常使用而设计的。比如说,live cd无法添加删除软件,自然用不到apt,那它里面的apt功能会不会没有配置好呢??……
当然也说不定两种方法压根就没什么本质区别,只是我想的太多实际中我都试了,都能用。但一方面用的时间还不长,另一方面试验过机子也不多,所以不能完全说明问题,所以还得靠大家多多实践,共同研究。
2、usb接口速度问题
主要表现在启动初期,GRUB把内核和initrd文件往内存里拷贝时,在某些机子上速度奇慢,多见于VIA芯片组平台。这个问题倒可以通过缩减intird文件的体积来缓解,ubuntu 的initrd文件有6、7M,而knoppix的只有不到1M。但也只是缓解,不能根治,因为还有内核呢,1M多,很难再小了。
启动之后用起来,只要是USB 2.0的接口,速度都可以接受。当然usb 1.1就很成问题了。
3、不支持usb启动的电脑怎么办?
有一个办法,就是麻烦点。不支持usb启动的机子肯定比较老,usb接口多是1.1版的,所以建议先添加一块usb 2.0扩展卡。然后把内核和initrd文件刻到一张启动盘上,通过光驱来启动移动硬盘上的系统。这个办法也可用来解决第2个问题。
4、ati显卡驱动问题
这也是传统问题了。ati显卡运行X时总是问题多多。不行的话可以试试VESA模式。再不行就试试把用户目录里记录屏幕分辨率的那个文件删掉。
5、windows可以这样搞吗?