迷彩 潜伏 隐蔽 伪装
分类:
2012-02-22 22:47:51
环境:
移动硬盘分四个区,第一个区diskone为ext3格式,原来装的slax,不想用了,删掉;
主机装的Debian单系统,lenny,没有Windows,所以国内网上流传的方法不适用了,只好边爬英文论坛边自己研究。
思路:
把Debian的GRUB装到移动硬盘MBR上(原来有LILO,不过我更喜欢GRUB),用来引导puppy。
最终得到的结果是:
移动硬盘下面有两个关键目录,grub里面是引导程序(Debian里面拷贝过来的),puppy是操作系统(光盘镜像里面拷贝过来的);
移动硬盘的MBR里面是GRUB的stage1。
过程(曲折的探索过程就不细说了,直接说可以正确完成的结果;照顾新手,还算比较详细):
下面的活都是在root权限下干的
1、准备文件:
下载puppy-4.2.1-k2.6.25.16-seamonkey.iso,我直接下载的英文版,中文以后慢慢再配置。
将这个镜像挂在到一个目录中,例如我在我家干活的实录:
debian:/home/yuliang# pwd
/home/yuliang
debian:/home/yuliang# mkdir puppy
debian:/home/yuliang# mount -o loop puppy-4.2.1-k2.6.25.16-seamonkey.iso puppy
然后直接把puppy这个目录拷贝到移动硬盘中(移动硬盘的分区我自己设了卷标,所以是diskone,如果没设卷标应该是sda几之类的,SATA硬盘):
debian:/home/yuliang# cp -r puppy /media/diskone
debian:/home/yuliang# umount puppy
2、准备引导:
Debian本身就有GRUB,我直接将Debian的GRUB转移到了移动硬盘上了:
拷贝了Debian里面/boot/grub下的所有文件到移动硬盘第一个区:
debian:/boot# pwd
/boot
debian:/boot# cp -r grub /media/diskone
所以/media/diskone/grub这里便也有了全套的stage文件
3、编写menu.lst:
debian:/media/diskone/grub# vi /media/diskone/grub/menu.lst
完整的无注释版内容如下(引导的重要步骤,比较关键):
default 0
timeout 3
title Puppy Linux
kernel /puppy/vmlinuz ramdisk_size=256000 root=/dev/ram0 pmedia=usbflash psubdir=puppy
initrd /puppy/initrd.gz
注意:title下一行没有root(hd*,*)之类的选项,因为会造成无法启动。
4、安装引导(引导的关键步骤,比较重要):
本机硬盘和移动硬盘都是SATA的,所以本机的叫(hd0),移动硬盘叫(hd1),第一个分区叫(hd1,0)
debian:/media/diskone/grub# grub
grub> find /grub/stage1
(hd0,0)
(hd1,0)
find这一步就是查找一下stage文件,(hd0,0)这个也被find到了,因为(hd0,0)恰好是我的boot分区。(hd0,0)是本机硬盘,(hd1,0)便是移动硬盘了,移动硬盘里面的stage1文件就是第二步从本机grub目录拷贝过来的。
grub> root (hd1,0)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd1)
Checking if "/boot/grub/stage1" exists... no
Checking if "/grub/stage1" exists... yes
Checking if "/grub/stage2" exists... yes
Checking if "/grub/e2fs_stage1_5" exists... yes
Running "embed /grub/e2fs_stage1_5 (hd1)"... 17 sectors are embedded.
succeeded
Running "install /grub/stage1 (hd1) (hd1)1+17 p (hd1,0)/grub/stage2 /grub/menu
.lst"... succeeded
Done.
完成。
重启从移动硬盘启动,便可以进入puppy了,具体的使用网上有的是,不再赘述。
后记:
将puppy安装在单独的目录里面,和grub目录里面的引导程序分开是有好处的,如果需要安装多个puppy,可以直接新建一个目录,拷贝新的文件,然后menu.lst里面添加一项新的启动记录,只需修改内核等文件的位置和kernel里面的psubdir这个参数即可。