一、创建MINI Linux
在当前系统添加的新硬盘上装入GRUB,创建两个分区,分别作为/BootT和/,kernel放在/Boot上,其他文件系统放在/上,eg /bin /sbin /var /etc /tmp /boot /usr /lib /sys /proc /home
步骤1
步骤2
步骤3
步骤4
通过以下命令可代替1-4步骤完成同样的操作
二、Linux系统剪裁
cpio -H newc 归档文件目录结构,当前目录下所有文件及子目录的映射路径按原有路径格式保存,并支持多余51200个文件,默认情况下cpio支持的文件数量较少,新规范支持更多文件数量
K的表示停止(Kill)一个服务,S表示开启(Start)的意思,K和S后面带的数字,是用来排序决定这些脚本执行的顺序,比如要启动Apache服务,就必须先配置网络接口
/etc/rc.d/与/etc/rc.d/init.d的关系
init.d/ :
各种服务器和程序的二进制文件存放目录。 一般是linux以rpm包安装时设定的一些服务的启动脚本。执行这些脚本可以用来启动,停止,重启这些服务。
/etc/rc.d/init.d:
脚本就类似与windows中的注册表,在系统启动的时候执行。在决定了系统启动的run level之后,/etc/rc.d/rc这个脚本先执行,知道了运行级别之后,对于每一个运行级别,在rc.d下都有一个子目录分别是rc0.d,rc1.d ….. rc6.d。每个目录下都是到init.d目录的一部分脚本一些链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在 rc5.d下,但是放在这个rc5.d下的都是一些链接文件,链接到init.d中相对应的文件,真正作用的init.d里的脚本。
Rc#.d/:
各个启动级别的执行程序连接目录。里头的东西都是指向init.d/的一些软连接。
无意中发现同一个服务带S的和带K的链接到init.d之后是同一个脚本。这简直是S和K的妙用了:S给和K还分别给init.d下面的脚本传递了start和stop的参数。例如经常用到的/etc/rc.d/init.d/service name restart命令。原来传S时相当于执行了/etc/rc.d/init.d/xxx start这条命令,当然K就相当于/etc/rc.d/init.d/xxx stop了。rc.local是最后执行的自启动配置文件
添加服务配置IP地址
添加挂载其他文件系统功能,利用/etc/fstab和/proc/mounts判断其他文件系统是否被挂载
终端提示信息/etc/issue文件的内容
实现不基于/etc/pam.d/*文件的用户登录
GET login文件保存至/Bin.更改权限后,确定login所依赖的lib文件是否相在/lib目录下
设置提示符
添加单用户模式
小结:
执行init程序
/etc/rc.d/rc.sysinit # 由init执行的第一个脚本
/etc/rc.d/rc $RUNLEVEL #$RUNLEVEL为缺省的运行模式
/etc/rc.d/rc.local #最后初始化的脚本
/sbin/mingetty # 等待用户登录
/etc/rc.d/rc根据其参数指定的运行模式(运行级别在inittab文件中设置)来执行相应目录下的脚本。凡是以 Kxx开头的,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx 从小到大来执行。例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用/etc/rc.d/rc3.d/下的脚本。
注意:
Redhat中的runlevel2、3、5都把/etc/rc.d/rc.local做为初始化脚本中的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。
init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。
至此,LINUX的启动结束。
最后补充一点:
许多网络服务都由超级服务/etc/rc.d/init.d/xinetd启动,这些服务的配置文件在/etc/xinetd.d/目录下