init进程的任务:/etc/inittab
action:
respawn:一旦process终止了,就会立即再启动一次
wait:进入某个特定级别后process才会启动一次,并且直到结束为止
initdefault:设定默认运行级别;
sysinit:系统初始化 系统启动过程中process会被执行;
ctrlaltdel:当用户同时按下Ctrl+Alt+Del键时执行进程
inittab:
1、定义默认运行级别
2、系统初始化脚本指定
3、特定级别目录下的脚本执行(stop所有K开头的服务,start所有S开头的服务)
4、设定Ctrlaltdel组合键的功能
5、定义UPS电源故障或电源重新恢复时执行的进程
6、启动虚拟终端 (mingetty是启动虚拟终端的命令)
7、初始化图形终端
/etc/rc.d/rc.sysinit
1、激活udev和selinux
2、根据/etc/sysctl.conf文件设定内核参数
3、设定系统时钟
4、识别键映射
5、启用swap分区
6、设定主机名
7、根文件系统检测及重新以读写方式挂载
8、激活RAIDH和LVM设备
9、启用磁盘配额
10、检测及挂载其他文件系统(/etc/fstab)
11、清除过期的锁和PID文件
创建小LINUX的步骤
1、加硬盘,分区:
1:100M
2:512M
3:128M
把1和2创建为ext3的文件系统并挂载
mkdfs -t ext3 /dev/sdb1
mkdfs -t ext3 /dev/sdb2
mount /dev/sdb1 /mnt/boot
mount /dev/sdb2 /mnt/sysboot
2、安装grub
# mkdir /mnt/boot/grub
# cp /usr/share/grub/i386-redhat/* /mnt/boot/grub
# grub
grub> root (hd1,0)
grub> setup (hd1)
编辑 grub的配置文件
vim /boot/grub/grub.conf
default=0
timeout=9
title This is a micro Linux
root (hd0,0)
kernel /vmlinuz ro root=/dev/sda2 rhgb quiet
initrd /initrd.gz
保存
3、复制内核并提供initrd:
# cp /boot/vmlinuz-$(uname -r) /mnt/boot/vmlinuz
# mkdir /tmp/linux
# cd /tmp/linux
# zcat /boot/initrd-$(uname -r).img | cpio -id
# vim init
找到/dev/vo10/root 换成 /dev/sda2
# find . | cpio -o -H newc --quiet | gzip -9 > /mnt/boot/initrd.gz
4、提供根文件系统
# cd /mnt/sysroot
# mkdir -pv ./{/etc/rc.d, sbin, bin, usr, proc, sys, tmp, lib, mnt, var, lib, media, dev, misc, opt }
# cp /sbin/init sbin/
# cp /bin/bash bin/
复制上述两个可执行文件依赖的库文件:
# ldd /sbin/init
ldd /bin/bash
# cp 到 lib/
5、提供配置文件
# vim etc/inittab
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
# vim /etc/rc.d/rc.sysinit
#!/bin/bash
#
echo -e "\tWelcome to LLinux"
/bin/bash
# chmod +x etc/rc.d/rc.sysinit
rc.local:
服务执行的最后一个脚本,它不定义任何服务