1、 添加一个硬盘
查看fdisk –l 添加的硬盘(/dev/sdb)
2、创建分区
fdisk /dev/sdb n 添加
第一个分区 大小为100M,用于/boot 分区;
第二个分区 大小为1G,用于 / 分区;
3、 格式化分区
mkfs –t ext3 /dev/sdb1
mkfs –t ext3 /dev/sdb2
partprobe /dev/sdb #让内存加载
4、 挂载分区
mkdir /mnt/boot /mnt/sysroot #创建挂载点
mount /dev/sdb1 /mnt/boot # 挂载/dev/sdb1分区到/mnt/boot 挂载点
mount /dev/sdb2 /mnt/sysroot # 挂载/dev/sdb2分区到/mnt/sysroot 挂载点
5、创建MBR
MBR 包括三部分 :
1、bootload 446B ,用于开机启动加载(grub菜单第一步);
2、magic 2B,物理磁盘标示符;
3、partion 46B,磁盘分区表。
grub-install --root-directory=/mnt/ /dev/sdb #在/dev/sdb上创建MBR
6、准备内核、内核驱动及背景图片
[root@zlj abc]# zcat initrd-2.6.18-164.el5.img |cpio -id
vim init 将swap禁用
find |cpio -o -H newc --quiet |gzip -9 >initrd.gz #将文件打包
cp /boot/vmlinuz-2.6.18-164.el5 /mnt/boot/ #内核
上传两张背景图片
cp /home/user1/4.xpm.gz /mnt/boot/grup #将图片拷到当前文件夹下
7、编写grub菜单
vim grub/grub.conf # 编辑grub 菜单
default=0
timeout=5
splashimage=(hd0,0)/grub/4.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=/dev/sda2 rhgb quiet
initrd /initrd.gz
~
~
~
~
~
cd /mnt/sysroot/
mkdir bin boot dev etc home lib media misc mnt net opt proc root sbin selinux src sys tftpboot tmp usr var #创建目录
8、编写脚本
查找指令依赖 并拷贝到指定的目录
vim /home/user1/cp.sh
#!/bin/bash
read -p "please input Command:" COMMAND
CPATH=`which $COMMAND |tail -1`
LPATH=`ldd $CPATH |grep /lib/`
PPATH=${CPATH%/*}
/bin/cp -f $CPATH /mnt/sysroot$PPATH/
if [ -e /cp ];then
rm -f /cp
fi
for i in $LPATH ;do
echo $i |grep "/lib/" >>/cp
done
while read line;do
#echo $line
NAME=${line##*/lib/}
/bin/cp -f /lib/$NAME /mnt/sysroot/lib/
done </cp
9、准备指令
mkdir usr/lib etc/rc.d #创建子目录
将init bash halt shutdown ls chroot mount mkdir cp reboot vim ifconfig sysctl insmod ping arp netstat vsftpd拷贝过去
8、创建init文件
a、编辑inittab文件
vim /mnt/sysroot/etc/inittab
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc.sysshutdown
l6:6:wait:/etc/rc.d/rc.sysreboot
B、vim /mnt/sysroot/etc/rc.d/rc.sysinit
#!/bin/bash
if [ -f /etc/sysconfig/network ];then
. /etc/sysconfig/network
fi
if [ -z $HOSTNAME ]; then
/bin/hostname localhost
else
/bin/hostname $HOSTNAME
fi
/sbin/sysctl -p &>/dev/null
/sbin/insmod /lib/modules/mii.ko
/sbin/insmod /lib/modules/pcnet32.ko
/sbin/ifconfig eth0 192.168.1.1/24
/sbin/ifconfig lo 127.0.0.1/8
/bin/bash
echo -e -n "\033[31m Startup is complete \033[0m"
echo -e "\t\t\t\t\t\t \033[32m [ok]\033[0m "
~
chmod a+x rc.sysinit # 修改文件的权限
C、创建关机脚本
vim rc.sysshutdown
#!/bin/bash
exec /sbin/halt -p
chmod a+x rc.sysshutdown
D、创建重启脚本
vim rc.sysreboot
#!/bin/bash
exec /sbin/reboot
~
chmod a+x rc.sysreboot
E、创建网卡模块
创建模块文件夹
mkdir -pv /mnt/sysroot/lib/modules
将pcnet32.ko、mii.ko(网卡模块)复制到modules内
9、搭建ftp服务器
cp /etc/passwd /etc/shadow /etc/group /mnt/sysroot/etc/ #服务器需要用户id
mkdir /mnt/sysroot/etc/vsftpd #ftp配置脚本文件夹
cp /etc/vsftpd/vsftpd.conf /mnt/sysroot/etc/vsftpd/ #将配置文件拷到vsftpd内
编辑nsswitch.conf
vim /mnt/sysroot/etc/nsswitch.conf # 用于将用户名对应为用户ID
passwd: files
shadow: files
group: files
复制nsswitch.conf需要的动态链接库
cp -d /lib/libnss_compat* /mnt/sysroot/lib/
cp -d /lib/libnss_files* /mnt/sysroot/lib/
vim /mnt/sysroot/etc/vsftpd/vsftpd.conf
禁用日志功能,pam及用户列表
mkdir /mnt/sysroot/usr/share/empty -pv
Mkdir -r /mnt/sysroot/usr/ftp/pub
Chmod o+wt /mnt/sysroot/usr/ftp/pub #修改权限
10、测试