Linux 启动管理
第十五讲 启动管理
15.1 CentOS 6.x启动管理
15.1.1 系统运行级别
nfs服务是 Linux和Linux之间进行文件共享的一个服务。
级别4未使用。
2、运行级别命令
[root@localhost ~]# runlevel #查看运行级别命令
[root@localhost ~]# init 运行级别 #改变运行级别命令
3、系统默认运行级别
[root@localhost ~]# vim /etc/inittab
id:3:initdefault:
#系统开机后直接进入哪个运行级别
(centos7中不在使用)
15.1.2 系统启动过程
启动流程图
Linux下,内核安装完,所有的驱动都会安装在内核中,根据硬件自动判断需要哪些驱动。但一般为了防止内核变得无比庞大,只会把常见的驱动放在内核,不常用的作为函数模块放在/lib目录,需要时去读取。注意:SATA硬盘驱动作为模块放在lib中,会出现一个问题:即驱动放在硬盘/lib下,但硬盘又未被驱动,内核怎么去读取?答案是使用 initramfs 文件系统,模拟跟硬盘相似的结构,内核先加载它(lib),把基本的驱动加载进来,从而去驱动真正的硬盘。
/boot 分区是由启动引导程序加载,而不是由内核加载。所以能加载这个文件。
/sbin/init 系统启动的第一个进程
initramfs内存文件系统:
uCentOS 6.x中使用initramfs内存文件系统 取代了CentOS 5.x中的initrd RAM Disk。
他们的作用类似,可以通过启动引导程序加载到内存中,然后加载启动过程中所需要的内核模块,比如USB、SATA、SCSI 硬盘的驱动和LVM、RAID文件系统的驱动
查看改文件:
mkdir /tmp/initramfs
#建立测试目录
cp /boot/initramfs-2.6.32-279.el6.i686.img /tmp/initramfs/ #复制initramfs文件
cd /tmp/initramfs/
file initramfs-2.6.32-279.el6.i686.img
mv initramfs-2.6.32-279.el6.i686.img initramfs-2.6.32-279.el6.i686.img.gz #修改文件的后缀名为.gz
gunzip initramfs-2.6.32-279.el6.i686.img.gz
#解压缩
file initramfs-2.6.32-279.el6.i686.img
cpio -ivcdu < initramfs-2.6.32-279.el6.i686.img
#解压缩
调用/etc/init/rcS.conf配置文件:
u主要功能是两个:
Ø 先调用/etc/rc.d/rc.sysinit,然后由/etc/rc.d/rc.sysinit配置文件进行Linux系统初始化。
Ø 然后再调用/etc/inittab,然后由/etc/inittab配 置文件确定系统的默认运行级别。
由/etc/rc.d/rc.sysinit初始化:
1、获得网络环境
2、挂载设备
3、开机启动画面Plymouth(取替了过往的 RHGB) 4、判断是否启用SELinux
5、显示于开机过程中的欢迎画面
6、初始化硬件
7、用户自定义模块的加载
8、配置内核的参数
9、设置主机名
10、同步存储器
11、设备映射器及相关的初始化
12、初始化软件磁盘阵列(RAID)
13、初始化 LVM 的文件系统功能
14、检验磁盘文件系统(fsck)
15、设置磁盘配额(quota)
16、重新以可读写模式挂载系统磁盘
17、更新quota(非必要)
18、启动系统虚拟随机数生成器
19、配置机器(非必要)
20、清除开机过程当中的临时文件
21、创建ICE目录
22、启动交换分区(swap)
23、将开机信息写入/var/log/dmesg文件中
调用/etc/rc.d/rc文件:
u运行级别参数传入/etc/rc.d/rc这个脚本之 后,由这个脚本文件按照不同的运行级别启动/etc/rc[0-6].d/目录中的相应的程序
Ø /etc/rc3.d/k??开头的文件(??是数字),会按照数字顺序依次关闭
Ø /etc/rc3.d/S??开头的文件(??是数字),会按照数字顺序依次启动
15.2 启动引导程序grub
15.2.1 Grub配置文件
基本配置(1-4,主要是default选项) + 系统配置(1-4)
注意:如果同时存在 win + linux ,则得先安装Win,再安装Linux。因为win无法识别linux的启动引导程序(反过来却可以),防止WIn的启动引导程序覆盖Linux的grep,而导致Linux无法启动。
15.2.2 Grub加密与字符界面分辨率调整
1、grub加密
[root@localhost ~]# grub-md5-crypt #生成加密密码串
[root@localhost ~]# vi /boot/grub/grub.conf
default=0
timeout=5
password --md5 $1$Y84LB1$8tMY2PibScmuOCc8z8U35/ #password选项放在整体设置处。
splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu
…省略部分内容…
2、纯字符界面分辨率调整
grep "CONFIG_FRAMEBUFFER_CONSOLE" /boot/config-2.6.32-279.el6.i686
#查询内核是否支持分辨率修改
vi /boot/grub/grub.conf
kernel /vmlinuz-2.6.32-279.el6.i686 ro
root=UUID=b9a7a1a8-767f-4a87-8a2b- a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF- 8 rd_NO_LVM rd_NO_DM rhgb quiet vga=791
15.3 系统修复模式
grep中 通过 e键 修改内核加载选项 指定启动级别为 1
单用户模式常见的错误修复
u遗忘root密码
u修改系统默认运行级别
启动时,按F2 按光盘启动系统
重要系统文件丢失,导致系统无法启动,可绕过grep的加密
bash-4.1# chroot /mnt/sysimage #改变主目录
sh-4.1# cd /root #进入真正的系统命令
sh-4.1# rpm -qf /etc/inittab #查询下/etc/inittab文件属于哪个包。
sh-4.1# mkdir /mnt/cdrom #建立挂载点
sh-4.1# mount /dev/sr0 /mnt/cdrom #挂载光盘
sh-4.1# rpm2cpio \
/mnt/cdrom/Packages/initscripts-8.45.3-1.i386.rpm \
| cpio -idv ./etc/inittab
#提取inittab文件到当前目录
sh-4.1# cp etc/inittab /etc/inittab #复制inittab文件到指定位置
注意:安全指的是网络安全,当获取到真实机时默认拥有所有权限
分情破爱始乱弃,流落天涯思别离。
如花似玉负情意,影如白昼暗自迷。
随风浮沉千叶落,行色匆匆鬓已稀。