分类: LINUX
2009-07-07 17:05:25
环境:
移动硬盘分四个区,第一个区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这个参数即可。
chinaunix网友2009-07-24 21:14:12
没有想到这个,呵呵,jyl198803_AT_gmail_dot_com,请教说不上,我基本还是初学者,呵呵。 这个启动直接就可以用了,跟光盘启动一样的效果,puppy直接启动就可以用了,不用像别的发行版那样安装; 我没试过移动硬盘装别的发行版,这里就用了一下我机器里Debian的GRUB。这里有把Debian装到U盘的文章,貌似是Debian的USB版:http://gashero.javaeye.com/blog/341072
chinaunix网友2009-07-22 16:29:04
楼主的空间找不到email可不是个好习惯那 哈哈 还得跟你请教呢 引用: “重启从移动硬盘启动,便可以进入puppy了,具体的使用网上有的是,不再赘述。” 请问进入的是安装界面还是最终界面?假如我想把debian安装到移动硬盘是否可行? 要swap分区么 3kx~~ :) hedybest#163.com