教你制作Linux操作系统的USB启动盘

文章作者 100test 发表时间 2007:05:12 12:21:20
来源 100Test.Com百考试题网


USB闪存存储装置(优盘)由于具有轻巧精致、使用方便、便于携带等优点,特别是对比软盘具有容量较大、安全可靠、读取速度较快等特性,越来越多人使用这种装置取代了软驱与软盘,在PC之

下载相关软件:e3,bvi,Linux内核。

编译内核

首先计算机的主板必须要支持USB硬盘的启动方式,并且所使用的优盘是启动型优盘。

我以Linux-2.4.20为例说明。编译时一定要注意不要编译不必要的模块,如声卡驱动等驱动模块,使编译的内核尽可能小一些。由于要支持优盘启动,必须将SCSI设备、usbcore、usb-storage、Loopback device support、RAM disk support和initrd等编译到内核中。

许多人会问,usb-storage模块已经包括在内核了为什么还要建立 initrd.img文件?这是由于优盘的初始化过程比执行/sbin/init慢,导致内核已经启动完成了,优盘还没有完成初始化工作,因此根文件系统没有加载,这时执行/sbin/init命令肯定不成功。通过建立initrd.img文件,在启动内核时加载initrd.img文件到内存中,等待3 秒使优盘完成初始化工作,再执行/sbin/init指令。具体操作步骤如下。

1.建立initrd.img文件



# mkdir -p /mnt/initrd   

# cd /tmp   

# mkinitrd /tmp/initrd.gz 2.4.20-usb

  

2.解压initrd.img文件,修改启动脚本linuxrc



# gunzip initrd.gz

# mount -o loop /tmp/initrd /mnt/initrd

# cp /sbin/busybox /mnt/initrd/bin

# cd /mnt/initrd/bin

# ln -s busybox sleep

# vi /mnt/initrd/linuxrc

  

加入如下内容:

  echo wait 3 seconds.....   /bin/sleep 3
  

3.重新生成initrd.img文件

由于缺省建立的initrd文件比较大(为4MB),为了加快优盘的启动,必须减小它。具体操作如下:

  # mkdir -p /mnt/initrdusb 

  # cd /tmp 

  # dd if =/dev/zero of= /tmp/initrdusb bs=1M count=1 

  # mke2fs -m 0 initrdusb 

  # mount -o loop /tmp/initrdusb /mnt/initrdusb 

  # cp -a /mnt/initrd/* /mnt/initrdusb 

  # umount /mnt/initrd 

  # umount /mnt/initrdusb 

  # cd /tmp 

  # gzip -9 initrdusb 

  # cp initrdusb.gz /boot/initrd-2.4.20-usb.imgusb.img

4.测试编译的内核是否正常启动

测试编译的内核是否正常启动,以及在启动过程中是否可看见优盘的相关信息。

建立优盘启动盘

1.将优盘分成两个分区

留给Linux分区容量大小完全取决于安装哪些系统维护工具,结果如下:

m

 odprobe usb-storage 

  # fdisk -l /dev/sda 

  Disk /dev/sda: 16 heads, 63 sectors, 126 cylinders 

  Units = cylinders of 1008 * 512 bytes 

  Device Boot Start End Blocks Id System 

  /dev/sda1 1 102 51376  6 FAT16 

  /dev/sda2 103 126 12096 83 Linux

注意:如果需要使用优盘引导Windows 98,扇区大小必须设置为63个扇区,可以通过fdisk的x命令扩展修改heads、sectors和cylinders参数。

2.建立与生成ext2分区

# mke2fs -m 0 /dev/sda2 

  # mkdir -p /mnt/sda2 

  # mount /dev/sda2 /mnt/sda2 

  # cd /mnt/sda2



相关文章


OracleX计划:应用集成架构
解决Oracle下的undo空间过大的问题
在不同字符集的数据库之间导入数据的方法
在Oracle10g和9i上一些新的特性的总结
教你制作Linux操作系统的USB启动盘
linux的运行模式:Runlevel详细解析
利用sudo命令为Ubuntu分配管理权限
深入浅出Linux设备驱动异步通知介绍
深入浅出Linux设备驱动中断处理介绍
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛