2008年10月20日星期一

Puppy linux+WinPE双系统U盘启动

最近微软的黑屏事件,使得一些用户开始关注开源的操作系统。以前用过一段时间的Ubuntu,但是ATI显卡的驱动很难装,经历了N次挫折+重装系统后,终于让我把ubuntu整的服服帖帖更适合使用了。这里有我设置ubuntu的全过程http://forum.ubuntu.org.cn/viewtopic.php?f=24&t;=94165,曾经是精华,但是因为很长时间不更新了,现在给取消了。:p

一、安装一个体积小的linux到U盘或者硬盘。


因为ubuntu体积较庞大,安装时间长、空间占用大、不容易U盘安装等缺点,我考虑找个小点的linux系统安到U盘里。参见

Puppy, CDLinux, DSL, Slitaz 四大迷你系统小比拼。我最后选择了puppy linux,见这篇文章是在pubby linux下写的

我的U盘(sandisk 2G 红椒)上原来装着老毛桃的PE,为了试试Puppy linux,狠下心把U盘格了,按照这个方法把puppy linux装到U盘上了,可以启动。(方法在这里从XP轻松跨入全新的中文Puppy Linux世界(小芭比Linux硬盘/U盘安装专题)V0.049 for pup2usb!


为了方便大家安装,我把主要过程转过来了,稍作修改,若还有不明白可以去上面的链接里看看。




一、准备工作
如果想安装到U盘,先把U盘格式化成FAT(FAT16);(在我的电脑中右击U盘盘符,选择 格式化...,文件系统选FAT)
目前最新的pup2usb已支持Vista。

二、下载东东(假设放到c:tmp 文件夹下)
下载小芭比Linux: 点击下载(fantasy027注:推荐下载4.0的中文版,4.1还汉化不完全)
下载Pup2usb: 点击下载

三、运行pup2usb



  • 选择小芭比iso

  • 选择想安装到的硬盘分区或U盘

  • 开始安装小芭比到硬盘分区或U盘



四、重启系统,在Windows启动菜单中会出现Puppy linux (pup2usb)启动项。



二、两系统共存用的引导“syslinux”的设置


1、下载syslinux(http://www.kernel.org/pub/linux/utils/boot/syslinux/),我下载的是syslinux-3.53.tar.gz,现在有3.72版了。


2、进入windows命令提示符,一直cd到win32文件夹,输入syslinux.exe -m -a -d /boot j:(J盘是我U盘符,你的是什么自己更改)


有人说




其中 -d /boot是把命令生成的启动系统文件ldlinux.sys放到该目录,并从该目录寻找syslinux.cfg配置文件,如果没有该选项也可 以,ldlinux.sys会默认放在U盘根目录,且是隐藏的,并且系统会在 根目录、/boot、 /syslinux、/boot/syslinux 四个目录寻找syslinux.cfg



但是我用了这个参数,把cfg放在boot里还是不行,只有把cfg放根目录了。


3、现在开始编辑syslinux.cfg这个文件(这里部分内容参考了http://hi.baidu.com/xuyungui/blog/item/454179089a53bda92fddd47f.html的配置,非常感谢)


default /boot/vesamenu.c32   ‘在syslinux安装包里,拷到这里



MENU BACKGROUND /boot/peace.jpg          ’背景图片,640X480
MENU TITLE MultiBoot             ’这个是菜单标题
prompt 0
timeout 300                             ‘默认的时间,不动键盘就自动启动了

label puppy                                               ’puppy的菜单
MENU LABEL Puppy USB Linux
kernel /puppy/vmlinuz                              ‘这2行不要改
append initrd=/puppy/initrd.gz

label winpe                                                ’PE的菜单
MENU LABEL WinPE
kernel /ldntldr                                          ‘最好不要改
append initrd=/ntldr

label reboot                                                 ’我加了一个重启的菜单
MENU LABEL Reboot
kernel /boot/reboot.c32

label HardDisk                                            ’从硬盘启动,这个我一直搞不好,详见后面
MENU LABEL HardDisk Boot
kernel /boot/chain.c32

好了,改成以上内容保存。



三、WinPE启动需要的文件


这里选择用的比较广泛的,而且我也在用的“老九WinPE老毛桃最终撒手不管版”

前面已经把配置写好了,就差准备文件了。


1、ldntldr(本段引自上面的绿色链接)




其中,ldntldr文件最麻烦,网上很多帖子都提到了这个文件的使用等,就是没提怎么得到这个文件,我找了很久终于在一个帖子里发现它是Loadbin的一个工具,又去搜索loadbin,发现它又是grubutil的一个工具,终于找到了下载地址(http://download.gna.org /grubutil/),我下载的是loadbin-0.1-bin-w32-2008-03-01.zip, 解压后终于发现了可爱的ldntldr.bin,赶紧复制到U盘根目录,并改名为ldntldr,也就是把后缀给去掉。



3、把“老九WinPE 老毛桃最终撒手不管版”解压,并把如下文件和文件夹复制到U盘根目录
/MiniPE
/WXPE
WINNT.XPE
把 /WXPE 中的两个文件剪切到U盘根目录,NTDETECT.COM不用动(fantasy027注:不是不动地方,是不用改名,这里原作者说的不清楚,我以为不动地方,结果害的我pe启动不了,重启几次,并上网查了资料才知道怎么回事)SETUPLDR.BIN改名为ntldr。

4、最后的目录结构看图吧。


phpzetL1R



这样就完成了。


就是菜单中硬盘启动那项总是不对,我直接输入chain.c32 (hd0,1)/(hd0,0)/(sd0,0)/(sd0,1)都不行,郁闷。