基于Fedora制作USB优盘的Linux系统
基于USB优盘的linux小系统看起来很神秘,一般用户总是觉得很难做,其实在如今的Linux系统中这个问题一点都不神秘也很简单。
我尝试着基于Fedora Core 5的内核和系统在优盘上启动了一个完整的小系统,说他完整其实有些言过其实,因为这个系统包含如下的部分:
Grub + Kernel + Glibc + Udev 087 + BusyBox 1.1
这样的一个系统基本完成一个Linux基础系统的功能,虽然做不了更多的东西!
制作步骤和方法:
格式化优盘;
使用parted(我比较喜欢这个)或fdisk在优盘上创建Linux分区,并用mkfs.ext3建立文件系统;
建立以下目录结构,
bin
boot
dev
etc
lib
mnt
proc
sbin
sys
usr
把内核相关文件和glibc相关文件copy到优盘的文件系统中,
可以用rpm -ql确定copy哪些文件。
准备启动境象和安装grub,这是最关键的部分,
initrd境象是用来启动系统的先导境象文件,可以用mkinitrd生成该文件,对于需要优盘启动的境象文件,需要用参数--preload=uhci-hcd --preload=scsi_mod --preload=sd_mod --preload=usb-storage来加载相关的USB驱动,并且需要改动境象文件内的init脚本,把境象文件改名为.gz结尾的文件,用gzip -d解开,用cpio -iv < initrd 解开,可以编辑init文件,是一个脚本,
在insmod /lib/ext3.ko
之后,加上sleep 10,
这是让系统在加载完驱动模块后停留一段时间,等待USB设备加载完成,这个过程很多地方都是说改内核实现,我觉得那样不是很好,而且我一开始让系统等待5秒,好象时间太多,优盘没有加载完成,导致后面的根文件系统找不到,这个等待时间可以根据具体的系统情况调整。
改完按照解开步骤反过来生成新的境象。
放到优盘上,安装grub时注意使用grub-install 比较简单,加上--no-floppy ‘(hd0)’作为参数。
编译和安装busybox和Udev是比较简单的事情,只要Prefix以优盘文件系统作为目标即可。Udev系统也可以copy自Fedora。自己安装Udev 087会更合适(个人以为)。
这样一个基础小系统就完工了。
这里主要罗列了些制作的步骤和方法,具体的指令和脚本待整理后放出,因为包括从Fedora copy文件等步骤我都是通过写相关比较通用的脚本做的!
我尝试着基于Fedora Core 5的内核和系统在优盘上启动了一个完整的小系统,说他完整其实有些言过其实,因为这个系统包含如下的部分:
Grub + Kernel + Glibc + Udev 087 + BusyBox 1.1
这样的一个系统基本完成一个Linux基础系统的功能,虽然做不了更多的东西!
制作步骤和方法:
格式化优盘;
使用parted(我比较喜欢这个)或fdisk在优盘上创建Linux分区,并用mkfs.ext3建立文件系统;
建立以下目录结构,
bin
boot
dev
etc
lib
mnt
proc
sbin
sys
usr
把内核相关文件和glibc相关文件copy到优盘的文件系统中,
可以用rpm -ql确定copy哪些文件。
准备启动境象和安装grub,这是最关键的部分,
initrd境象是用来启动系统的先导境象文件,可以用mkinitrd生成该文件,对于需要优盘启动的境象文件,需要用参数--preload=uhci-hcd --preload=scsi_mod --preload=sd_mod --preload=usb-storage来加载相关的USB驱动,并且需要改动境象文件内的init脚本,把境象文件改名为.gz结尾的文件,用gzip -d解开,用cpio -iv < initrd 解开,可以编辑init文件,是一个脚本,
在insmod /lib/ext3.ko
之后,加上sleep 10,
这是让系统在加载完驱动模块后停留一段时间,等待USB设备加载完成,这个过程很多地方都是说改内核实现,我觉得那样不是很好,而且我一开始让系统等待5秒,好象时间太多,优盘没有加载完成,导致后面的根文件系统找不到,这个等待时间可以根据具体的系统情况调整。
改完按照解开步骤反过来生成新的境象。
放到优盘上,安装grub时注意使用grub-install 比较简单,加上--no-floppy ‘(hd0)’作为参数。
编译和安装busybox和Udev是比较简单的事情,只要Prefix以优盘文件系统作为目标即可。Udev系统也可以copy自Fedora。自己安装Udev 087会更合适(个人以为)。
这样一个基础小系统就完工了。
这里主要罗列了些制作的步骤和方法,具体的指令和脚本待整理后放出,因为包括从Fedora copy文件等步骤我都是通过写相关比较通用的脚本做的!
Comments