第十五讲 启动管理
15. 1 CentOS 6.x 启动管理
//此处指6.3
15.1.1 系统运行级别
1.运行级别
运行级别 含 义
0 关机
1 单用户模式,可以想象为windows的安全模式,主要用于系统修复
//linux 有另外的安全模式
2 不完全的命令行模式,不含NFS服务 //NFS,linux之间文件共享
3 完全的命令行模式,就是标准字符界面 //就是我们当前使用的
4 系统保留
5 图形模式
6 重启动
2、运行级别命令
[root@localhost ~]# runlevel
#查看运行级别命令
//N 3, 代表开机直接进入3. 两个数据代表之前和当前的级别
[root@localhost ~]# init 运行级别
#改变运行级别命令
3、系统默认运行级别
[root@localhost ~]# vim /etc/inittab
id:3:initdefault:
#系统开机后直接进入哪个运行级别
//init 进程所做的事
15.1.2 系统启动过程
启动流程图
//图中箭头画错了,太容易造成困惑了,就是很简单直接的图。
initramfs内存文件系统
CentOS 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配置文件
主要功能是两个:
先调用/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文件
运行级别参数传入/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、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)
2、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=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 定义内核加载时的选项
initrd /initramfs-2.6.32-279.el6.i686.img 指定了initramfs内存文件系统镜像文件的所在位置
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
#查询内核是否支持分辨率修改
色深 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
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系统修复模式
//2 没认真看,以后用到的时候再看
1、单用户模式
单用户模式常见的错误修复
遗忘root密码
修改系统默认运行级别
2、光盘修复模式
重要系统文件丢失,导致系统无法启动
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文件到指定位置
3、Linux的安全性
第十六讲 备份与恢复
16.1 备份概述
1、Linux系统需要备份的数据
/root/目录:
/home/目录: //比如文件服务器 会需要备份此目标
/var/spool/mail/目录:
/etc/目录:
其他目录: 如 /var/log/
安装服务的数据
apache需要备份的数据
配置文件
网页主目录
日志文件
mysql需要备份的数据
源码包安装的mysql:/usr/local/mysql/data/
RPM包安装的mysql:/var/lib/mysql/
2、备份策略
完全备份:完全备份就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录
增量备份
差异备份
16.2 dump和restore命令
//不想听了,需要时再看
1、dump命令
[root@localhost ~]# dump [选项] 备份之后的文件名 原文件或目录
选项:
-level: 就是我们说的0-9十个备份级别
-f 文件名: 指定备份之后的文件名
-u: 备份成功之后,把备份时间记录在/etc/dumpdates文件
-v: 显示备份过程中更多的输出信息
-j: 调用bzlib库压缩备份文件,其实就是把备份文件压缩 为.bz2格式,默认压缩等级是2
-W: 显示允许被dump的分区的备份等级及备份时间
备份分区
dump -0uj -f /root/boot.bak.bz2 /boot/
#备份命令。先执行一次完全备份,并压缩和更新备份时间
cat /etc/dumpdates
#查看备份时间文件
cp install.log /boot/
#复制日志文件到/boot分区
dump -1uj -f /root/boot.bak1.bz2 /boot/
#增量备份/boot分区,并压缩
dump –W
#查询分区的备份时间及备份级别的
备份文件或目录
dump -0j -f /root/etc.dump.bz2 /etc/
#完全备份/etc/目录,只能使用0级别进行完全备份,而不再支持增量备份
2、restore命令
[root@localhost ~]# restore [模式选项] [选项]
模式选项:restore命令常用的模式有以下四种,这四个模式不能混用。
-C:比较备份数据和实际数据的变化
-i: 进入交互模式,手工选择需要恢复的文件。
-t: 查看模式,用于查看备份文件中拥有哪些数据。
-r: 还原模式,用于数据还原。
选项:
-f: 指定备份文件的文件名
比较备份数据和实际数据的变化
mv /boot/vmlinuz-2.6.32-279.el6.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak
//一定要记得住改回来,否则下次不能正常启动
#把/boot目录中内核镜像文件改个名字
restore -C -f /root/boot.bak.bz2
#restore发现内核镜像文件丢失
查看模式
restore -t -f boot.bak.bz2
还原模式
#还原boot.bak.bz2分区备份
#先还原完全备份的数据
mkdir boot.test
cd boot.test/
restore -r -f /root/boot.bak.bz2
#解压缩
restore -r -f /root/boot.bak1.bz2
#恢复增量备份数据
#还原/etc/目录的备份etc.dump.bz2
restore -r -f etc.dump.bz2
#还原etc.dump.bz2备份