一、Linux开机引导过程
1、bios开机自检
开机检测硬件是否在正常运行,去第一启动项上找主引导记录(MBR、GPT)。
2、MBR引导
MBR引导存储在硬盘的第一个扇区,是一个二进制格式文件。作用是协助硬件找到操作系统,根据MBR引导找到操作系统所在磁盘位置。
3、grub菜单
启动加载器,作用是根据grub程序找到配置文件找到内核的位置。grub菜单可以进行人机交互,设置密码,自我修复。
4、加载内核
把系统启动所需要的程序和资源,加载到内存中。
5、初始化进程
启动系统的初始化进程。centos 6使用init初始化,特点是串行启动程序,需要对程序和依赖关系一个一个启动,速度慢;centos 7使用systemd初始化,特点是并行启动程序,可以同时启动多个程序,速度快。除此之外systemd 还可以用来管理进程,功能比init 管理进程的能力强大很多。
二、系统运行级别
centos 7中systemd 根据unit 单元来管理进程,功能类似的进程会放在同一个单元中,把都哦个单元放在一起就形成一组target,再把不同的target 组放在一起就组成六个不同的系统运行级别。
0:表示关机。init 0 = power off
1:单用户模式,一般用于系统维护
2、3、4:这三个级别可以认为是一个级别,都是字符界面。3的功能比较全面,在实际生产工作中基本上都是3
5:图形化界面
6:表示重启。init 6 = reboot
三、模拟修复MBR故障实验
1、给虚拟机添加一块新硬盘,对其进行分区,建立文件系统,挂载。
2、备份系统盘sda的第一个扇区的内容到新硬盘
3、破环系统盘的第一个扇区
4、reboot 重启,这时就会无法进入系统
5、开始修复,按照顺序依次选择
6、对/dev/sdb1重新挂载 ![](https://i-blog.csdnimg.cn/blog_migrate/c19581242927df31521006bc9be21e02.png)
7、把数据再次复制回sda硬盘 ,并重启
四、修复grub菜单实验
1、删除 / boot/ grub2/grub.cfg文件
2、reboot 重启,这时就会无法进入系统
3、进入急救模式,快速按鼠标左键 + esc 键。
4、开始修复,按照顺序依次选择
5、重新生成配置文件,并重启
五、修改root密码实验(在没有光驱的情况下修改)
1、开机进入grub菜单后按e键,修改grub菜单
2、进入修改界面后,把光标移动到以linux 16 开头的行,按END键跳转到行尾并输入rd.beark
3、按ctrl + x 开始执行,进入单用户界面
4、把sysroot 权限改为可读可写
5、切跟并设置密码
6、退出并重启
六、Linux程序管理
Linux系统中的服务类程序是要为其他程序或者用户提供服务的,所以这些进程要始终在后台处于运行状态。Linux系统中一般服务名称后面都带 d ,例如httpd(80端口),vsftpd(20、21端口),sshd(22端口)等。
按照服务对象不同,Linux系统中的服务对内和对外两种类型。对内服务面向本地计算机,主要维持本地计算机正常运行;对外服务面向网络上的用户,主要是为了给网络上的用户提供各种功能。
sentos 7 上使用systemd 程序来管理程序,是系统中第一个启动的进程,是其他进程的父进程。systemd 中的systemctl 命令用来管理进程,控制程序状态的命令。
systemctl命令使用格式 :systemctl + 状态 + 程序名
程序状态:start :开启进程
stop :关闭进程
restart :重启进程
reload :重新加载进程
status :查看进程状态
enable :开机自启动进程
enable --now :开机自启动并立即开始服务
disable :开机不自启动
disable --now :开机不自启动并立即关闭服务
七、使用systemctl 命令控制编译安装应用
编译安装的程序不被systemctl 命令所控制,如果编译安装的程序过多,管理起来就过于繁琐。因此需要对编译安装的程序也用systemctl 命令控制才能提高便携度。
实验:使用systemctl 命令控制nginx
1、先对nginx 进行编译安装
2、编辑systemctl 命令控制nginx 的配置文件
3、检查是否成功控制nginx