系统排错

系统排错

系统引导过程:

通电–>bios初始化–>grub2磁盘引导阶段–>grub2文件引导阶段–>指定boot所在分区–>启动内核,只读挂载/设备–>启动init程序进入初始化阶段–>启动systemd初始化进程–>取/etc/systemd/中的文件–>启动程序–>启动登陆环境

grub磁盘引导阶段

MBR
mbr的作用是为了记录/boot目录所在分区位置:
磁盘的0磁道1扇区的前446字节

grub文件引导阶段

1./boot/grub2/grub.cfg指定/boot分区位置
2.加载内核
3.启动系统初始化进程
grub2-mkconfig可以生成grub.cfg文件

内核引导阶段

1.检测硬件设备
2.设备驱动初始化
3.将/目录只读挂载
4.载入初始进程 systemd
内核文件丢失请重新安装内核

systemd初始化

1.开启selinux和systemd-tools
2.加载内核参数
3.加载系统时钟,键盘,主机名称
4.读写挂载/文件系统
5.激活raid,lvm设备
6.激活系统配额
7.启动multi-user.target.wants中的所有服务脚本
8.启动虚拟控制台
9.启动图形

硬盘引导阶段实验模拟:MBR丢失(MBR主引导记录的恢复)

执行命令:dd if=/dev/zero of=/dev/vda bs=446 count=1
此时MBR就被覆盖了,重启系统会发现一直Booting from Hard Disk…
解决方法:
添加光盘镜像,设置CDROM优先,然后进入挽救模式:
chroot /mnt/sysimage/
grub2-install /dev/vda ##指定启动分区所在硬盘

文件引导阶段实验模拟

引导文件丢失:

/boot/grub2/grub.cfg
模拟问题:rm -fr /boot/grub2/grub.cfg
当系统没有重新启动时,可以使用以下命令恢复:
grub2-mkconfig > /boot/grub2/grub.cfg
当系统删除此文件并重新启动时:
grub > set root=’hd0,msdos1’ ##此位置需要根据实际情况,指定/boot所在分区
grub > linux16 /boot/vmlinuz-3.10xxxxxxxxx ro root=/dev/vda1 ##指定根分区的设备名称
grub > initrd16 /boot/initramfs-3.10.0xxxxxx.img
grub > boot
以上操作可以使系统启动,但是是临时的,所以进入系统之后还需要运行:
grub2-mkconfig > /boot/grub2/grub.cfg
以永久恢复

定制系统启动的各种设定

vim /boot/grub2/grub.cfg
找到timeout可以设置启动时的等待选择时间
设置显示系统名称:
menuentry ‘OS名称’ {
set root=’hd0,msdos1’ ##视实际情况而定
chainloader +1 ##windows的启动引导
}
设置默认启动项:
命令行下grub2-set-default 0,1,2…

内核文件丢失

模拟问题:rm -fr /boot/vmlinuz-3.10xxxxxxx.x86_64
内核文件:/boot/vmlinuz-xxxxxxxx.x86_64
1.进入挽救模式将系统光盘文件挂载:
mount /dev/sr0 /mnt/
2.新建一个目录以保存内核文件:
mkdir /rhel
3.然后进入挂载点中的Packages中:
cd /mnt/Packages
4.将内核文件安装包拷贝到刚刚创建的目录:
cp kernel-3.10.0xxxxxxxx86_64.rpm /rhel/
5.cd到创建的目录中,将内核的rpm拆解:
rpm2cpio kernel-3.10.0xxxxxx.rpm | cpio -id
6.将分解出来的内核文件vmlinuz-3.10xxxxxx移动到/boot/下

初始化镜像文件丢失

模拟问题:rm -fr initramfs-3.10xxxxxx86_64.img
没重启的情况下,可以在命令行运行以下命令:
mkinitrd /boot/initramfs- (unamer).img (uname -r)
若已经重启,就在挽救模式下运行以上命令

/boot文件不小心删除

1.进入到挽救模式
2.chroot /mnt/sysimage
3.mkdir /boot
4.grub2-install /dev/vda
5.mount /dev/cdrom /mnt
6.rpm -ivh /mnt/Packages/kernel-3.10xxxxxx.rpm –force
7.grub2-mkconfig > /boot/grub2/grub.cfg

当开机启动级别被篡改:

错误形成:systemctl set-default reboot.target
解决:
1.开机按上下键停止读秒
2.按E进入编辑模式
3.选择内核启动行
将linux16 /vmlinuz-xxxxxxx ro xxxxxxxxxx改为:
linux16 /vmlinuz-xxxxxxxxxx rw rd.break
4.ctrl+x
5.chroot /sysroot
6.rm -fr /etc/systemd/system/default.target
7.ln -s /lib/systemd/system/graphical.target /etc/systemd/system/default.target
8.exit

忘记root密码

同上,做完第5步,直接passwd改密码
改完之后touch /.autorelabel防止密码不被识别

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值