第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配置文件
主要功能是两个:
- 先调用
/etc/rc.d/rc.sysinit,然后由/etc/rc.d/rc.sysinit配置文件进行Linux系统初始化 - 然后再调用
/etc/inittab,然后由/etc/inittab配置文件确定系统的默认运行级别
由/etc/rc.d/rc.sysinit初始化
- 获得网络环境
- 挂载设备
- 开机启动画面Plymouth(取替了过往的RHGB)
- 判断是否启用SELinux
- 显示于开机过程中的欢迎画面
- 初始化硬件
- 用户自定义模块的加载
- 配置内核的参数
- 设置主机名
- 同步存储器
- 设备映射器及相关的初始化
- 初始化软件磁盘阵列(RAID)
- 初始化LVM的文件系统功能
- 检验磁盘文件系统(fsck)
- 设置磁盘配额(quota)
- 重新以可读写模式挂载系统磁盘
- 更新quota(非必要)
- 启动系统虚拟随机数生成器
- 配置机器(非必要)
- 清除开机过程当中的临时文件
- 创建ICE目录
- 启动交换分区(swap)
- 将开机信息写入
/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/sda1 | hd(0,0) |
| 第二个主分区 | /dev/sda2 | hd(0,1) | |
| 扩展分区 | /dev/sda3 | hd(0,2) | |
| 第一个逻辑分区 | /dev/sda5 | hd(0,4) | |
| 第二块SCSI硬盘 | 第一个主分区 | /dev/sdb1 | hd(1,0) |
| 第二个主分区 | /dev/sdb2 | hd(1,1) | |
| 扩展分区 | /dev/sdb3 | hd(1,2) | |
| 第一个逻辑分区 | /dev/sdb5 | hd(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×480 | 800×600 | 1024×768 | 1280×1024 |
|---|---|---|---|---|
| 8位 | 769 | 771 | 773 | 775 |
| 15位 | 784 | 787 | 790 | 793 |
| 16位 | 785 | 788 | 791 | 794 |
| 32位 | 786 | 789 | 792 | 795 |
修改grub配置:
vi /boot/grub/grub.conf在kernel行末尾添加vga参数:
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=... vga=791