hello world!
分类: LINUX
2013-02-27 13:57:54
U盘作为安装媒介代替光盘安装,整个制作过程引导U盘的程序(grub)至关重要和ISO中需要的部分文件拷贝出放入对应的目录,如vmlinuxz、initrd.img、ks.cfg 、images/install.img。制作过程如下:
1. 准备U盘,使用分区工具cfdisk 把U盘分出一个4G分区(可以放入ISO 和需要文件,根据自己需求定)
”cfdisk /dev/sdb “ 注:U盘设备
2. 分区完成后格式化分区
mkfs.vfat /dev/sdb1
3.创建目录
把制作好的U盘手动挂在/mnt目录下面
mkdir -p /mnt/{boot/grub ,images}
4.把文件放入对应目录
1>grub引导文件放入/mnt/boot/grub/目录下:
e2fs_stage1_5、ffs_stage1_5 iso9660_stage1_5、minix_stage1_5、stage1、ufs2_stage1_5、xfs_stage1_5、fat_stage1_5、grub.conf、jfs_stage1_5、reiserfs_stage1_5、stage2、vstafs_stage1_5
stage1: /boot/grub中的stage1文件大小为512b,它是引导扇区中引导程序(前446字节为引导程序)的备份文件,功能是用来装载 stage1.5或stage2的。
stage1_5 :stage1并不能识别文件系统格式,stage1.5引导位于e2fs_stage1_5,fat_stage1_5,分别用于识别ext和fat的文件系统格式
stage2:grub能让用户以选项方式将OS加载、改变参数、修改选项,这些全都是stage2程序的功能。
stage2可以去获取grub.conf以及menu.lst等文件的内容。
2>ISO文件放入
cp -R ISO目录/isolinux/{vmlinuz,initrd.img}
/mnt/boot/
cp -R ISO目录/images/install.img /mnt/images/
cp -R ISO目录/ks.cfg /mnt/ks.cfg
5.生成grub引导
1> grub
2> root (hd1,0) 注:hd1是U盘设备,0是hd1的第一个分区
3> setup (hd1)
4> quit
完成操作。
grub.conf文件需要如下:
default=0
timeout=5
hiddenmenu
title fedora-13
root (hd0,1)
kernel /boot/vmlinuz ks=hd:sda2/ks.cfg
repo=hd:sda2:/
initrd /boot/initrd.img
title fedora-17
root (hd0,1)
kernel /images/pxeboot/vmlinuz repo=hd:/dev/sda2:/
initrd /images/pxeboot/initrd.img
1、将LiveCD中的isolinux和LiveOS文件夹解压出来放在放在EXT2/EXT3或FAT32分区指定目录下。例如,我将其放入U盘的第二个分区下的/Fedora17-LiveOS下。
#mount -o loop Fedora-17-i686-Live-Desktop.iso /mnt
#mkdir Fedora17-LiveOS
#cp /mnt/* Fedora17-LiveOS/
2、修改grub的引导项。如下
title Fedora17-LiveOS
root
(hd0,1)
kernel /Fedora17-LiveOS/isolinux/vmlinuz0
root=UUID=0C02-A283 live_dir=/
Fedora17-LiveOS /LiveOS/ liveimg quiet rhgb rootfstype=auto
initrd /Fedora17-LiveOS/isolinux/initrd0.img
即可。
经多次折腾测试,最精炼的Fedora-17-i686-Live-Desktop硬盘系统的炼成法是:
提取Fedora-17-i686-Live-Desktop.iso中的LiveOS整个文件夹及内容放到一vfat或FAT32格式分区的根目录下,并提取Fedora-17-i686-Live-Desktop.iso的isolinux内initrd0.img和vmlinuz0到目标分区文件夹LiveOS内。并编辑启动程序加入如下菜单:
title Fedora17-LiveOS
root (hd0,1)
kernel /LiveOS/vmlinuz0 root=UUID=0C02-A283 liveimg quiet rhgb rootfstype=auto
initrd /LiveOS/initrd0.img
#kernel /LiveOS/vmlinuz0 root=live:/dev/sda2 liveimg quiet rhgb rootfstype=auto,最好不要采用“root=/dev/sda2”告诉内核的根文件系统所在位置,因为如果有多个存储设备时,sda还是sdb是不确定的。使用UUID号指定,肯定不会出问题。
重启选择这引导菜单即可进入了LiveOS。
以上配置,可以正常使用Liveusb,但是运行系统后,不能保存用户设置。进行下一步,则可以保存用户数据。
3、创建 overlay 文件
运行 su -c "livecd-iso-to-disk --overlay-size-mb 512 Fedora-16-x86_64-Live-Desktop.iso /dev/USBPARTITIONNAME"
可以直接制作好liveusb,参考制作好的效果。我们手动创建persistent data storage area。
在LiveOS目录下:
# dd if=/dev/zero of=overlay-JIE-775B-EDA3 count=1024 bs=1M
Overlay 文件的格式为:overlay-LABEL-UUID
然后在 grub.conf 中添加2个内核参数:rw overlay=UUID=775B-EDA3
可以保存用户设置的Liveusb制作完成。
完整的grub.conf
default=0
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
#splashimage=(hd0,1)/boot/grub/2.xpm.gz
hiddenmenu
title NeoKylin_install f17
root (hd0,0)
kernel /images/pxeboot/vmlinuz repo=hd:/dev/sdc1:/
initrd /images/pxeboot/initrd.img
title NeoKylin_install f13
root (hd0,0)
kernel /boot/vmlinuz ks=hd:sdc1/ks.cfg repo=hd:/dev/sdc1:/
initrd /boot/initrd.img
title Fedora17-LiveOS
root (hd0,0)
#kernel /Fedora13-Live/isolinux/vmlinuz0 root=UUID=3DB8-C873 live_dir=/Fedora13-Live/LiveOS liveing rhgb rootfstype=auto
kernel /LiveOS-fc17/vmlinuz0 root=UUID=775B-EDA3 live_dir=/LiveOS-fc17/ liveimg rhgb rootfstype=auto splash
#kernel (hd0,0)/LiveOS/vmlinuz0 root=UUID=3DB8-C873 liveing rhgb rootfstype=auto
initrd /LiveOS-fc17/initrd0.img
#initrd LiveOS/initrd0.img
title Neokylin-LiveOS
root (hd0,0)
#kernel /LiveOS/vmlinuz0 root=UUID=775B-EDA3 liveimg rhgb rootfstype=auto splash
#kernel /LiveOS/vmlinuz0 root=LABEL=JIE liveimg rhgb rootfstype=auto splash rw overlay=UUID=775B-EDA4 rdinitdebug
kernel /LiveOS/vmlinuz0 root=live:LABEL=JIE liveimg rhgb rootfstype=auto splash rw overlay=UUID=775B-EDA3
initrd /LiveOS/initrd0.img