红联Linux门户
Linux帮助

制做OEL/CentOS Linux三合一U盘安装盘

发布时间:2014-07-27 09:37:29来源:linux网站作者:koumm

这次出差去客户现场安装新买的IBM服务器,没想到服务器没有配置光驱,现场没有USB光驱,那次安装折腾的够戗,于是下定决心制作U盘安装盘,经过多次安装摸索。成功实现oel5.8,CentOS5.8,oel6.3U盘安装的制做。记录过程如下。


一、分区准备

 
1.  安装前准备:
 
1). 金士顿 16G U盘
2). Windows版的syslinux.exe
3). Centos5.8 X64 系统DVD版ISO文件
4). OEL5.8 X64 系统DVD版ISO文件
5). OEL6.3 X64 系统DVD版ISO文件
6). Linux系统平台(或采用linux虚拟机)

 
2. U盘安装达到的效果:
 
1). 自动/手动U盘安装OEL 5.8 X64位版本
2). 自动/手动U盘安装CentOS5.x 64位版本
3). 手动U盘安装OEL 6.3 X64位版本


3. U盘安装命名规则
 
1) U盘插在服务器上应该被认成时sdb, 在上面准备的linux系统上进行分区,将16G U盘划分为4个分区(/dev/sdb1,/dev/sdb2,/dev/sdb3,/dev/sdb4)
 
说明: Linux对U盘进行分区后的U盘插在Windows 7系统上无任何问题,相反在Windows上进行分区后,U盘打开后会提示需要修复等问题,且打开U盘慢。

 
2) U盘分区方案
 
分区名          分区大小          分区类型
------------------------------------------
sdb1              1.7G              msdos
sdb2              4.2G              ext2
sdb3              3.9G              ext2
sdb4              4.6G              ext2

 
3) 分区使用情况
 
sdb1: 用于引导,划分1.7GB还可以存储一些资料当U盘使用。
sdb2: 用于放OEL5.8 X64 ISO文件
sdb3: 用于放OEL6.3 X64 ISO文件
sdb4: 用于放CentOS5.8 X64 ISO文件
 
说明:由于想sdb1分一些空间当U盘用,造成分区后空间基本用完。
 

二、开始分区

 
1.  将U盘插入电脑
 
1) 本文是采用VMware workstation方式进行的,将U盘插入电脑USB插口。
2) 点击VMware workstation菜单"虚拟机","可移动设备","Kingston U盘->与主机进行连接"。
3) 登录虚拟机中,就出现U盘/dev/sdb磁盘
 

2.  进行分区
 
# fdisk /dev/sdb
The number of cylinders for this disk is set to 11114.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs(e.g., DOS FDISK, OS/2 FDISK)
 
分区过程略
执行 n p 进行分区,分完后w退出fdisk 。
 
Command (m for help): p
 
Disk /dev/sda: 15.5 GB, 15510536192 bytes
90 heads, 26 sectors/track, 12946 cylinders
Units = cylinders of 2340 * 512 = 1198080 bytes
 
Device Boot      Start        End      Blocks  Id  System
/dev/sdb1  *          1        1503    1758497  83  Linux
/dev/sdb2            1504        5260    4395690  83  Linux
/dev/sdb3            5261        8808    4151160  83  Linux
/dev/sdb4            8809      12946    4841460  83  Linux
 

3.  格式化分区
 
# mkfs.msdos /dev/sdb1
# mkfs.ext2 /dev/sdb2
# mkfs.ext2 /dev/sdb3
# mkfs.ext2 /dev/sdb4
 
# partprobe
 

4.  准备挂载分区目录
 
# mkdir -p /mnt/usb1
# mkdir -p /mnt/usb2
# mkdir -p /mnt/usb3
# mkdir -p /mnt/usb4
# mkdir -p /mnt/iso
 
上面为挂载目录,下面为ISO存储目录
 
# mkdir -p /iso
 

5.  上传ISO文件到/iso目录下
 
/iso/OracleLinux-R5-U8-Server-x86_64-dvd.iso
/iso/OracleLinux-R6-U3-Server-x86_64-dvd.iso
/iso/CentOS-5.8-x86_64-bin-DVD-1of2.iso


三、开始制作

 
1.  挂载目录
 
# mount /dev/sdb1 /mnt/usb1
# mount /dev/sdb2 /mnt/usb2
# mount /dev/sdb3 /mnt/usb3
# mount /dev/sdb4 /mnt/usb4
 

2.  复制ISO文件操作
 
# cp /iso/OracleLinux-R5-U8-Server-x86_64-dvd.iso /mnt/usb2/
# cp /iso/OracleLinux-R6-U3-Server-x86_64-dvd.iso /mnt/usb3/
# cp /iso/CentOS-5.8-x86_64-bin-DVD-1of2.iso /mnt/usb4/
 

3.  挂载OEL5.8X64 ISO
 
说明: 准备采用OEL5.8X64的引导文件来实现所有系统的引导安装。
 
# mount -o loop /iso/OracleLinux-R5-U8-Server-x86_64-dvd.iso /mnt/iso
 
# cd /mnt/iso
# cp -a isolinux /mnt/usb1/
# mv /mnt/usb1/isolinux /mnt/usb1/syslinux
# cd /mnt/usb1/syslinux
# mv isolinux.cfg syslinux.cfg
 

4.  挂载OEL6.3X64 ISO
 
说明: OEL6.3X64的引导文件来实现所有系统的引导安装。
 
# umount /mnt/iso
# mount -o loop /iso/OracleLinux-R6-U3-Server-x86_64-dvd.iso /mnt/iso
 
# cd /mnt/iso
 
说明1: 拷贝images到/dev/sda3分区,就是放OEL6.3 ISO目录下,这一步必须,否则无法通过本地磁盘加载iso文件进行导入,并会出错退出。
说明2: OEL6.3在普通电脑上进行测试时为将U盘认为/dev/sda,自己可以实现识别。
 
# cp -a images /mnt/usb3/
 
# cd /mnt/iso/isolinux
# cp vmlinuz /mnt/usb1/syslinux/oel63vmlinuz
# cp initrd.img /mnt/usb1/syslinux/centosinitrd.img
 

5.  挂载CentOS5.8 X64 ISO
 
说明: CentOS5.8 X64的引导文件来实现所有系统的引导安装。
 
# umount /mnt/iso
# mount -o loop /iso/CentOS-5.8-x86_64-bin-DVD-1of2.iso /mnt/iso
 
# cd /mnt/iso
 
说明:
 
# cd /mnt/iso/isolinux
# cp vmlinuz /mnt/usb1/syslinux/centosvmlinuz
# cp initrd.img /mnt/usb1/syslinux/centosinitrd.img
 
查看挂载情况
 
# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
38G  2.3G  34G  7% /
/dev/hda1              99M  12M  82M  13% /boot
tmpfs                345M    0  345M  0% /dev/shm
/dev/sda1            1.7G  155M  1.6G  10% /mnt/usb1
/dev/sda2            4.2G  3.7G  295M  93% /mnt/usb2
/dev/sda3            3.9G  3.7G  75M  99% /mnt/usb3
/dev/sda4            4.6G  4.3G  32M 100% /mnt/usb4
/iso/OracleLinux-R5-U8-Server-x86_64-dvd.iso
3.7G  3.7G    0 100% /mnt/iso
 

6.  修改sysconfig.cfg文件
 
# vi /mnt/usb1/syslinux/syslinux.cfg
 
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append ks=hd:sdb1:/oel58h.cfg initrd=initrd.img
label auto
kernel vmlinuz
append ks=hd:sdb1:/oel58auto.cfg initrd=initrd.img
label oel63
kernel oel63vmlinuz
append ks=hd:sda1:/oel63h.cfg initrd=oel63initrd.img
label centos
kernel centosvmlinuz
append ks=hd:sdb1:/cent58auto.cfg initrd=centosinitrd.img
label hand
kernel centosvmlinuz
append ks=hd:sdb1:/cent58h.cfg initrd=centosinitrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
 
说明:
每个系统都是采用自己的内核与启动文件进行启动,这样就可以实现多系统的安装。


7.  创建自动与手动ks配置文件
 
说明: kickstart文件可以直接采用自己安装成功/root/anaconda-ks.cfg的文件进行修改,也可以用别人直接修改使用。

 
(1) OEL5.8手动ks文件
 
# vi /mnt/usb1/oel58h.cfg
install
harddrive --partition=sdb2 --dir=/
 
说明:
1). 通过ks文件可以直接定位iso文件位置,无需要手动选择local disk,然后选择iso磁盘。
2). 如果ks文件指定目录错误,也可以通过手动选择local disk,然后选择iso磁盘的方式进行安装。
 

(2) CentOS 5.8手动ks文件
 
# vi /mnt/usb1/cent58h.cfg
install
harddrive --partition=sdb4 --dir=/
 

(3) OEL5.8手动ks文件
 
# vi /mnt/usb1/oel63h.cfg
install
harddrive --partition=sdb3 --dir=/
 

(4) OEL5.8自动ks文件
 
# vi /mnt/usb1/oel58auto.cfg
 
install
harddrive --partition=sdb2 -dir=/
lang zh_CN.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto static --ip 192.168.14.100 --netmask 255.255.255.0 --gateway 192.168.14.2 --nameserver 202.100.192.68 --hostname oa
rootpw --iscrypted $1$H0bnNoWM$HE1R/mWv6LqbhUGI8Xw/t.
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --linux
part /boot --fstype ext3 --size=100
part pv.3 --size=100 --grow
volgroup vg --pesize=32768 pv.3
logvol swap --fstype swap --name=swap --vgname=vg --size=6112
logvol / --fstype ext3 --name=root --vgname=vg --size=14240
 
%packages
@admin-tools
@base
@chinese-support
@core
@development-libs
@development-tools
@dialup
@editors
@gnome-desktop
@games
@graphical-internet
@graphics
@java
@legacy-software-development
@legacy-software-support
@office
@printing
@sound-and-video
@text-internet
@base-x
system-config-kickstart
kexec-tools
iscsi-initiator-utils
fipscheck
squashfs-tools
device-mapper-multipath
sgpio
imake
emacs
libsane-hpaio
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
%post
service sendmail stop
 

8.  将U盘退出虚拟机

 
(1) 从虚拟机中退出U盘
 
1) 点击VMware workstation菜单"虚拟机","可移动设备","Kingston U盘->与主机断开连接"。
2) windows中"我的电脑"就出现U盘图示,认出了1.7GB的磁盘空间,或也可以将U盘插入其它window电脑上。
 

(2) 写入引导信息
 
需要下载syslinux工具写入mbr引导信息与ldlinux.sys引导文件(系统隐藏)在msdos分区上。
win7必须管理员权限下执行cmd操作才能成功,64位系统选择win64目录的工具。
 
syslinux下载地址: http://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.04.zip
 
cmd中
d:
cd \syslinux-4.04\win32
syslinux.exe -a -m i:
 

四、 安装测试

 
1.  重启BIOS中设置USB-HDD启动
 
输入oel即可进行OEL5.8手动安装测试
 

2.  修改启动菜单进行个性化提示界面
 
# vi /mnt/usb1/syslinux/boot.msg
 


3. 其它维护
 
如果要安装其它版本的linux系统,可以直接替换ISO文件以及启动内容文件即可。