centos 6 ramdisk centos官网
本篇文章给大家谈谈centos 6 ramdisk,以及centos官网对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
centos 6.6怎么升级内核
1.准备工作
确认内核及版本信息
[root@hostname~]# uname-r
2.6.32-220.el6.x86_64
[root@hostname~]# cat/etc/centos-release
CentOS release 6.5(Final)
安装软件
编译安装新内核,依赖于开发环境和开发库
# yum grouplist//查看已经安装的和未安装的软件包组,来判断我们是否安装了相应的开发环境和开发库;
# yum groupinstall"Development Tools"//一般是安装这两个软件包组,这样做会确定你拥有编译时所需的一切工具
# yum install ncurses-devel//你必须这样才能让 make*config这个指令正确地执行
# yum install qt-devel//如果你没有 X环境,这一条可以不用
# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel//创建 CentOS-6内核时需要它们
如果当初安装系统是选择了Software workstation,上面的安装包几乎都已包含。
2.编译内核
获取并解压内核源码,配置编译项
Linux内核版本有两种:稳定版和开发版,Linux内核版本号由3个数字组成:r.x.y
r:主版本号
x:次版本号,偶数表示稳定版本;奇数表示开发中版本。
y:修订版本号,表示修改的次数
去 首页,可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,因此我选择 3.10.58。
[root@sean~]#wget
[root@sean~]# tar-xf linux-3.10.58.tar.xz-C/usr/src/
[root@sean~]# cd/usr/src/linux-3.10.58/
[root@sean linux-3.10.58]# cp/boot/config-2.6.32-220.el6.x86_64.config
我们在系统原有的内核配置文件的基础上建立新的编译选项,所以复制一份到当前目录下,命名为.config。接下来继续配置:
[root@sean linux-3.10.58]# sh-c'yes""| make oldconfig'
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf--oldconfig Kconfig
.config:555:warning: symbol value'm' invalid for PCCARD_NONSTATIC
.config:2567:warning: symbol value'm' invalid for MFD_WM8400
.config:2568:warning: symbol value'm' invalid for MFD_WM831X
.config:2569:warning: symbol value'm' invalid for MFD_WM8350
.config:2582:warning: symbol value'm' invalid for MFD_WM8350_I2C
.config:2584:warning: symbol value'm' invalid for AB3100_CORE
.config:3502:warning: symbol value'm' invalid for MMC_RICOH_MMC
*
* Restart config...
*
*
* General setup
*
......
XZ decompressor tester(XZ_DEC_TEST) [N/m/y/?](NEW)
Averaging functions(AVERAGE) [Y/?](NEW) y
CORDIC algorithm(CORDIC) [N/m/y/?](NEW)
JEDEC DDR data(DDR) [N/y/?](NEW)
#
# configuration written to.config
make oldconfig会读取当前目录下的.config文件,在.config文件里没有找到的选项则提示用户填写,然后备份.config文件为.config.old,并生成新的.config文件,参考
有的文档里介绍使用make memuconfig,它便是根据需要定制模块,类似界面如下:(在此不需要)
开始编译
[root@sean linux-3.10.58]# make-j4 bzImage//生成内核文件
[root@sean linux-3.10.58]# make-j4 modules//编译模块
[root@sean linux-3.10.58]# make-j4 modules_install//编译安装模块
-j后面的数字是线程数,用于加快编译速度,一般的经验是,逻辑CPU,就填写那个数字,例如有8核,则为-j8。(modules部分耗时30多分钟)
安装
[root@sean linux-3.10.58]# make install
实际运行到这一步时,出现ERROR: modinfo: could not find module vmware_balloon,但是不影响内核安装,是由于vsphere需要的模块没有编译,要避免这个问题,需要在make之前时修改.config文件,加入
HYPERVISOR_GUEST=yCONFIG_VMWARE_BALLOON=m
(这一部分比较容易出问题,参考下文异常部分)
修改grub引导,重启
安装完成后,需要修改Grub引导顺序,让新安装的内核作为默认内核。
编辑 grub.conf文件,
vi/etc/grub.conf
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS(3.10.58)
root(hd0,0)
...
数一下刚刚新安装的内核在哪个位置,从0开始,然后设置default为那个数字,一般新安装的内核在第一个位置,所以设置default=0。
重启reboot:
boot-with-new-kernel
确认当内核版本
[root@sean~]# uname-r
3.10.58
升级内核成功!
3.异常
编译失败(如缺少依赖包)
可以先清除,再重新编译:
# make mrproper#完成或者安装过程出错,可以清理上次编译的现场
# make clean
在vmware虚拟机上编译,出现类似下面的错误
[root@sean linux-3.10.58]# make install
sh/usr/src/linux-3.10.58/arch/x86/boot/install.sh 3.10.58 arch/x86/boot/bzImage\
System.map"/boot"
ERROR: modinfo: could not find module vmware_balloon
可以忽略,如果你有强迫症的话,尝试以下办法:
要在vmware上需要安装VMWARE_BALLOON,可直接修改.config文件,但如果vi直接加入CONFIG_VMWARE_BALLOON=m依然是没有效果的,因为它依赖于HYPERVISOR_GUEST=y。如果你不知道这层依赖关系,通过make menuconfig后,Device Drivers-> MISC devices下是找不到VMware Balloon Driver的。(手动vi.config修改HYPERVISOR_GUEST后,便可以找到这一项),另外,无论是通过make menuconfig或直接vi.config,最后都要运行sh-c'yes""| make oldconfig'一次得到最终的编译配置选项。
然后,考虑到vmware_balloon可能在这个版本里已更名为vmw_balloon,通过下面的方法保险起见:
# cd/lib/modules/3.10.58/kernel/drivers/misc/
# ln-s vmw_balloon.ko vmware_balloon.ko#建立软连接
其实,针对安装docker的内核编译环境,最明智的选择是使用sciurus帮我们配置好的.config文件。
也建议在make bzImage之前,运行脚本check-config.sh检查当前内核运行docker所缺失的模块。
当提示缺少其他module时如NF_NAT_IPV4时,也可以通过上面的方法解决,然后重新编译。
4.几个重要的Linux内核文件介绍
在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls–l。编译过RedHat Linux内核的人对其中的System.map、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生的?又有什么作用呢?
(1)vmlinuz
vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。
vmlinuz的建立有两种方式。
一是编译内核时通过“make zImage”创建,然后通过:“cp/usr/src/linux-2.4/arch/i386/linux/boot/zImage/boot/vmlinuz”产生。zImage适用于小内核的情况,它的存在是为了向后的兼容性。
二是内核编译时通过命令make bzImage创建,然后通过:“cp/usr/src/linux-2.4/arch/i386/linux/boot/bzImage/boot/vmlinuz”产生。
bzImage是压缩的内核映像,需要注意,bzImage不是用bzip2压缩的,bzImage中的bz容易引起误解,bz表示“big zImage”。 bzImage中的b是“big”意思。
zImage(vmlinuz)和bzImage(vmlinuz)都是用gzip压缩的。它们不仅是一个压缩文件,而且在这两个文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip或 gzip–dc解包vmlinuz。
内核文件中包含一个微型的gzip用于解压缩内核并引导它。两者的不同之处在于,老的zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么可以采用zImage或bzImage之一,两种方式引导的系统运行时是相同的。大的内核采用bzImage,不能采用zImage。
vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。
(2) initrd-x.x.x.img
initrd是“initial ramdisk”的简写。initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。initrd-2.4.7-10.img是用gzip压缩的文件,下面来看一看这个文件的内容。
initrd实现加载一些模块和安装文件系统等。
initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。具体情况请看帮助:man mkinitrd
下面的命令创建initrd映象文件:
(3) System.map
System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。
内核符号表是怎么创建的呢? System.map是由“nm vmlinux”产生并且不相关的符号被滤出。对于本文中的例子,编译内核时,System.map创建在/usr/src/linux-2.4/System.map。像下面这样:
nm/boot/vmlinux-2.4.7-10> System.map
下面几行来自/usr/src/linux-2.4/Makefile:
nm vmlinux| grep-v'(compiled)|(.o
)|([aUw])|(..ng
)|(LASH[RL]DI)'| sort> System.map
然后复制到/boot:
cp/usr/src/linux/System.map/boot/System.map-2.4.7-10
在进行程序设计时,会命名一些变量名或函数名之类的符号。Linux内核是一个很复杂的代码块,有许许多多的全局符号。
Linux内核不使用符号名,而是通过变量或函数的地址来识别变量或函数名。比如不是使用size_t BytesRead这样的符号,而是像c0343f20这样引用这个变量。
对于使用计算机的人来说,更喜欢使用那些像size_t BytesRead这样的名字,而不喜欢像c0343f20这样的名字。内核主要是用c写的,所以编译器/连接器允许我们编码时使用符号名,当内核运行时使用地址。
然而,在有的情况下,我们需要知道符号的地址,或者需要知道地址对应的符号。这由符号表来完成,符号表是所有符号连同它们的地址的列表。Linux符号表使用到2个文件:/proc/ksyms和System.map。
/proc/ksyms是一个“proc file”,在内核引导时创建。实际上,它并不真正的是一个文件,它只不过是内核数据的表示,却给人们是一个磁盘文件的假象,这从它的文件大小是0可以看出来。然而,System.map是存在于你的文件系统上的实际文件。当你编译一个新内核时,各个符号名的地址要发生变化,你的老的System.map具有的是错误的符号信息。每次内核编译时产生一个新的System.map,你应当用新的System.map来取代老的System.map。
虽然内核本身并不真正使用System.map,但其它程序比如klogd, lsof和ps等软件需要一个正确的System.map。如果你使用错误的或没有System.map,klogd的输出将是不可靠的,这对于排除程序故障会带来困难。没有System.map,你可能会面临一些令人烦恼的提示信息。
另外少数驱动需要System.map来解析符号,没有为你当前运行的特定内核创建的System.map它们就不能正常工作。
Linux的内核日志守护进程klogd为了执行名称-地址解析,klogd需要使用System.map。System.map应当放在使用它的软件能够找到它的地方。执行:man klogd可知,如果没有将System.map作为一个变量的位置给klogd,那么它将按照下面的顺序,在三个地方查找System.map:
/boot/System.map
/System.map
/usr/src/linux/System.map
System.map也有版本信息,klogd能够智能地查找正确的映象(map)文件。
centos6.5安装到U盘出问题
usblinux把linux系统安装到u盘里
加电
BIOS找启动方式,找设备
MBR
grub
vmlinux initrd
产生init
/etc/inittab-->找到应该启动的级别
按照不同的级别启动不同类型的服务/etc/rcX.d/
/etc/rc.sysinit
/etc/rc.local
产生终端可以登录
ls/root/install.log
livecd不用安装,直接可以使用系统的CD,DVD
回顾开机启动的过程:
开机-->bios(配置主板的程序,basic input and output system,加电自检,找到启动设备的编号)-->找到mbr(master bootloader record,它是属于硬盘的0磁盘0扇区)-->grub-->通过grub找到vmlinuz和initrd(驱动硬件)-->内核启动,产生init进程-->/etc/inittab(确定系统的启动级别)-->/etc/rc.sysinit(获取主机的网络环境和主机类型,测试与载入设备,是否启动selinux,模块的加载,设置系统时间.................)-->/etc/rc.local
与USB有关的模块
[root@li~]# lsmod|grep ci
uhci_hcd 25421 0
ohci_hcd 24553 0
ehci_hcd 33869 0
--因为U盘分区在windows下不认,所以我这里两G的U盘,直接都用来做usblinux
1,首先删除U盘里原有分区
第一种:用fdisk/dev/sdb,然后用d命令去删除
第二种:dd if=/dev/zero of=/dev/sdb bs=1024 count=1--删除磁盘分区信息
重新按照规划的去分区:
Disk/dev/sdb: 2000 MB, 2000570368 bytes
62 heads, 62 sectors/track, 1016 cylinders
Units= cylinders of 3844* 512= 1968128 bytes
Device Boot Start End Blocks Id System
/dev/sdb1* 1 763 1466455 83 Linux
/dev/sdb2 764 1016 486266 82 Linux swap/ Solaris
Command(m for help): w
--或者分为1G做usblinux,500m做swap,500m留给fat32
Disk/dev/sdb: 2000 MB, 2000570368 bytes
62 heads, 62 sectors/track, 1016 cylinders
Units= cylinders of 3844* 512= 1968128 bytes
Device Boot Start End Blocks Id System
/dev/sdb1* 1 509 978267 83 Linux
/dev/sdb2 510 764 490110 82 Linux swap/ Solaris
/dev/sdb3 765 1016 484344 b W95 FAT32
Command(m for help): w
[root@li~]# partprobe
--有些U盘报kerenl相关的两到三段信息,就不要使用多分区,就分一个分区。
2,格式化分区,并挂载
[root@li www]# partprobe--fdisk分区后,都要用此命令刷新
--这一步,有很多U盘会报错,如果报错的话最好去windows虚拟机下全格一下,再重新在linux下来做
[root@li www]# mkfs-t ext3/dev/sdb1
[root@li www]# mkswap/dev/sdb2
[root@li www]# mkdir/usb
[root@li www]# mount/dev/sdb1/usb/--建立一个目录,挂载/dev/sdb1
3,安装基本的目录结构
准备光盘iso文件,挂载到一个目录去
[root@li www]# mount/share/iso/rhel-5.4-server-i386-dvd.iso/yum/-o loop
[root@li www]# cd/yum/Server/
[root@li Server]# rpm-qip filesystem-2.4.0-2.i386.rpm
Description:
filesystem软件包是安装在红帽 Linux系统上的一个基本
软件包。filesystem含有一个 Linux操作系统的基本目录布局,
包括各目录的正确许可权限。
要使用--nodeps脱离依赖性才可以安装
[root@li Server]# rpm-ivh--root=/usb/--nodeps filesystem-2.4.0-2.i386.rpm
或者先装setup包,再装filesystem包
[root@li~]# rpm-ivh--root=/usb/share/yum/Server/setup-2.5.58-7.el5.noarch.rpm
[root@li~]# rpm-ivh--root=/usb/share/yum/Server/filesystem-2.4.0-2.i386.rpm
[root@li~]# ls/usb--一个基本的目录布局就已经装好了
bin etc lost+found opt sbin sys var
boot home media proc selinux tmp
dev lib mnt root srv usr
4,安装相应的软件包,也就是定制功能
下面最主要的一步就是安装系统的软件包,首先要思考安装的这个USB系统需要什么功能,比如最基本的命令ls,cd等
这里可以选择使用busybox(是一个基本命令工具集),但如果对其不是特别熟悉,还是按基本命令一个一个的来选
首先要装bash包,包含50多个内部命令
[root@dns Server]# chroot/usb--不装bash无法 chroot进去
chroot: cannot run command `/bin/bash': No such file or directory
[root@dns Server]# rpm-qf/bin/ls
coreutils-5.97-23.el5
[root@dns Server]# rpm-qf `which vi`
vim-minimal-7.0.109-6.el5
[root@dns Server]# rpm-qf `which vim`
vim-enhanced-7.0.109-6.el5
[root@dns Server]# rpm-qf `which ping`
iputils-20020927-46.el5
[root@dns Server]# rpm-qf `which mount`
util-linux-2.13-0.52.el5
[root@dns Server]# rpm-qf `which tar`
tar-1.15.1-23.0.1.el5
[root@dns Server]# rpm-qf `which rpm`
rpm-4.4.2.3-18.el5
[root@dns Server]# rpm-qf `which man`
man-1.6d-1.1
[root@dns Server]# rpm-qf `which ssh`
openssh-clients-4.3p2-36.el5
[root@dns Server]# rpm-qf `which awk`
gawk-3.1.5-14.el5
[root@dns Server]# rpm-qf `which sed`
sed-4.1.5-5.fc6
[root@dns Server]# rpm-qf `which grep`
grep-2.5.1-55.el5
[root@dns Server]# rpm-qf `which find`
findutils-4.2.27-6.el5
[root@dns Server]# rpm-qf `which locate`
mlocate-0.15-1.el5.2
[root@dns Server]# rpm-qf `which useradd`
shadow-utils-4.0.17-14.el5
[root@dns Server]# rpm-qf `which passwd`
passwd-0.73-1
[root@dns Server]# rpm-qf `which init`
SysVinit-2.86-15.el5
[root@dns Server]# rpm-qf `which clear`
ncurses-5.5-24.20060715
[root@dns Server]# rpm-qf `which ps`
procps-3.2.7-11.1.el5
[root@dns Server]# rpm-qf/usr/bin/which
which-2.16-7
[root@dns Server]# rpm-qf `which ifconfig`
net-tools-1.60-78.el5
[root@dns Server]# rpm-qf `which fdisk`
util-linux-2.13-0.52.el5
[root@dns Server]# rpm-qf `which partprobe`
parted-1.8.1-23.el5
[root@li~]# rpm-qf `which showmount`
nfs-utils-1.0.9-42.el5
[root@li~]# rpm-qf `which service`
initscripts-8.45.30-2.el5
[root@li Server]# rpm-qf `which bzip2`
bzip2-1.0.3-4.el5_2
[root@li Server]# rpm-qf `which gzip`
gzip-1.3.5-10.el5
--经过上面对基本命令的包查找,最终安装下列这些基本包
[root@dns Server]# yum install--installroot=/usb bash coreutils vim-minimal vim-enhanced iputils util-linux tar rpm man openssh-clients gawk sed grep findutils mlocate shadow-utils passwd SysVinit ncurses procps which net-tools util-linux parted nfs-utils initscripts bzip2 gzip
--如果上面步骤安装完后,有忘记安装的包,再使用yum装不上去
[root@li~]# yum install--installroot=/usb iptables
Loaded plugins: downloadonly, rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
No package iptables available.
Nothing to do
--所以再安装的话使用rpm去安装
[root@li~]# rpm-ivh--root=/usb/share/yum/Server/iptables-1.3.5-5.3.el5.i386.rpm
5,安装启动引导文件和模块
[root@li Server]# chroot/usb--使用此命令,就是以/usb目录为根目录了
bash-3.2# ls/boot/--可以看到现在usblinux里的/boot目录没有任何文件
bash-3.2# exit--用exit退出chroot模式
exit
[root@li~]# cp/etc/skel/.bash*/usb/root/-rf
--拷环境变量模版过去
定制支持usb存储启动的ramdisk(initrd文件)
[root@li Server]# mkinitrd--with usb_storage/usb/boot/initrd.img `uname-r`
从真机上拷贝vmlinuz到usblinux对应目录
[root@li Server]# cp/boot/vmlinuz-2.6.18-164.el5/usb/boot/vmlinuz
从真机上拷贝内核模块到usblinux对应目录
[root@li Server]# cp/lib/modules/2.6.18-164.el5//usb/lib/modules/-rf
拷内核源码,可选步骤
[root@li Server]# mkdir/usb/usr/src/kernels/
[root@dns Server]# cp/usr/src/kernels/2.6.18-164.el5-i686//usb/usr/src/kernels/-rf
6,安装并手动写grub
--如果是用真实机分区来代替U盘做usblinux的话,这一步不用做,只需要把这个分区的引导信息加入到真实机的配置文件里就可以了
安装grub包,用--nodeps脱离依赖性
[root@li Server]# rpm-ivh--nodeps--root=/usb grub-0.97-13.5.i386.rpm
--脱离依赖安装,会没有splash.xpm.gz图片,可以从真机拷一个
也可以按下面安装
[root@li~]# rpm-ivh--root=/usb/share/yum/Server/*logos*
warning:/share/yum/Server/redhat-logos-4.9.16-1.noarch.rpm
[root@li~]# rpm-ivh--root=/usb/share/yum/Server/grub-0.97-13.5.i386.rpm
--但这样安装完后,grub目录下只有一个背景图片
[root@dns Server]# ls/usb/boot/grub/
splash.xpm.gz
grub-install安装到/dev/sdb
[root@li Server]# grub-install--root-directory=/usb--recheck/dev/sdb
--如果是用真实机分区来做的话,这里/dev/sdb改成/dev/sda
--grub-install之后,grub目录的基本文件就有了(除了配置文件grub.conf)
[root@dns Server]# ls/usb/boot/grub/
device.map iso9660_stage1_5 splash.xpm.gz vstafs_stage1_5
e2fs_stage1_5 jfs_stage1_5 stage1 xfs_stage1_5
fat_stage1_5 minix_stage1_5 stage2
ffs_stage1_5 reiserfs_stage1_5 ufs2_stage1_5
修改device.map
[root@li Server]# vim/usb/boot/grub/device.map
(hd0)/dev/sdb
--如果是用真实机分区来做的话,这里/dev/sdb改成/dev/sda
手动写grub.conf文件
--下面是以u盘来做的写法
[root@li Server]# vim/usb/boot/grub/grub.conf
default=0
timeout=-1
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title usblinux
root(hd0,0)
kernel/boot/vmlinuz ro root=/dev/sdb1
initrd/boot/initrd.img
=============================================
--因为我这次是使用真实机的/dev/sda14来做根./dev/sda15做swap
上面的第6步不用做,只做这一小段就好了
所以把下面这段加到真实机的/boot/grub/grub.conf里
title usblinux
root(hd0,13)--因为我模拟的这个usblinux的根为sda14,所以这里写13
kernel/boot/vmlinuz ro root=/dev/sda14
initrd/boot/initrd.img
# grub-install/dev/sda--加完后,就grub-install安装一下
--------------------------------------------------
7,拷贝密码文件,拷贝环境变量
--这一步可以不拷,因为现在usblinux上默认有passwd和group文件,没有shadow和gshadow
--里面默认有root用户和系统用户
[root@li Server]# cp/etc/passwd/usb/etc/passwd
[root@li Server]# chroot/usb/--再次chroot到/usb目录,提示符就变了
[root@li/]# pwconv--同步/etc/passwd和/etc/shadow
[root@li/]# grpconv--同步/etc/group和/etc/gshadow
[root@li/]# passwd root--修改root的密码,到时候登录需要
8,手动编写fstab文件
[root@li/]# vim/etc/fstab--注意这里是usblinux系统里的fstab,因为已经chroot进来了
/dev/sdb1/ ext3 defaults 0 0
/dev/sdb2 swap swap defaults 0 0
devpts/dev/pts devpts gid=5,mode=620 0 0
sysfs/sys sysfs defaults 0 0
proc/proc proc defaults 0 0
tmpfs/dev/shm tmpfs defaults 0 0
--用真实机的/dev/sda14来做根./dev/sda15做swap的话,就把上面的sdb1换成sda14,sdb2换成sda15,其它的不变
9,让usblinux支持网络
从真机拷贝eth0的配置文件到usblinux对应目录中:
[root@li Server]# cp/etc/sysconfig/network-scripts/ifcfg-eth0/usb/etc/sysconfig/network-scripts/
修改网络配置文件,可以改成静态IP
[root@li Server]# vim/usb/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
从真机拷贝全局网络配置文件到usblinux对应目录中
[root@li Server]# cp/etc/sysconfig/network/usb/etc/sysconfig/
从真机拷贝modprobe.conf到usblinux对应目录中
[root@li Server]# cp/etc/modprobe.conf/usb/etc/
alias eth0 8139too--注意这一句在不同的系统里可能要修改,现在这里的网卡模块是8139too,所以这里是8139too就可以;这个在虚拟机里为pcnet32
然后重启系统,在bios选择使用usb引导进入系统,去验证功能
--如果是真实机分区做的,就不用改bios,直接在grub选择菜单选择usblinux引导进入就可以了
-------------------------------------------------------------
上面的步骤里还没有去加的功能有动态获取IP(需要安装dhclient包)
没有yum命令,没有图形界面(有需要的话,自己使用rpm安装yum命令后,使用yum安装图形包的两个组)
启动时有大量无用信息,可以在grub.conf里加rhgb quiet来解决
但重启后还会有一个错误信息:
(会有一个usb_storage的报错信息,但此信息没有影响,是mkinitrd--with usb_storage时造成的)
如果一定要除掉这句报错,可以手工修改initrd文件
# cd/tmp
# cp/usb/boot/initrd.img/tmp/initrd.img.gz
# gunzip initrd.img.gz
# cpio-i--make-directories< initrd.img
# rm initrd.img
# vim init--打开,删除以下的几行
echo"loading usb-storage.ko module"
insmod/lib/usb-storage.ko
echo waiting for dirver initialization
stabilized/proc/bus/usb/devices
echo waiting for driver initializtin
# find.| cpio-c-o>../initrd.img
# gzip-9../initrd.img
# cp../initrd.mg.gz/usb/boot/initrd.img
=============================================================