本文提出了 U 盘安装操作系统的方法。U 盘的硬件价格低,
容量大,数据传输速度快,携带方便,数据易于修改,可多次重复使用。另外,制作好一个
USB 安装盘后,可以在 Windows 下克隆出很多个安装盘,一般的操作者都能够完成这个工
作,方法很简单。
本文档包括:
1 u盘启动盘的制作;
2 操作系统的压缩;
3 通过init脚本定制安装压缩的操作系统;
4 编译内核方法。
增加HPET硬件高精度定时器的配置
[] HPET Timer Support(已选)
选用合适的CPU类型为Core2/ newer Xeon
Processor family(Core 2/newer Xeon)
(X)Core 2/newer Xeon/newer Xeon
这选项是否开启超线程
L SMT(Hyperthreading) scheduler support o
[Kernel hacking Kernel debugging去掉
(可以去掉 used greatest stack depth:6120 bytes left
CONFIG DEBUG STACKOVERFLOW
CONFIG DEBUG STACK USAGE-Y)
3)对 netfilter进行配置
若选此项: Corc Netfilter Configuration- Connection tracking flow accounting
则后面就会出现¨ layer7” match support
内核升级完成后,若报的错误 insmod: error inserting "/ib/ dm-region- hash. ko:-1
File exits,这是由于 initrd里面的init中重复加载dm- region- hash. ko这个模块,因此
需要修改生成的 initrd文件(不是所有的机器都会出现这个错),修改的方式如下
a)解压 initrd
t cp /boot/initrd-2632. img /tmp
#f cd /tr
# Is
initrd-2.6.32. img
mkdir newinitrd
#f cd newinitrd
zcat. initrd-2633. img cpio
#f Is
bin dev
sbin svs svsroot
b)编辑iit,删掉重复的两行
echo"Loading dm-region-hash ko module
insmod /lib/dm-region-hash ko
echo"Loading dm-region-hash ko module
insmod /ib/dm-rcgion-hash ko
)重新打包 initrd
#
cpIo-c
/initrd
#f cd
g∠ip-9
itrd-2.6.32. img
d将 initrd重新复制到bot日录下,替换原来的 initrd-26.32img
#cp initrd-2632. img /boot
重新启动,内核升级成功
3.打包文件系统
Linux文件系统很多, bin boot dev ctc homc lib lost+found mnt opt proc root sbin
sys selinux srv tftpboot tmp usr var。其中最重要的就是boot,etc,bin,sbin,usr,
lib几个
本文将系统共压缩成4个文件,并利用 pkzip2多核压缩软件实现压缩,分别
为 boot, lar. pkzip2, lib. tar. pkzip2,usr.ar. pkzip2, roots.lar.,pb∠ip2。
详见下表:
包名
包含文件
boot. tar. pkzip 2
整个boot目录,有升级后的新内核及新的 initrd
lib. tar. pbzip2
整个lib目录,有升级后的驱动模块
usr. tar. pkzip 2
整个usr月录,去除2.6.32内核源代码
rootfs. tar. pbzipz2剩余所有月录,其中proc, sys. dcv, srv, selinux, tmp, mnt,opt都为
空目录
4.U盘目录结构
boot
b
initrd-usb cpio g?
sys version
OSSYSM
Sys version
P710
boot. tar pbzip2
files. sha lum
lib. tar. pbzip2
rootfs Lar. pbzip2
usr.tar.pbzip2
boot目录是USB启动盘,来源于 Centos6.2下,其中 svs version是OS版本号。
OS. SYSM/P710下是Reha54的系统文件。其中 Miles. shallum存放4个压缩包的
sha1sum验证码。
5. initrd-usb cpio gz
initrd-usb. cpIo. gz是在 kernel启动时,提供的临时虚拟根文件系统,主要是加载硬
盘和文件系统相关驱动。
1)下面介绍下cpio格式的文件。Cpio可以备份任何东西,包括设备文件,但它
不会主动去找文件来备份。Cpi得配合类似find等可找到文件名的命令来告
知cpio该备份的数据在哪甲。
cpio参数如下
将数据复制到系统中;
-0将数据copy到文件或设备上;
B指定存储的块大小,默认为512 bytes,最大到5120 bytes
d自动新建目录
屏幕显示信息;
自动将较新的文件覆盖较旧的文件或设备
·种较新的方式存储
t查看cpio文件内容)
压缩命令: find dir|cpo-ocvB> file. cpic
解压命令:cpio-idvc
a)解压 initrd-usb cpio g7
方法一
mkdir initrd
cp initrd-usb cpio gz
gzip- d initrd-usb.cpio.gz(gzip文件格式);
cpio-iduvc initrd cpio
方法二
mkdir initrd cd initrd
∠CaL, Initrd-usb.pio.g∠|cpio-i
b)压缩
Initrd-usb cp10gz
cd initrd
find. cpio-co >initrd-usb cpio
gzip-9< initrd-usb> initrd-usb cpio gz
2)解压 initrd- usb cpio,gz文件后,得倒文件如下:
bin boot cmdline dev dracut-004-256el6 emergency etc init initqueue
initqueue-finished initqueue-settled initqueue-timeout lib linuxrc mnt mount
pre-pivot pre-trigger pre-udev proc sample-linuxrc sbin sys sysroot tmp usr var
其中除了 linuxrc文件之外,都是 centos自带文件。init脚本中调用自写的
linuxrc脚本。最主要的是 linuxrc脚本,它主要功能:划分硬盘分区,格式化分区
拷贝并解压文件系统,改写硬盘系统中 fstab文件和安装grub到硬盘。(哽盘系统
中 initrd-26.32ing文件在压缩文件时就已经修改了)
在bin、sbin、 usr/bin、 usr/sbin中会有很多命令被使用,如bash、 pkzip2、 sfdisk、
grub、mkc2fs、 mount、 modprobc、 mkdir、 touch dos2unix、 hwclock、 shallum、
m、qp、 umount、fsck、 unset、sed等,但要注意:并不是将现有系统中这些命令
拷到相应日录下就可以使用的,而是必须拷贝其相应的依赖ib库。如将现有系统
中sbin/grub拷贝到 initrd-usb cpio,gz中的sbin目录时,必同时拷贝其在现有系统中
所依赖的库,使用 Idd /sbin/grub即可找出所依赖的库,将这些库拷贝到
initrd-usb cpio gz中的相应位置。
pkzip2是多核压缩命令, pkzip2在压缩和解压的时候都可以允分利用多核。
pkzip2只有在解压pbzi2创建的压缩文件时,才能利用多核。 pkzip2有个缺点,
就是不能从标准输人来获取数据,所以要想作出一个 tar pkzip2的文件,得先创
建一个.ar文件才行。
3)下面是对硬盘进行分区情况:
Filesystem
Size mounted on
/dcyisda2
20G
/dev/sdag
20 G/var/crash(存放内核 coredump)
/dev/sda7
XXG opt
/dev/sda5
LOG
Thome
/dev/sdao
49 G /var/log(放系统口志文件)
/devisda 8
XXG/var/cores(存放应用 coredump)
/dev/sda6
4 G / swap(父换分区最大4G)
/devisal
IG
/boot
学习知识
定制自动化安装 linux光盘io
2.将iso映像写人U盘,制作USB安装盘。
3.使用在 clonezilla再生龙克隆 linux系统。
4.利用安装光盘设置本地yum源