分析一下,我们要写入的配置信息:
首先要在我们的第二块分区上创建各种各样的文件夹,比如/bin /sbin /usr /root /home /tmp /etc 等等等等。
然后我们要创建/etc/inittab 这个文件
之后创建读取分区信息挂载信息的文件/etc/fstab
再然后呢?创建/etc/rc.d/rc.sysinit文件~
ok~分析得当!开始着手写入吧!
#这里我们使用函数,传递参数,参数只有$1,而$1则是我们的分区2所挂载的目录/mnt/sysroot
function ROOTFS { # 使用函数实现各项功能,方便其他用户或者其他程序的调用,多写成函数,为以后着想哟!
if [ -d $1 ];then
if mount | grep "$1" &> /dev/null ; then # 判断我们的分区2是否正确的挂载了
cd $1
mkdir {boot,proc,sys,dev,home,root,etc/{rc.d,sysconfig,init.d},bin,sbin,lib,usr/{bin,sbin,lib,include},var/{log,run},tmp,mnt,opt,media} -pv &> /dev/null #在这个目录里创建我们所需要用到的,各项文件夹。(麻雀虽小,五脏俱全嘛)
chmod 1777 tmp/
# create inittab
cat >>$1/etc/inittab<< EOF #创建inittab 写入如下的信息
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
EOF
# create rc.sysinit #创建rc.sysinit 写入如下的信息
cat >>$1/etc/rc.d/rc.sysinit<< EOF
#!/bin/bash
echo -e "\t\tWelcome to \033[031;1mLittle\033[0m Linux..."
mount -n -o remount,rw /
mount -n -a
/bin/bash
EOF
chmod +x etc/inittab # 分别赋予他们执行的权限(你总不会想看到他们放在那却不能用吧-。-?)
chmod +x etc/rc.d/rc.sysinit
# create fstab # 创建fstab 将我们到时候要挂载的分区信息写入。这里注意,一定是“到时候”要挂载的。
cat >>$1/etc/fstab<< EOF
/dev/sda2 / ext3 defaults 0 0
/dev/sda1 /boot ext3 defaults 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
EOF
else
read -p "Error,the $1 not mount ! Contiune(y|N)?" MOT # 如果发现我们的分区2还没有挂上!就停止!
case $MOT in # 不过这应该是不会没挂上的,否则我们上一步岂不是白做了!?
y|Y)
ROOTFS /mnt/sysroot ;;
*)
echo "Exit......"
return 5
;;
esac
fi
fi
}
ROOTFS /mnt/sysroot # 最后,执行这个函数,传递给他一个/mnt/sysroot这个参数~~OK~
好的!我们完成了前三步!总结一下:
我们先按照用户选择的硬盘,将其分区,分成3块,然后都将其格式化。
之后我们把需要用到的分区挂载到我们设定的目录上去!
然后我们将分区内写入各项配置信息。
接下来,看第二篇啦~完成后面三个步骤!!OK,加油~换个页面,我们继续!!