<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TQ 试用 WP &#187; usbloading</title>
	<atom:link href="http://tq.freehostia.com.freehostia.com/tag/usbloading/feed" rel="self" type="application/rss+xml" />
	<link>http://tq.freehostia.com.freehostia.com</link>
	<description>TQ 试用中... ...</description>
	<lastBuildDate>Fri, 19 Mar 2010 06:07:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>USB引导盘制作</title>
		<link>http://tq.freehostia.com.freehostia.com/2009/10/create_usbloading_media.html</link>
		<comments>http://tq.freehostia.com.freehostia.com/2009/10/create_usbloading_media.html#comments</comments>
		<pubDate>Sun, 11 Oct 2009 03:34:00 +0000</pubDate>
		<dc:creator>TQ</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[usbloading]]></category>

		<guid isPermaLink="false">http://tq.freehostia.com.freehostia.com/2009/10/create_usbloading_media.html</guid>
		<description><![CDATA[USB引导盘制作
2008年2月20日
一、系统启动过程：
开机→初始化BIOS→→启动引导器bootloader→→装载内核kernel→→启动init
（GRUB）

l 第一步，初始化BIOS：设置启动顺序等基本输入输出系统。
MBR... ]]></description>
			<content:encoded><![CDATA[<p><b>USB</b><b>引导盘制作</b>
<p>2008年2月20日
<p><b>一、系统启动过程：</b>
<p>开机→初始化BIOS→→启动引导器bootloader→→装载内核kernel→→启动init
<p>（GRUB）
<p><b></b>
<p>l <b>第一步，初始化</b><b>BIOS</b><b>：</b>设置启动顺序等基本输入输出系统。
<p>MBR：Master Boot Recorder主引导分区 （512字节，0柱面、0磁头、第1个扇区）
<p>446字节MBC：主引导代码（找可引导分区）
<p>64字节DPT：4个16字节的主分区信息
<p>2字节：55AA（十六进制数）表示结束。
<p>l <b>第二步，启动引导器</b><b>bootloader</b><b>：</b><b></b>
<p>⑴ grub：/boot/grub/grub.conf配置文件
<p># grub.conf generated by anaconda
<p>#
<p># Note that you do not have to rerun grub after making changes to this file
<p># NOTICE: You do not have a /boot partition. This means that
<p># all kernel and initrd paths are relative to /, eg.
<p># root (hd0,0)
<p># kernel /boot/vmlinuz-version ro root=/dev/sda1
<p># initrd /boot/initrd-version.img
<p>#boot=/dev/sda
<p>default=0
<p>timeout=5
<p>splashimage=(hd0,0)/boot/grub/splash.xpm.gz
<p>hiddenmenu
<p>title Red Hat Enterprise Linux Server (2.6.18-8.el5)
<p>root (hd0,0)
<p><b>注：</b>hd0：第一个硬盘 ， 0：第一个分区
<p>hd0是由/boot/grub/device.map硬盘映射的。
<p>kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet 安静：不显示selinux提示的错误信息等其它信息。
<p><b>注：</b>根分区为卷标为／的。
<p>initrd /boot/initrd-2.6.18-8.el5.img
<p><b>注：</b>[root@vm5: /boot]#ls
<p>config-2.6.18-8.el5 initrd-2.6.18-8.el5.img System.map-2.6.18-8.el5
<p>grub symvers-2.6.18-8.el5.gz vmlinuz-2.6.18-8.el5
<p>[root@vm5: /boot]#mkdir initrd
<p>[root@vm5: /boot]#ls
<p>config-2.6.18-8.el5 initrd symvers-2.6.18-8.el5.gz vmlinuz-2.6.18-8.el5
<p>grub initrd-2.6.18-8.el5.img System.map-2.6.18-8.el5
<p>[root@vm5: /boot]#gunzip &lt; initrd-2.6.18-8.el5.img &gt; initrd/initrd.img
<p>[root@vm5: /boot]#cd initrd
<p>[root@vm5: /boot/initrd]#ls
<p>initrd.img
<p>[root@vm5: /boot/initrd]#file initrd.img
<p>initrd.img: ASCII cpio archive (SVR4 with no CRC)
<p>[root@vm5: /boot/initrd]#cpio -iv &lt; initrd.img
<p>sys
<p>lib
<p>lib/mptspi.ko
<p>lib/ext3.ko 载入：ext3驱动模块
<p>lib/mptbase.ko
<p>lib/sd_mod.ko 载入：sd驱动模块
<p>lib/ohci-hcd.ko 载入：other芯片驱动模块
<p>lib/jbd.ko
<p>lib/mptscsih.ko
<p>lib/ehci-hcd.ko 载入：USB2.0驱动模块
<p>lib/uhci-hcd.ko 载入：USB1.1驱动模块
<p>lib/scsi_mod.ko 载入：SCSI驱动模块
<p>lib/scsi_transport_spi.ko
<p>etc
<p>proc
<p>init
<p>bin
<p>bin/nash
<p>bin/modprobe
<p>bin/insmod
<p>sysroot
<p>dev
<p>dev/mapper
<p>dev/tty7
<p>dev/tty3
<p>dev/tty2
<p>dev/tty0
<p>dev/ttyS0
<p>dev/tty6
<p>dev/ram
<p>dev/ram1
<p>dev/rtc
<p>dev/zero
<p>dev/tty11
<p>dev/ptmx
<p>dev/tty
<p>dev/tty5
<p>dev/console
<p>dev/tty10
<p>dev/ttyS1
<p>dev/tty1
<p>dev/tty8
<p>dev/tty4
<p>dev/null
<p>dev/tty9
<p>dev/ram0
<p>dev/tty12
<p>dev/ttyS2
<p>dev/systty
<p>dev/ttyS3
<p>sbin
<p>6761 blocks
<p>[root@vm5: /boot/initrd]#ls
<p>bin dev etc init initrd.img lib proc sbin sys sysroot
<p>[root@vm5: /boot/initrd]#vim init
<p>#!/bin/nash
<p>mount -t proc /proc /proc
<p>setquiet
<p>echo Mounting proc filesystem
<p>echo Mounting sysfs filesystem
<p>mount -t sysfs /sys /sys
<p>echo Creating /dev
<p>mount -o mode=0755 -t tmpfs /dev /dev
<p>mkdir /dev/pts
<p>mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
<p>mkdir /dev/shm
<p>mkdir /dev/mapper
<p>echo Creating initial device nodes
<p>mknod /dev/null c 1 3
<p>mknod /dev/zero c 1 5
<p>mknod /dev/systty c 4 0
<p>mknod /dev/tty c 5 0
<p>mknod /dev/console c 5 1
<p>mknod /dev/ptmx c 5 2
<p>mknod /dev/rtc c 10 135
<p>mknod /dev/tty0 c 4 0
<p>mknod /dev/tty1 c 4 1
<p>mknod /dev/tty2 c 4 2
<p>mknod /dev/tty3 c 4 3
<p>mknod /dev/tty4 c 4 4
<p>mknod /dev/tty5 c 4 5
<p>mknod /dev/tty6 c 4 6
<p>mknod /dev/tty7 c 4 7
<p>mknod /dev/tty8 c 4 8
<p>mknod /dev/tty9 c 4 9
<p>mknod /dev/tty10 c 4 10
<p>mknod /dev/tty11 c 4 11
<p>mknod /dev/tty12 c 4 12
<p>mknod /dev/ttyS0 c 4 64
<p>⑵ initrd：解决驱动问题（rd：run disk）
<p>initrd /boot/initrd-2.6.18-8.el5.img
<p>l <b>第三步，装载内核</b><b>kernel</b><b>：</b><b></b>
<p>kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ rhgb quiet
<p>l <b>第四步，初始化</b><b>init</b><b>：</b><b></b>
<p>/etc/inittab配置文件 →→初始化 /etc/rc.d/
<p>#
<p># inittab This file describes how the INIT process should set up
<p># the system in a certain run-level.
<p>#
<p># Author: Miquel van Smoorenburg, &lt;miquels@drinkel.nl.mugnet.org&gt;
<p># Modified for RHS Linux by Marc Ewing and Donnie Barnes
<p>#
<p># Default runlevel. The runlevels used by RHS are:
<p># 0 &#8211; halt (Do NOT set initdefault to this)
<p># 1 &#8211; Single user mode
<p># 2 &#8211; Multiuser, without NFS (The same as 3, if you do not have networking)
<p># 3 &#8211; Full multiuser mode
<p># 4 &#8211; unused
<p># 5 &#8211; X11
<p># 6 &#8211; reboot (Do NOT set initdefault to this)
<p>#
<p>id:3:initdefault: 设置默认的运行级别为：3
<p># System initialization.
<p>si::sysinit:/etc/rc.d/rc.sysinit sysinit:一定要运行完后面的脚本，再继续运行后面，有错也不停（继续运行后面程序）
<p>l0:0:wait:/etc/rc.d/rc 0 wait:等运行完后面脚本，再继续运行会面，有错就停。
<p>l1:1:wait:/etc/rc.d/rc 1
<p>l2:2:wait:/etc/rc.d/rc 2
<p>l3:3:wait:/etc/rc.d/rc 3
<p>l4:4:wait:/etc/rc.d/rc 4
<p>l5:5:wait:/etc/rc.d/rc 5
<p>l6:6:wait:/etc/rc.d/rc 6
<p># Trap CTRL-ALT-DELETE
<p>ca::ctrlaltdel:/sbin/shutdown -t3 -r now
<p># When our UPS tells us power has failed, assume we have a few minutes
<p># of power left. Schedule a shutdown for 2 minutes from now.
<p># This does, of course, assume you have powerd installed and your
<p># UPS connected and working correctly.
<p>pf::powerfail:/sbin/shutdown -f -h +2 &#8220;Power Failure; System Shutting Down&#8221;
<p># If power was restored before the shutdown kicked in, cancel it.
<p>pr:12345:powerokwait:/sbin/shutdown -c &#8220;Power Restored; Shutdown Cancelled&#8221;
<p># Run gettys in standard runlevels
<p>1:2345:respawn:/sbin/mingetty tty1 respawn:可重生
<p>2:2345:respawn:/sbin/mingetty tty2
<p>3:2345:respawn:/sbin/mingetty tty3
<p>4:2345:respawn:/sbin/mingetty tty4
<p>5:2345:respawn:/sbin/mingetty tty5
<p>6:2345:respawn:/sbin/mingetty tty6
<p># Run xdm in runlevel 5
<p>x:5:respawn:/etc/X11/prefdm –nodaemon
<p>/etc/inittab配置文件 →→初始化： /etc/rc.d/rc.sysinit 键盘、鼠标驱动
<p>（5步） /etc/rc.d/rc 运行级别
<p>/etc/rc.d/rc.local
<p>系统环境配置
<p>l <b>说明：</b>
<p>⑴ initrd先于kernel，如果kernel中有硬盘等驱动就不用initrd了。
<p>RHEL5的kernel中没有硬盘驱动，所以得先initrd再装载kernel。
<p>⑵ 当前模块配置文件在：/boot/config-2.6.18-8.el5中，同/usr/local/src/`uname -r`/.config文件
<p>⑶ /boot/grub中，menu.lst -&gt; ./grub.conf
<p>⑷ 在第四步中，
<p>/etc/inittab配置文件 →→初始化 /etc/rc.d/rc.sysinit 键盘、鼠标驱动
<p>/etc/rc.d/rc 运行级别
<p>/etc/rc.d/rc.local 系统环境配置
<p><b>二、U盘引导制作方法、步骤：</b>
<p>⑴ 对U盘分区、格式化为EXT3文件系统并且加可引导。
<p>[root@vm5: ~]#fdisk /dev/sdb
<p>按a，加可引导。
<p>[root@vm5: ~]#partprobe
<p>[root@vm5: ~]#mke2fs -j /dev/sdb1
<p>⑵ 安装目录树。
<p>[root@vm5: /mnt/Server]#rpm -ivh &#8211;nodeps &#8211;force &#8211;root=/mnt/ filesystem-2.4.0-1.i386.rpm
<p>⑶ 安装grub。
<p>[root@vm5: /mnt/Server]#rpm -ivh &#8211;nodeps &#8211;force &#8211;root=/mnt/ grub-0.97-13.i386.rpm
<p>⑶ 拷贝应用程序到U盘。注：不要覆盖刚刚生成的文件或目录。
<p>[root@vm5: ~]#cp -rf /bin/* /mnt/bin/
<p>[root@vm5: ~]#cp -rf /sbin/* /mnt/sbin/
<p>[root@vm5: ~]#cp -rf /usr/bin/* /mnt/usr/bin/
<p>[root@vm5: ~]#cp -rf /usr/sbin/* /mnt/usr/sbin/
<p>⑷ 拷贝库文件到U盘。注：不要覆盖刚刚生成的文件或目录。
<p>[root@vm5: ~]#cp -rf /lib/* /mnt/lib/
<p>[root@vm5: ~]#cp -rf /usr/lib/* /mnt/usr/lib/ ←如果文件太大，可不拷
<p>⑸ 拷贝/boot/*到U盘之后，在U盘中修改/mnt/boot/grub/grub.conf配置文件、修改/mnt/boot/grub/device.map硬盘映射文件等。
<p>[root@vm5: ~]#cp -rf /boot/* /mnt/boot/
<p>[root@vm5: /mnt]#vim boot/grub/grub.conf
<p>改：default=0
<p>timeout=5
<p>hiddenmenu
<p>title Red Hat Enterprise Linux Server USB LINUX (2.6.18-8.el5)
<p>root (hd0,0)
<p>kernel /boot/vmlinuz-2.6.18-8.el5 ro root=/dev/sdb1 init=/bin/bash
<p>注：不能有多于的“空格”，否则，无法引导成功！
<p>initrd /boot/initrd_usb.img
<p>[root@vm5: /mnt]#vim boot/grub/device.map
<p>写：(hd0) /dev/sdb
<p>⑹ 创建设备文件。 块 主 从
<p>[root@vm5: ~]#mknod /mnt/dev/sdb b 8 16
<p>[root@vm5: ~]#mknod /mnt/dev/sdb1 b 8 17
<p>说明：主设备号：用同一个驱动。
<p>从设备号：记录分区号。
<p>[root@vm5: /mnt/Server]#rpm -ivh kernel-doc-2.6.18-8.el5.noarch.rpm安装内核文档，查看/usr/share/doc/kernel-doc-2.6.18/Documentation/devices.txt文档来学习主设备号、从设备号等说明。
<p>⑺ 加载驱动到initrd。 注：加载顺序不能错！
<p>[root@vm5: ~]#mkinitrd &#8211;with=sd_mod &#8211;with=scsi_mod &#8211;with=uhci-mod &#8211;with=ehci-hcd &#8211;with=usb-storage /mnt/boot/ initrd_usb.img `uname -r`
<p>说明：initrd_usb.img为U盘中/mnt/boot/grub/grub.conf配置文件中initrd /boot/initrd_usb.img 。
<p>⑻ 拷贝/etc/fstab和/etc/mtab，并加以修改。
<p>[root@vm5: ~]#cp /etc/fstab /mnt/etc/fstab
<p>只写：/dev/sdb1 / ext3 defaults 1 1
<p>[root@vm5: ~]#cp /etc/mtab /mnt/etc/mtab
<p>只写：/dev/sdb1 / ext3 rw 0 0
<p>⑼ 切换U盘/mnt/为／根分区。
<p>[root@vm5: ~]#chroot /mnt
<p>⑽ 重装sdb，修复MBR。
<p>sh-3.1#grub-install /dev/sdb
<p>sh-3.1#grub-install &#8211;recheck /dev/sdb
<p>注：检测（也可不用）
<p>至此，U盘引导盘制作完毕！用sync命令同步一下磁盘，重启系统。
<p>改BIOS为USB-HDD为第一启动，即可用U盘引导Linux系统了！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://tq.freehostia.com.freehostia.com/2009/10/create_usbloading_media.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
