首页 / LINUX / Linux系统引导过程及引导修复
Linux系统引导过程及引导修复
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux系统引导过程及引导修复,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5316字,纯文字阅读大概需要8分钟。
内容图文
0.Linux系统引导过程:
1.通电
2.bios初始化
3.磁盘引导阶段
4.grub2文件引导程序
5.内核加载
6.系统初始化镜像
7.系统启动级别
8.超级用户密码
以下内容是针对各过程会出现的问题及提出的解决方案
1.通电
如果没有通电,根本就无法开机,所以需要去检查电源,没电买电就行了,这和系统本身没有关系
2.bios初始化
对硬件进行检测,初始化硬件时钟(内存、硬盘等硬件设备没插好,会发出蜂鸣声报警)
bios是一个写入到硬件(主板)上的一个软件程序,在开机时,计算机系统主动执行的第一个程序,bios会依据使用者的设定去取得能开机的硬盘,并且到该硬盘里面去读取第一个扇区的mbr位置
3.磁盘引导阶段
主引导记录(mbr):所在位置0磁道1扇区,硬盘容量446byte放置最基本的开机管理程序,开机管理程序目的是加载核心文件
mbr作用:记录grub2引导文件的位置,读取这个文件以后,这个文件里面记录了/boot分区的位置并且指定在启动时要读取的文件
当mbr数据丢失,系统会因为找不到启动分区而停止启动
如何知道mbr在系统哪块磁盘里面?
执行 fdisk -l 命令 ,* 在哪一个分区上,这个分区所在的设备上面就有mbr
问题模拟:
系统磁盘/dev/nvme0n1
dd if=/dev/zero of=/dev/nvme0n1 bs=446 count=1 清空系统dev/nvme0n1上的mbr数据
恢复方式:
用光盘进入系统挽救模式 :
在系统安装界面选择Troubleshooting系统排错选项,进入Troubleshooting排错界面,选择系统挽救模式
进入挽救模式环境,如果想要还原根目录,需要将你的系统挂载到/mnt/sysimage目录下
显示四个选项:继续、只读挂载、跳到一个shell、退出重启,这里我们选择继续
执行chroot /mnt/sysimage命令,还原根目录内容,再执行grub2-install /dev/nvme0n1命令,恢复磁盘的文件引导程序,之后,执行两次exit命令退出,开启系统选择硬盘驱动系统就可以开启了
4.grub2文件引导
grub2引导文件分别在/boot/grub2/grub.cfg 、/boot/loader/entries/xxxxxxxxx.conf两个文件中
这两个文件里记录了系统启动过程中的一系列文件,开机时等待5秒,标题设定,
第一个做的事:设定你启动的根等于系统第一块硬盘的第一个分区(/boot分区),指定这个分区的目的是下一步要读取这个分区里的资源:内核镜像、系统初始化镜像,读取了这些文件以后,才能完成系统初始化过程
rhel8中:
grub2.cfg文件只指定了根等于系统第一块硬盘的第一个分区(/boot分区)
/boot/loader/entries/xxxxxxxxx.conf文件里有系统下一步启动要读取到的资源
模拟问题:
rm -fr /boot/loader/entries/*
修复:
kerne-install add 内核版本号 内核镜像
kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
手动引导
set root='hd0,msdos1'
linux /vmlinuz-3.10.0-957.el7.x86_64 ro root=/dev/nvme0n1p3
initrd /initramfs-4.18.0-80.el8.x86_64.img
boot
删除系统启动时需要的grub2引导文件
重启系统,出现如下界面,需要手动引导
指定启动的根等于系统第一块硬盘的第一个分区(set root=‘hd0,msdos1’),
内核镜像:加载内核版本到根分区,根目录的设备名称和你系统中的一致,
系统初始化镜像,
开启(boot)
开启后,这次手动引导并没有从根本上解决问题,当你下次开启系统仍需要手动引导
执行kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
命令将需要加载的文件永久记忆在系统中
$(uname -r) 表示内核版本号
如果损毁了这两个文件后,没有重启,在命令行输入这条命令就可以恢复kernel-install add $(uname -r) /lib/modules/$(uname -r)/vmlinuz
如果重启了,也可以用光盘驱动进入挽救模式环境下直接执行这条命令对grub2文件进行恢复
若是grub.cfg文件损毁,在开启后需要执行grub2-mkconifg > /boot/grub2/grub.cfg
命令在系统中永久恢复
5.内核加载
内核加载所需要读取的文件:
/boot/vmlinuz-$(uname -r)
加载内核作用:
系统初始化硬件设备
只读挂载/设备,为下一步系统初始化做准备,因为/设备挂载后才可以读取里面的数据,才能去加载系统里面的服务,去对我们的服务进行初始化
问题出现:
rm -fr /boot/vmlinuz-$(uname -r) ## 系统会因找不到这个文件而引导不起来
恢复: 重装内核
用光盘驱动进入到挽救模式
chroot /mnt/sysimage ## 得到一个真实的/挂载
mount /dev/cdrom /mnt ##内核镜像载光盘,将光盘挂载到/mnt下,
cd /mnt/BaseOS/Packages ##进入到/mnt/就会有数据
rpm -ivh kernel-core-xxxxx.rpm --force ##安装内核镜像软件包
rhel8: mv /boot/vmlinuz-kernel-xxxxx /boot/vmlinuz-xxxxx ##企业8里可直接移动内核镜像到/boot分区
执行两次exit后,重启客户机就可以了
6.系统初始化镜像
文件路径/boot/initramfs-4.18.0-80.el8.x86_64.img
作用:
加载系统时钟
加载selinux
加载系统主机信息
加载/etc/fstab文件中磁盘挂载策略
加载磁盘配额
初始化系统程序开启开机启动服务
开启虚拟控制台
开启图形
问题出现: rm -fr /boot/initramfs-4.18.0-80.el8.x86_64.img
恢复:
进入挽救模式下,执行chroot /mnt/sysimage命令,得到一个真实的/挂载
再执行 mkinitrd /boot/initramfs-$(uname -r).img $(uname -r) 命令,恢复系统初始化镜像文件
退出后,使用硬盘驱动重新启动系统就可以了
7.系统启动级别
级别 说明
0 关机
1 单用户
2 无图形网络模式
3 无图形网络模式
4 无图形网络模式
5 有图形网络模式
6 重启
问题出现:
systemctl set-default reboot.target ##系统在开机时无限重启
恢复:
在开机选择界面按进入到引导文件编辑模式
在内核加载选项最后加入启动级别5
ctrl+x启动
systemctl set-default graphical.target ## 系统在开机时开启图形
8.超级用户密码忘记
问题:超级用户密码忘记,无法登录
恢复:
1.在开机选择界面按进入到引导文件编辑模式
2.在内核加载选项最后删除到ro选项
3.更改ro---->rw (只读改为读写,如果你只读挂载 "/ ",你就更改不了)
4.加入rd.break参数(使系统初始化终止)终止系统启动,进入单用户模式
5.ctrl+x启动,之后就进入到单用户模式了
6.执行chroot /sysroot命令,切换到我们真实的shell,进入到超级用户模式(whoami)
7.更改超级用户密码:echo coffee| passwd --stdin root
如果selinux是开启状态,它不识别你的更改,这时需要建立一个文件/.autorelabel,重启selinux;如果selinux是关闭状态,就不用建立此文件
8.touch /.autorelabel ##当/.autorelabel文件存在selinux会重新初始化
内容总结
以上是互联网集市为您收集整理的Linux系统引导过程及引导修复全部内容,希望文章能够帮你解决Linux系统引导过程及引导修复所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。