Linux系统管理09——引导过程与服务控制
一、引导过程总览
1、init进程
·由linux内核加载运行/sbin/init程序
·是系统中的第一个进程,所有进程的父进程
·PID(进程标记)号永远为1
2、Upstart启动方式
初始化配置分散存放,响应不同的启动事件
参数 |
说明 |
/etc/inittab |
配置默认运行级别 |
/etc/sysconfig/init |
控制tty终端的开启数量、终端颜色方案 |
/etc/init/rcS.conf |
加载rc.sysinit脚本,完成系统初始化任务 |
/etc/init/rc.conf |
兼容脚本,负责各运行级别的调用处理 |
/etc/init/rcS-sulogin.conf |
为单用户模式启动/sbin/sushell环境 |
/etc/init/control-alt-delete.conf |
控制终端下的Ctrl+Alt+Del热键操作 |
/etc/init/start-ttys.conf |
配置tty终端的开启数量、设备文件 |
/etc/init/tty.conf |
控制tty终端的开启 |
3、inittab文件的结构
(1)格式:id:runlevel:action:process
(2)各项说明:
id:用于在inittab文件中唯一表示一个配置记录
runlevels:用于指定改记录在那些运行级别中运行
action:用于标书记录将执行哪种类型的动作
process:用于设置启动进程所执行的命令
(3)示例:
(4)runlevels——运行级别
0:关机状态,使用该级别时将会关闭主机
1:单用户模式,无需密码验证即可登录系统,用于系统维护
2:字符界面的多用户模式(不支持访问网络)【很少使用】
3:字符界面的完整多用户模式,大多数服务器运行在此级别
4:未分配使用(省电模式)
5:图形界面的多用户模式,提供了图形桌面操作环境
6:重新启动,使用该级别时将会重启主机
二、修复MBR扇区故障
1、故障原因
·病毒、木马等造成的破坏(如硬盘炸弹)
·不正确的分区操作、磁盘读写误操作
2、故障现象
·找不到引导程序,启动中断
·无法加载操作系统,开机后黑屏
3、解决思路
·应提前作好备份文件
·以安装光盘引导进入急救模式
·从备份文件中恢复
4、修复MBR扇区故障示例:
(1)挂载/dev/sdb1到/backup,将MBR扇区备份至此,毁坏MBR扇区,重启。
(2)挂载系统光盘,从光盘引导进入安全模式
选择语言:英语
选择键盘:美式键盘
没有检测到可以支持的硬件系统
是否开启网络访问,选择no
急救:急救环境现在讲试图寻找你的Linux装置并挂载到/mnt/sysimage目录下。你可以对你的系统做任何必要操作。如果你想的话,按“Continue”键。你也可以选择挂载你的系统文件为只读模式,请选择“read-only”。如果你需要激活SAM设备选择“Advanced”
选择“Continue”
急救模式:你没有Linux分区。按下OK后返回到一个shell界面,当你退出这个shell时系统将会自动重启。
选择OK
开始shell
运行诊断
重启
选择shell
在shell界面将/dev/sdb1/挂载使用,将里面的备份写入/dev/sda,重启。
至此可以重新进入系统,MBR分区修复成功
三、修复GRUB引导故障
1、故障原因
·MBR中的GRUB引导程序遭到破坏
·grub.conf文件丢失、引导配置有误
2、故障现象
·系统引导停滞,显示“grub>”提示符
3、解决思路:
·方法一:尝试手动输入
·方法二:进入急救模式,重建grub程序
·方法三:若无MBR备份,进入急救模式,重新安装grub程序
4:、修复GRUB引导故障示例
【方法一:手动输入示例。注意,需提前记下内核的UUID或者存储的绝对路径】
在此处进行简单备份:
(1)将grub.conf文件备份后重命名为grub.conf.bak,重启
引导停滞,出现“grub>”提示符
(2)进行手动输入,注意:内核的信息无法tab补全,需查看之前备份
进入到系统后修改grub.conf文件
【方法二:进入急救模式,重建grub程序。需要提前备份MBR前446字节】
进入急救模式shell
进入shell后,将根路径修改为/mnt/sysimage (chroot /mnt/sysimage)
至此,进入安全模式进行GRUB引导的修复完成
【方法三:若无MBR备份,进入急救模式,重新安装grub程序】
进入安全模式shell同方法二,此处略
改变磁盘根目录到/mnt/sysimage/
重新安装grub引导程序
退出重启
grub.conf文件中的内容全部手动添加,注意别写错!
四、清除Linux各种密码
1、修改root密码
(1)方法一:进入单用户模式修改密码
·口诀:e2e,空格1,回车再按b, paaswd reboot,密码就改了
开机快速按方向键进入此界面,编辑,按e
选择第二个kernel,编辑,按e
进入单用户模式。
空格1,回车
引导,按b
进入单用户模式,修改root密码,重启
至此root密码已成功修改
(2)方法二:进入急救模式shell修改密码
进入急救模式的方法前文讲grub修复时详细的讲解过,此处不做赘述。进入急救模式的shell后,执行passwd root命令,修改root密码即可。
(3)方法三:修改/etc/shadow文件,将密文删除
进入单用户模式方法同方法一,此处略
编辑/etc/shadow文件,将密文清除,重启
至此,root密码已清空
2、清空grub引导密码
进入单用户模式,将/boot/grub/grub.conf文件内的password内容删除,重启即可。
五、服务控制及优化启动
1、系统服务控制
(1)常用方法:
·/etc/rc.d/init.d/ 服务名称 控制类型(/etc/init.d/ 是/etc/rc.d/init.d/的快捷方式)
【推荐使用上述方法】
·service 服务名称 控制类型
【上述方法仅用于Linux的红帽系统及centos,Unix系统不支持】
(2)常用控制类型
·start 启动
·stop 停止
·restart 重启
·reload 平滑重启,无需停止服务【常用】
·status 查看状态
(3)示例:以postfix服务为例
2、Linux系统的运行级别
(1)查看运行级别:runlevel 命令
(2)临时切换运行级别:使用init命令结合0-6运行级别参数
3、优化启动过程
(1)ntsysv工具
·提供一个交互式、可视化窗口
·可以在字符终端运行
·便于集体管理多个服务
1>示例:ntsysv --level 35
按空格键选择
2>常见的系统服务(来自网络)
Redhat Linux操作系统下常用服务介绍
·aep1000 挂载或卸载 aep1000/2000 协处理器驱动的。
·anacron 不过可以在指定时间没有开机无法完成任务的情况下另寻时间完成任务。
·Apmd 高级电源管理能源管理服务,可以为你监控电池
·Arpwatch 记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库
·Atd 用于at和batch的服务atd类似cron,提供在指定的时间做指定的事的服务,就象计划任务
·Autofs 自动安装管理进程automount,与NFS相关,依赖于NIS(autofs
自动挂载/卸载文件系统服务,可以自动挂载你想访问但还为挂载的文件系统,自动卸载长期不访问的文件系统。)
·bcm5820提供对CryptoNetX SSL Accelerator 适配器(用来处理SSL密钥的设备)的支持。
·Crond 为Linux下自动安排的进程提供运行服务.
·Gpm 提供字符模式下对鼠标的支持.
·Cups UNIX通用打印系统
·cups-lpd 支持用LPD协议跑CUPS
·daytime 获取并显示系统时间用的
·daytime-udp udp版的daytime
·echo 输出字符到客户端的
·finger 用来查询系统内用户信息
·firstboot 故名思意,安装完后第一次启动时跑的脚本,在第二次启动就不在运行了
·imap 为邮件提供imap服务
·imaps 为客户端提供SSL加密后的imap服务
·ipop2 提供POP2服务,什么是pop不用介绍了吧
·ipop3 pop3大名鼎鼎的pop3不用介绍了吧
·iptables 2.4内核默认的防火墙
·irda 红外线传输支持
·netfs 提供网络文件系统(NSF,SMB,NCP)挂载/卸载的。
·Keytable 用于装载键盘镜像
·Kudzu 硬件探测器
·Netfs 安装和卸载NFS、SAMBA和NETWARE网络文件系统
·Network 激活已配置网络接口的脚本程序
·Nfslock NFS锁定
·Pcmcia 安装pcmcia卡(一般用于笔记本电脑)
·Sshd OpenSSH服务器
·Syslog 一个让系统引导时启动syslog和klogd系统日志守候里程的脚本
·Xfs Xwindow字型服务器,为本地和远程X服务器提供字型集
·Xinetd 支持多种网络服务的核心守候程序。
·Kudzu 检测硬件变化的
·Mysqld Mysql database server
·Named BIND域名服务
·Netfs 提供网络文件系统(NSF,SMB,NCP)挂载/卸载的
·Network 激活/关闭网络设备的
·Nfs (NFS)network filesystem 服务
·Nfslock 提供一种NFS的权限设置
·Ntalk 可以让不同用户在系统上一起聊天的
·Ntpd 网络时间协议NTP(Network Time Protocol)和网络上同步时间用的
·Pops 提供SSL加密的pop3
·Portmap 端口映射,很多网络服务需要此服务
·Rexec 远程执行命令时提供用户验证
·Rhnsd redhat的网络服务,可以自动检查软件的升级
·rlogin 提供远程登录服务
·rsh 远程执行linux命令服务
·rsyn 高效的网络远程备份和镜象工具
·sendmail 赫赫有名的邮件服务器,(用来发匿信的好东东:) )
·servers监听被激活的服务用的
·sgi_fam 检测文件变化的
·smb 提供samba服务的
·snmp 简单网络管理服务
·snmptrapd 也是网络管理的
·squid web代理服务器
·sshd 提供sshd登录
·svscan daemontools 的一部分,用来管理后台服务
·syslogd 日志服务,很重要的服务
·tux 集成内核的web服务工具
·vsftpd 一个ftp服务端,以安全著称
·winbind smb服务中解析来自NT服务器名字的
·xinetd 超级服务器的Inetd的替代者,提供很多服务,非常重要。
·Yppasswdd nis服务中提供NIS用户验证服务
·random 当系统需要时会,产生随机数。关闭对大多数系统没什么大的影响,服务器不要轻易关闭。
(2)chkconfig工具
·不提供交互式、可视化窗口
·管理单个服务效率更高
1>格式:chkconfig --list
chkconfig --list 服务名称
chkconfig --level 级别列表 服务名 on|off (不指定级别时,默认2345)
2>示例:
【课外补充】添加服务,使服务可以用/etc/init.d或service启停
1、添加服务的步骤为:
(1) 将该服务的脚本文件拷入“/etc/rc.d/init.d” 文件夹下,保证其状态为“可 执行”;
(2) 使用chkconfig 命令将服务添加到服务列表中:
chkconfig --add camsd (注意有两个“-”)
将服务添加以后, 该服务即可以使用service 来启动/停止了。
2. 删除服务
如果要删除某项服务 将上述命令的“add” 改为“del” 即可:
chkconfig --del camsd (注意有两个 “-”)