- 论坛徽章:
- 0
|
我一直使用光盘安装系统,但是光盘介质容易损坏,而且系统一旦升级,又要重新刻过光盘。
上个星期,看到一篇文章,介绍使用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),如有错误,请指出,欢迎交流! |
评分
-
查看全部评分
|