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文件到指定位置
 

 
 
 
注意:安全指的是网络安全,当获取到真实机时默认拥有所有权限

posted @ 2019-03-13 22:49  白開水  阅读(355)  评论(0编辑  收藏  举报