目录:
1、Linux操作系统引导过程
1.1BIOS 和 MBR引导
1.2 GRUB功能和组成
2、修复GRUB引导故障
2.1 实验:删除grub.cfg后再重启
2.2 修改密码总结
2.3 系统服务控制
2.4 开机自启
1、Linux操作系统引导过程
引导过程总览
1.1BIOS 和 MBR引导
MBR有464个字节
MBR由主引导程序,硬盘分区表DPT和有效硬盘标书(SSAA,如果这个标志位OxAA55,就认为这个是MBR)组成,MBR的Bootloader里面安装有GRUB程序的一部分,在安装系统写入。
打开电源进入部件 查看 BIOS
读取grub下的,不能缺少grub2
1.2 GRUB功能和组成
GRUB内核很大,grub的三个阶段
第一阶段:MBR的前446个字节,引导硬件去找内核
1.5 stage:MBR 之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统
secondary boot loader :2nd stage,分区文件/boot/grub2/grub.cfg
查看pstree
系统初始化进程
init进程 :由Linux内核加载运行 /sbin/init程序
init进程是系统中第一个进程
init进程的PID(进程标记)号永远为1
Systemd 功能非常强大
Systemd是Linux操作系统的一种init软件
CentOS7中采用全新的Systemd启动方式,带去传统的SysVinit
CentOS7中运行的第一个init进程是/lib/systemd/systemd
Systemd单元类型
Service .service描述一个系统服务
Socket .socket 描述一个进程间通信的套接字
一、备份 /dev/sda的前512字节到 /mnt目录下:
dd if=/dev/sda of=/mnt/mvr.bak count=1 bs=512
复制 从哪里复制 复制到哪里去 复制几次 一次取多大
不要备份在一块盘上,要读准备一块硬盘
查看是否挂载上
ll /mnt/
二、模拟破坏前512字节:
dd if=/dev/zero of=/dev/sda count=1 bs=512
hexdump -C -n 512 /dev/sda 看 sda硬盘的512字节
三、重启 选第三选项 ,再选第二选项,最后写1
mkdir bak
mount /dev/sdb1 /bak
dd if=/bak/mbr.bak /dev/sda bs=512 count=1
2、修复GRUB引导故障
故障原因
MBR中的GRUB引导程序遭到破坏;grub.conf文件丢失、引导配置有误
故障现象
系统引导停滞,显示“grub”提示符
解决思路
尝试手动输入引导命令
进入急救模式,重写或者从备份中恢复grub.conf
向MBR扇区中重建grub程序
实验内容:把此文件消掉 把MBR前464个字节毁掉然后再恢复它
2.1 实验:删除grub.cfg后再重启
统装在光驱里重新启动
方法:引导界面进入急救模式,重建GRUB菜单的配置文件
rm -rf /boot/grub2/grub.cfg
#进入急救模式,加载光盘镜像,切换到硬盘的系统根环境
sh-4.2 # chroot /mnt/sysimage
#重新将GRUB引导程序安装到第一块硬盘(/dev/sda)的MBR扇区,如果有多个分区可省略
bash-4.2 # grub2-mkconfig -o /boot/grub2/grub.cfg
#退出chroot环境,并重启
bash-4.2 #exit
sh-4.2 #reboot
#####遗忘root用户的密码
#进入急救模式,加载系统镜像,切换到系统根目录
sh-4.2 #chroot /mnt/sysimage
#重设root用户密码
bash-4.2 #passwd root
3、遗忘root密码
更改root密码:执行完后exit 然后reboot
现在进入到单用户模式/急救模式:
切换到root目录再输密码:
setenforce 0 关闭,不想关的话touch /.autorelabcl 告诉已经改过密码了。改完之后exit,然后reboot。
查看是否连接上,如果连接上,就是完成了。
2.2 修改密码总结
1、有光驱
chroot /mnt/sysimage
passwd
exit
reboot
2、没有光驱
启动时任意键暂停启动
按e键进入编辑模式
将光标移动linux 开始的行,添加内核参数 rd.break
按ctrl-x启动
mount –o remount,rw /sysroot
chroot /sysroot
passwd root
#如果SELinux是启用的,才需要执行下面操作,如没有启动,不需要执行
touch /.autorelabel
exit
reboot
3、centos 6 修改密码
启动时按上下键
按a输入 s1 进入单用户模式
passwd
exit
reboot
2.3 系统服务控制
关闭防火墙:
systemctl的控制类型;
开启关闭系统中的服务
systemctl start 服务名 ------开启
systemctl stop 服务名 ------ 停止
systemctl status 服务名 ------查看状态
systemctl reload 服务名 ------ 重新加载
开启系统服务会伴随开启一个系统端口
Linux系统的运行界别
查看运行级别:
runlevel命令(runlevel只能查看切换运行级别与当前运行级别)
systemctl工具(能查看默认的运行级别)
临时切换运行命令:
init命令(init的命令参数是运行级别所对应的数字 )
systemctl工具(systemctl命令参数是具体的target)
打开虚拟机的运行终端,用runlevel命令查看运行级别从5变成了3
systemctl 查看的是默认级别,显示的是图形界面
2.4 开机自启
systemctl enable 服务名 ---> 开机自启
systemctl disable 服务名 ---> 开机不自启
systemctl enable --now 服务名 -----> 立刻启动并且开机自启
systemctl disable --now 服务名 -----> 立刻关闭服务并且开机不自启