第13章 启动管理

📝 Linux学习笔记 - 第13章 🎯 共3节


本章目录


CentOS 6.x启动管理

返回目录 | 返回顶部

系统运行级别

运行级别

运行级别含义
0关机
1单用户模式,可以想象为windows的安全模式,主要用于系统修复
2不完全的命令行模式,不含NFS服务
3完全的命令行模式,就是标准字符界面
4系统保留
5图形模式
6重启动

运行级别命令

runlevel
# 查看运行级别命令,N代表无,进入3级别之前的级别
 
init 运行级别
# 改变运行级别命令

系统默认运行级别

vim /etc/inittab

配置项:

id:3:initdefault:

系统开机后直接进入哪个运行级别

系统启动过程

initramfs内存文件系统

CentOS 6.x中使用initramfs内存文件系统取代了CentOS5.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配置文件

主要功能是两个:

  1. 先调用 /etc/rc.d/rc.sysinit,然后由 /etc/rc.d/rc.sysinit 配置文件进行Linux系统初始化
  2. 然后再调用 /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文件

运行级别参数传入 /etc/rc.d/rc 这个脚本之后,由这个脚本文件按照不同的运行级别启动 /etc/rc[0-6].d/ 目录中的相应的程序

  • /etc/rc3.d/K?? 开头的文件(??是数字),会按照数字顺序依次关闭
  • /etc/rc3.d/S?? 开头的文件(??是数字),会按照数字顺序依次启动

启动引导程序grub

返回目录 | 返回顶部

grub中分区表示

硬盘分区Linux中设备文件名Grub中设备文件名
第一块SCSI硬盘第一个主分区/dev/sda1hd(0,0)
第二个主分区/dev/sda2hd(0,1)
扩展分区/dev/sda3hd(0,2)
第一个逻辑分区/dev/sda5hd(0,4)
第二块SCSI硬盘第一个主分区/dev/sdb1hd(1,0)
第二个主分区/dev/sdb2hd(1,1)
扩展分区/dev/sdb3hd(1,2)
第一个逻辑分区/dev/sdb5hd(1,4)

grub配置文件

vi /boot/grub/grub.conf
配置项说明
default=0默认启动第一个系统
timeout=5等待时间,默认是5秒
splashimage=(hd0,0)/grub/splash.xpm.gz指定grub启动时的背景图像文件的保存位置
hiddenmenu隐藏菜单
title CentOS (2.6.32-279.el6.i686)title就是标题的意思
root (hd0,0)是指启动程序的保存分区
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=…定义内核加载时的选项
initrd /initramfs-2.6.32-279.el6.i686.img指定了initramfs内存文件系统镜像文件的所在位置

系统修复模式

返回目录 | 返回顶部

单用户模式常见的错误修复

  • 遗忘root密码
  • 修改系统默认运行级别

重要系统文件丢失,导致系统无法启动

使用光盘修复模式:

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

Grub加密与字符界面分辨率调整

grub加密

grub-md5-crypt
# 生成加密密码串

然后修改grub配置文件:

vi /boot/grub/grub.conf

添加password配置:

default=0
timeout=5
password --md5 $1$Y84LB1$8tMY2PibScmuOCc8z8U35/
# password选项放在整体设置处
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
...

纯字符界面分辨率调整

查询内核是否支持分辨率修改:

grep "CONFIG_FRAMEBUFFER_CONSOLE" /boot/config-2.6.32-279.el6.i686

分辨率对照表:

色深640×480800×6001024×7681280×1024
8位769771773775
15位784787790793
16位785788791794
32位786789792795

修改grub配置:

vi /boot/grub/grub.conf

在kernel行末尾添加vga参数:

kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=... vga=791