Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7171037
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类:

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这个参数即可。

阅读(933) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~