借助虚拟机,在移动硬盘中安装Puppy Linux

2008-11-18

Puppy Linux 4.1.1发布了,把它安装在移动硬盘上作为随身系统是个不错的选择。Puppy的文档建议使用Live CD启动,然后通过其中的Puppy Universal Installer将其安装到USB硬盘,但刻录Live CD有点浪费。也有网友制作了Puppy硬盘安装程序,但只能安装在FAT或NTFS分区,以sfs镜像方式加载。不能安装在ext3分区,并且把文件系统在分区上展开。事实上,我们也可以不刻录Live CD,而借助虚拟机来加载Live CD ISO和移动硬盘执行安装程序,把Puppy像一般Linux发行版那样安装在ext3分区。我这里使用VMware Player,运行在Windows Vista上。

1、将移动硬盘插好。

2、在VMware Player中设置任一已存在的虚拟系统的光驱,加载Puppy的Live CD ISO。

3、启动这一虚拟系统,通过Esc键的启动选项菜单选择光盘引导。

4、待Puppy加载完成后,通过VMware Player的Genesys Logic Removable Disk功能挂载物理机上的移动硬盘。

5、在虚拟机中运行Puppy Universal Installer,将Puppy安装到挂载好的移动硬盘的ext3分区中。

理论上这样可以正确安装。但我安装后发现Puppy文件复制正确,而Grub或MBR不知何故有问题,用移动硬盘开机时显示乱码,没有响应。于是决定采用另外的思路,借助本地的Ubuntu 8.10系统在移动硬盘中重新安装Grub。

1、启动Ubuntu,在移动硬盘的Puppy所在的分区中建立/boot/grub目录,将Ubuntu的/boot/grub下的所有文件复制到Puppy的/boot/grub下。

2、在Ubuntu的终端下运行sudo grub,将Grub的引导信息写入移动硬盘的MBR,命令如下:

root (hd1,5)
setup (hd1)
quit

3、修改移动硬盘上的/boot/grub/menu.lst。由于我的移动硬盘中已有一套WinPE系统,所以需要配置两个引导项。内容如下:

default     0
timeout     10
title       Puppy Linux
root        (hd0,5)
kernel      /vmlinuz
initrd      /initrd.gz
title       Windows PE
root        (hd0,0)
savedefault
makeactive
chainloader +1

需要注意的是,在安装Grub时,本机硬盘为hd0,移动硬盘为hd1,所以要将Grub安装到hd1。而使用移动硬盘引导时,移动硬盘则成了hd0,故需要在menu.lst中加载hd0上的分区来启动系统。

然后再次测试,Grub正常加载。分别选择“Puppy Linux”和“Windows PE”,可以进入对应的系统。