自制Ubuntu 8.10 LiveUSB的方法 (2008-12-25 12:02:12)
转自 http://blog.sina.com.cn/s/blog_5d82f1530100bbbn.html
标签: it 分类: Ubuntu 自制Ubuntu 8.10 LiveUSB的方法(可保存修改),并添加DOS工具箱及PE引导
本文原创,如需转载,需注明文章出处:http://blog.sina.com.cn/zenderfully
原文发表于Ubuntu中文论坛: http://forum.ubuntu.org.cn/viewtopic.php?f=103&t=172013
论坛ID为powerman,略有修改,本文中所使用的启动文件在原文中可以下载。

一、Ubuntu 8.10 LiveUSB的作用

Ubuntu 8.10 LiveUSB可以实现LiveCD的所有功能,并且所做的系统配置修改在重启后依然保存。

也就是说Ubuntu 8.10 LiveUSB可以不用安装Ubuntu,达到和安装Ubuntu同样的效果。

但是 LiveUSB不能替代正常的系统安装,相对其它安装方式稳定性更差一些,只能是临时使用ubuntu,体验ubuntu,展示ubuntu 的作用。

因此LiveUSB最大的作用就是可以当做一个移动版的操作系统,很适合系统维护人员使用。

LiveUSB和LiveCD一样,对内存要求比较高,至少512M。我试过在256M的电脑上运行,速度真是惨不忍睹。

二、Ubuntu 8.10 LiveUSB的制作方法

1、U盘的要求。光ISO中的文件就要700M,制作LiveUSB最少要128M保存数据。当然保存数据的空间越大越好。我觉得2G是最起码的。

2、首先启动Ubuntu 8.10,没有安装过,启动LiveCD也可以。

3、打开“system\系统管理\Create a USB startup disk”。

4、在“other...”按钮中选择Ubuntu 8.10 ISO,插入U盘,在“USB disk to use”中正确显示你的U盘。选择默认的“stored in reserved extra space”,在下面拖动保存空间的大小,最小128M,最大为U盘的大小减去ISO大小。建议至少有1G。点击“make startup disk”开始制作。

5、使用制作好的LiveUSB重启后,启动界面和LiveCD一样。首先选择语言菜单的“简体中文”,然后在出现的菜单中选择第一项“试用ubuntu而不改变计算机中的任何内容”。尽管菜单是这样写,但是你在系统中所做的任何修改都被保存了。

6、有些同志反映制作的LiveUSB的U盘重启电脑后选择USB-ZIP或USB-HDD都无法启动。
解决方法:启动UltraISO,选择菜单“启动光盘/写入硬盘映像”,在对话框中选择“便携启动/写入新的硬盘主引导记录(MBR)/USB-ZIP+”。也可以试试USB-HDD+,可增强U盘引导主板的兼容性。

三、破解Ubuntu 8.10 LiveUSB保存功能的秘密

做完Ubuntu 8.10 LiveUSB后,立即将 LiveUSB中的文件和ISO中的LiveCD做比较,发现LiveUSB做了几点修改:

1、在U盘根目录下,增加了一个保存文件:casper-rw。大小和制作LiveUSB时我们设置的大小一致。LiveUSB就是用这个文件保存我们修改的系统配置和数据。

2、使用syslinux引导U盘,在U盘根目录增加了两个启动文件:syslinux.cfg,ldlinux.sys。

3、修改原目录isolunux为syslinux。并在text.cfg文件中进行了修改,就是相对原来LiveCD的命令中增加了参数:“noprompt cdrom-detect/try-usb=true persistent” 。如:

label live
menu label ^Try Ubuntu without any change to your computer
kernel /casper/vmlinuz
append noprompt cdrom-detect/try-usb=true persistent file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.gz quiet splash --

至此LiveUSB的秘密大白于天下,就是制作了一个casper-rw文件来保存数据,在启动命令中加上“persistent”即可。


四、在LiveUSB中增加PE引导

PE的版本很多,启动的方法也很多,在制作时要先看清原作者写的安装说明。

我以最新的一个天意PE为例介绍增加PE启动的方法。

1、下载PE的ISO。

天意PE发布的文章:http://bbs.mydigit.cn/read.php?tid=67258
该PE为天意所做,基于天琴sp3内核。支持96M内存启动。大小是56M。

2、复制ISO所有文件到U盘根目录下,并将WXPE目录下的NTDETECT.COM也复制到U盘根目录下。

3、将附件中的ldntldr文件复制到U盘根目录下。

4、修改U盘syslinux目录下的text.cfg文件。

我是在label live-install之前加上:

label winpe
MENU LABEL WinPE
MENU DEFAULT
kernel /ldntldr
append initrd=/WXPE/SETUPLDR.BIN

这样WinPE菜单出现在启动菜单的第二项。启动后选择“WinPE”菜单项即可。

五、在LiveUSB中增加DOS工具箱

1、下载DOS工具箱的IMG文件。

这些IMG文件位于一些多重启动ISO中,如:“多合一超级启动盘“,复制到WXPE目录下,并查看原启动的命令是否有“c=63 h=8 s=36”之类的格式,并记录下来。

2、将附件中的MEMDISK文件复制到U盘根目录下。

3、修改U盘syslinux目录下的text.cfg文件。

我还是在label live-install之前加上:

LABEL dostools
MENU LABEL dostools
kernel /memdisk c=63 h=8 s=36 floppy
append initrd=/WXPE/dos2007.img

如果原启动命令没有格式,直接用“kernel memdisk ”即可,否则要用“kernel memdisk c=×× h=× s=×× floppy”启动IMG。

这样dostools菜单出现在启动菜单的第三项。启动后选择“dostools”菜单项即可。

4、说说syslinux在部分笔记本电脑中无法启动img文件的问题。

我试了很多img文件,在我试过的多台台式机上启动正常,但是在我的笔记本电脑上只有一个img文件可以启动,其它均死机。因为这些img文件不是我做的,所有我也不知道什么原因。

解决的方法是:将syslinux引导换成dos+grub4dos引导,就顺利启动了我的笔记本电脑。我试过用syslinux启动后引导到grub,再启动img文件,还是不行。

对于一般用户来说,如果syslinux可以在自己的电脑上启动img的dos工具箱启动,那么没有必要像我一样换成dos+grub4dos引导。但是对应系统维护人员来说,万一客户的电脑和我的电脑一样,那就很尴尬。

六、自制Ubuntu 8.10 LiveUSB,使用dos+grub4dos引导

1、保存文件的制作

最简单的方法就是直接用已经制作好的LiveUSB中的casper-rw文件,复制到U盘根目录下,保存过的配置还可以保留。

还有一种方法在U盘上多建立一个ext3分区,将卷标改名为casper-rw。
最好用量产工具在U盘中多量产出一个分区来,用其它方法分区也可以。
用gparted查看该分区名,如/dev/sdb1,并格式化为ext3:
在终端中输入:
e2label /dev/sdb1 casper-rw

自制casper-rw文件的方法,可以在终端中输入:
head -c 512m /dev/zero >casper-rw
512m表示保存空间512M,可以设置成其他大小。然后从文件管理中把当前目录的casper-rw文件复制到U盘根目录下。


2、在U盘中创建dos+grub4dos引导

启动UltraISO,选择菜单“启动光盘/写入硬盘映像”,在对话框中选择“便携启动/写入新的硬盘主引导记录(MBR)/USB-ZIP+”。

再选择“便携启动/写入新的驱动器引导记录/windows 9x”。

从网上下载DOS引导文件和grub4dos软件。复制DOS引导文件command.com、io.sys、MSDOS.SYS和grub4dos中的grub.exe、menu.lst文件到U盘根目录。

在U盘根目录下创建一个AUTOEXEC.BAT文件,里面只有一行:
grub

3、修改menu.lst文件

增加LiveUSB启动项
title Ubuntu 8.10 LiveUSB
find --set-root /casper/initrd.gz
kernel /casper/vmlinuz noprompt cdrom-detect/try-usb=true persistent file=/preseed/ubuntu.seed boot=casper quiet splash --
initrd /casper/initrd.gz
boot

4、复制ISO中Ubuntu 8.10 LiveCD的文件到U盘根目录下。

可以全部复制到U盘中。不过我只复制“.disk”、“casper”、“preseed”这三个目录,也可以。

至此自制Ubuntu 8.10 LiveUSB制作好了,使用UltraISO制作dos+grub4dos引导增强了U盘启动的成功率。

七、在自制LiveUSB中增加PE引导

还是以天意PE为例。

1、复制ISO所有文件到U盘根目录下,并将WXPE目录下的NTDETECT.COM也复制到U盘根目录下。

2、修改menu.lst文件

增加PE启动项
title WinPE
find --set-root /WXPE/SETUPLDR.BIN
chainloader /WXPE/SETUPLDR.BIN (hd0)+1

八、在自制LiveUSB中增加DOS工具箱

1、将img文件复制到WXPE目录下。

2、修改menu.lst文件

增加DOS工具箱启动项
title dos2007
find --set-root /WXPE/dos2007.img
map --mem /WXPE/dos2007.img (fd0)
map (fd0) (fd1)
map --floppies=2
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

九、安装LXDE

1、安装LXDE的必要性。
由于U盘最大的功能就是便携性,无论是系统维护人员,还是Linux宣传人员,使用U盘版的Ubuntu会遇到各式各样的电脑。
但是我们的Ubuntu LiveUSB只适合在至少512M内存的电脑使用,限制了Ubuntu的运用。
LXDE是一个轻量级的桌面系统,相对Ubuntu默认启动的gnome,占用的系统资源更少,更适合在U盘上使用。特别是能在256M内存的电脑上流畅地运行,增强移动的功能。

2、安装LXDE
在终端中运行:sudo apt-get install lxde
如果不能运行,则要增加源:deb http://ppa.launchpad.net/lxde/ubuntu intrepid main

3、启动LXDE
选择菜单“首选项”-“登录窗口”,在“常规”下选择“默认会话”由“运行Xclient脚本”改为“LXDE”。重启后就进入LXDE。
也可以在输入用户名的登录窗口,点击左下角的“选项”,选择LXDE。
当然你可以根据需要切换LXDE和gnome。

十、总结

我用2G的U盘,LiveCD复制出来的文件有700M,保存文件casper-rw就只有1G了。剩下的空间放一个56M的天意PE,5个IMG,一个100多M的pubby Linux。
在casper-rw的1G中,启用保存占用110M,安装中文支持400M,安装LXDE不到100M,其他无线网卡驱动、rar、nautilus-open-terminal后,只剩下400M了。
更改源后,不运行更新管理器,勉强可以使用。用LiveUSB制作的U盘进入LXDE,可以在256M内存的电脑上流畅运行,算很满意了。

最后建议:
1、U盘:至少4G,保存文件casper-rw给2G以上。
2、安装LXDE
在512M内存以下的电脑启动用LXDE登录,在512M及以上的电脑上用gnome登录。
而且使用LXDE登录,可以支持使用 windows 的 pagefile.sys 作为 swap。
默认的gnome登录不能使用该方法,不仅会影响运行的速度,还会加快 u 盘报废的进度。
3、直接安装Ubuntu到U盘
对于经常使用U盘Ubuntu的同志,建议直接安装Ubuntu到U盘,可以加快文件读写的速度。
建议给U盘分区,直接安装Ubuntu到U盘的第二分区上,安装方法和移动硬盘是一样的。
启动方式:在第一分区使用dos+gurb4dos引导第二分区的Ubuntu。
4、使用 windows 的 pagefile.sys 作为 swap的方法
首先,在终端中输入:sudo gedit /etc/fstab ,打开后把挂载 swap 分区的一行删除。
然后,在 / 下新建一个目录用来挂载 windows 分区,比如:sodu mkdir /win
接着,在win目录下再建两个子目录,分别为:/win/c和/win/d。
最后,输入:sudo gedit /etc/rc.local,在 exit 0 之前加入:
mount /dev/sda1 /win/c
ls /win/c/pagefile.sys > /dev/null 2>&1 && mkswap -c /win/c/pagefile.sys && swapon /win/c/pagefile.sys

mount /dev/sda5 /win/d
ls /win/d/pagefile.sys > /dev/null 2>&1 && mkswap -c /win/d/pagefile.sys && swapon /win/d/pagefile.sys