Linux系统引导过程及引导修复

本文详细介绍了Linux系统的启动流程,包括BIOS初始化、磁盘引导、GRUB2文件引导、内核加载和系统初始化镜像等关键步骤。同时,针对每个步骤可能出现的问题,如MBR丢失、GRUB2配置文件损坏、内核文件缺失和初始化镜像丢失等,提供了详细的恢复方法,包括使用救援模式、手动引导和恢复文件等操作。
摘要由CSDN通过智能技术生成

1、通电
2.bios初始化:对硬件检测,初始化硬件时钟。

1、磁盘引导

盘片–存储数据
磁头–读取数据,默认在零磁道
磁道–磁头在磁盘表面划出的圆形轨迹
扇区–
磁盘引导–零磁道一扇区,引导磁头下一步的动作

mbr=主引导记录=零磁道一扇区=446字节
作用:记录grub2引导文件的位置

当mbr数据丢失,系统会因为找不到启动分区而停止启动

问题模拟方式:
系统磁盘 /dev/sda

dd if=/dev/zero of=/dev/vda bs=446 count=1	##清空系统/dev/sda上的mbr数据,只能是446,后面的64个字节是分区表,没有备份的情况下删除掉,只能重装系统

恢复方式:
用光盘进入挽救模式

chroot /mnt/sysimage
grub2-install /dev/vda		##重新安装grub2到系统硬盘上
exit
exit

具体操作:
虚拟机shell里执行 dd if=/dev/zero of=/dev/vda bs=446 count=1
虚拟机关机情况下在虚拟机控制器里force off
双击打开引导程序坏掉的虚拟机

add hardware–> storage --> device(CDROM),bus type(SATA),manage(镜像) --> boot options --> 勾选sata cdrom1并置顶(以光驱启动) --> 启动虚拟机–> troubleshooting --> rescue a red hat enterprise linux system (当前读取的是光驱的系统) --> 选择1(comtinue) --> 回车 --> chroot /mnt/sysimage (更改根目录到硬盘) -->
grub2-install /dev/vda --> vim /etc/sysconfig/selinux --> SELINUX=disabled(加快开机速度)
–> exit exit --> 关机 --> virtlO Disk 1置顶(将硬盘启动方式置顶) --> 开机

2、grub2文件引导

rhel8

/boot/grub2/grub.cfg			##主引导文件,丢失后系统不能启动
/boot/loader/entries/xxxxxx.conf	##子引导文件

[注意] 手动引导需要知道/boot和/所在磁盘和分区

指定/boot位置
指定系统启动时加载文件名称

uname -r ##查看版本号(4.18.0-193.el8.x86_64)

模拟问题1:
rhel8:
rm -rf /boot/grub2/grub.cfg

修复:
1)直接恢复文件
cd /boot/grub2
ls
rm -rf /boot/grub2/grub.cfg
grub2-mkconfig > /boot/grub2/grub.cfg ##恢复文件

2)手动引导步骤

reboot --> set root='hd0,msdos1' --> linux16 /vmlinuz-4.18.0-193.el8.x86_64 ro root=/dev/vda3 --> initrd16 /initramfs-4.18.0-193.el8.x86_64.img --> boot --> 恢复文件grub2-mkconfig > /boot/grub2/grub.cfg
3、内核加载

加载内核作用:
/boot/vmlinuz-4.18.0-193.el8.x86_64
系统初始化硬件设备
只读挂载在/设备

系统有备份,可以直接复制恢复

模拟问题:
rm -rf /boot/vmlinuz-4.18.0-193.el8.x86_64

恢复:
1)恢复文件

ll /boot/vimlinuz-4.18.0-193.el8.x86_64

cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz boot/vimlinuz-4.18.0-193.el8.x86_64

2)手动引导步骤

关机 --> 灯泡 --> boot options --> 勾选sata cdrom1并置顶(以光驱启动) --> 启动虚拟机--> troubleshooting --> rescue a red hat enterprise linux system (当前读取的是光驱的系统) --> 选择1(comtinue) --> 回车 --> chroot /mnt/sysimage (更改根目录到硬盘) -->cp /lib/modules/4.18.0-193.el8.x86_64/vmlinuz /boot/vimlinuz-$(uname -r) --> ls(已恢复) --> exit exit --> 关机 --> virtlO Disk 1置顶(将硬盘启动方式置顶) -->开机
4、系统初始化镜像

/boot/initramfs-xxx.img

加载系统时钟
加载selinix
加载系统主机信息
加载/etc/fstab文件中磁盘挂载策略
加载磁盘配额
初始化系统程序开启开机自启服务
开启虚拟控制台
开启图形
模拟问题:
rm -rf /boot/initramfs-xxx.img

恢复:
1)直接恢复文件

 mkinitrd /boot/initrsmfs-$(uname -r).img $(uname -r)

2)手动引导

 关机 --> 灯泡 --> boot options --> 勾选sata cdrom1并置顶(以光驱启动) --> 启动虚拟机--> troubleshooting --> rescue a red hat enterprise linux system (当前读取的是光驱的系统) --> 选择1(comtinue) --> 回车 --> chroot /mnt/sysimage (更改根目录到硬盘) -->  mkinitrd /boot/initrsmfs-$(uname -r).img $(uname -r) --> ls(已恢复) --> exit exit --> 关机 --> virtlO Disk 1置顶(将硬盘启动方式置顶) -->开机
5、系统启动级别

/etc/systemd/system/ ##用于存放服务链接

模拟问题:
systemctl set-default reboot.target

恢复:
在开机选择界面按e进入到引导文件编辑模式
在内核加载选项最后加入启动级别5
ctrl+x
systemctl set-default graphical.target

6、超级用户密码忘记

在开机选择界面按e进入到引导文件编辑模式
在内核加载选项删除到ro改为rw,加上rd.break(终止系统启动进入单用户模式)
ctrl+x 启动

chroot /sysroot/
echo westos | passwd --stdin root(passwd直接改也可以)
touch /.autorelabel

(-为了初始化selinux,作用后会被删掉
-selinux是一个安全增强系统,内部有许多安全策略,针对一些操作,如果你做了这些操作,没有得到策略的放行,会被禁止。比如用单用户修改root密码是不被策略放行的。
>touch /.autorelabel 创建这个文件就是告诉selinux放行这个策略,否则修改密码无效
>exit)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值