免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4133 | 回复: 0
打印 上一主题 下一主题

使用U盘安装多个系统的实践 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-12 13:40 |只看该作者 |倒序浏览
我一直使用光盘安装系统,但是光盘介质容易损坏,而且系统一旦升级,又要重新刻过光盘。
上个星期,看到一篇文章,介绍使用U盘安装系统,受到启发,开始制作自己的多功能U盘。

工作环境:Linux及FreeBSD
工具:U盘一个(大于64M)

1、格式化U盘:
因为想在windows下也能使用U盘,所以把U盘格式成FAT32格式

进入Linux,格式化U盘

#mkfs.vfat /dev/sda1

2、在U盘上安装grub:

#grub --no-floppy

grub>root (hd1,0)

grub>setup (hd1)

......

grub>quit

#mkdir /mnt/usb
#mount /dev/sda1 /mnt/usb
#mkdir -p /mnt/usb/boot/{grub,kernel,image}
#cp /boot/grub/stage{1,2} /mnt/usb/boot/grub
#cp /boot/grub/fat_stage1_5 /mnt/usb/boot/grub

3、加入Ubuntu 8.04启动项:

打开链接:http://ubuntu.cn99.com/ubuntu/di ... ntu-installer/i386/

下载ubuntu 8.04的两个文件:linux和initrd.gz,并分别改名ubuntu804和ubuntu804.gz

#mv linux ubuntu804
#mv initrd.gz ubuntu804.gz

将这两个文件复制到U盘上:

#cp ubuntu804 /mnt/usb/boot/kernel
#cp ubuntu804.gz /mnt/usb/boot/image


编辑menu.lst文件,若没有则创建:

#vi /mnt/usb/boot/grub/menu.lst

文件包含以下内容:

default 0
timeout 300

title Ubuntu-8.04-installer
kernel /boot/kernel/ubuntu804
initrd /boot/image/ubuntu804.gz

加入debian、CentOS、RHEL4的步骤与上面基本相同

4、加入OpenBSD 4.3安装项:

首先复制memdisk到U盘上:

#cp /usr/lib/syslinux/memdisk /mnt/usb/boot/kernel
#gzip -9 /mnt/usb/boot/kernel/memdisk

到OpenBSD的FTP站点下载启动文件floppy43.fs:
ftp://ftp.freebsdchina.org/pub/OpenBSD/4.3/i386/floppy43.fs

#mv floppy43.fs openbsd43.fs
#cp openbsd43.fs /mnt/usb/boot/image

修改menu.lst:

#vi /mnt/usb/boot/grub/menu.lst

文件包含以下内容:

title OpenBSD-4.3-installer
kernel /boot/kernel/memdisk.gz
initrd /boot/image/openbsd43.fs

5、加入NetBSD 4.0安装项:

到NetBSD的FTP站点下载启动文件boot-big.fs:
ftp://ftp.netbsd.org/pub/NetBSD/ ... /floppy/boot-big.fs

#mv boot-big.fs netbsd40.fs
#cp netbsd40.fs /mnt/usb/boot/image

修改menu.lst:

#vi /mnt/usb/boot/grub/menu.lst

文件包含以下内容:

title NetBSD-4.0-installer
kernel /boot/kernel/memdisk.gz
initrd /boot/image/netbsd40.fs

卸载U盘:

#umount /mnt/usb

6、加入FreeBSD 7.0安装项:

加入FreeBSD的安装启动项比较复杂,需要在FreeBSD6.X或FreeBSD7.X下操作

装载U盘:

#mkdir /mnt/usb
#mount -t msdosfs /dev/da0s1 /mnt/usb

到FreeBSD的FTP站点下载启动文件(boot.flp、kern1.flp、kern2.flp、kern3.flp、mfsroot1.flp):

复制启动文件boot.flp中的内容到临时文件夹boot_tmp下:
#mkdir /mnt/cd
#mdconfig -a -t vnode -f boot.flp -u 0
#mount /dev/md0 /mnt/cd
#mkdir boot_tmp
#cp -R /mnt/cd/* boot_tmp/
#umount /mnt/cd
#mdconfig -d -u 0

查看boot_tmp下的kernel.gz.split和mfsroot.gz.split这两个文件,可以知道kernel.gz文件被分割成了四个文件:kernel.gz.boot、kernel.gz.aa、kernel.gz.ab、kernel.gz.ac,而mfsroot.gz被分割成了mfsroot.gz.boot和mfsroot.gz.aa两个文件,下面就是要把这几个分割开的文件合并到一起;

合并kernel.gz文件:
#mdconfig -a -t vnode -f kern1.flp -u 0
#mount /dev/md0 /mnt/cd
#cat /mnt/cd/kernel.gz.aa >> boot_tmp/kernel.gz.boot
#umount /mnt/cd
#mdconfig -d -u 0

#mdconfig -a -t vnode -f kern2.flp -u 0
#mount /dev/md0 /mnt/cd
#cat /mnt/cd/kernel.gz.ab >> boot_tmp/kernel.gz.boot
#umount /mnt/cd
#mdconfig -d -u 0

#mdconfig -a -t vnode -f kern3.flp -u 0
#mount /dev/md0 /mnt/cd
#cat /mnt/cd/kernel.gz.ac >> boot_tmp/kernel.gz.boot
#umount /mnt/cd
#mdconfig -d -u 0

#mv boot_tmp/kernel.gz.boot boot_tmp/kernel.gz
至此kernel.gz合并完毕

合并mfsroot.gz文件:
#mdconfig -a -t vnode -f mfsroot1.flp -u 0
#mount /dev/md0 /mnt/cd
#cat /mnt/cd/mfsroot.gz.aa >> boot_tmp/mfsroot.gz.boot
#umount /mnt/cd
#mdconfig -d -u 0

#mv boot_tmp/mfsroot.gz.boot boot_tmp/mfsroot.gz
至此mfsroot.gz合并完毕

另外还需要做额外一些工作:
#rm -f boot_tmp/{kernel,mfsroot}.gz.split

修改boot_tmp/boot/loader.conf文件,删除含有"Insert floppy"的两行

再把boot_tmp下的内容打包成启动文件:
#dd if=/dev/zero of=freebsd70 bs=1k count=6800
#mdconfig -a -t vnode -f freebsd70 -u 0
#disklabel -Bw /dev/md0
#newfs /dev/md0a
#mkdir /mnt/hd
#mount /dev/md0a /mnt/hd
#cp -R boot_tmp/* /mnt/hd
#umount /mnt/hd
#mdconfig -d -u 0
#gzip -9 freebsd70
#cp freebsd70.gz /mnt/usb/boot/image/

修改menu.lst:

#vi /mnt/usb/boot/grub/menu.lst

包含以下内容:

title FreeBSD-7.0-installer
kernel /boot/kernel/memdisk.gz
initrd /boot/image/freebsd70.gz


卸载U盘

#umount /mnt/usb


重启机器,设置成USB启动,就可以安装7个系统(占用U盘<50M),如有错误,请指出,欢迎交流!

评分

参与人数 1可用积分 +15 收起 理由
yuhuohu + 15 我很赞同

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP