首页 > 代码库 > [白开水]-故障-centos7启动类故障-知识点
[白开水]-故障-centos7启动类故障-知识点
MBR扇区故障
先来一张硬盘存储逻辑简图
mbr在第一块磁盘的第一个磁道的第一个扇区哦
摘自:http://www.cnblogs.com/wuguanglei/p/4244639.html
备份mbr数据
注意!mbr数据需要备份在其他硬盘,多处备份!
查看分区情况,我们呢有2个硬盘
# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 19G 5.5G 13G 32% / devtmpfs 485M 0 485M 0% /dev tmpfs 490M 12K 490M 1% /dev/shm tmpfs 490M 6.8M 484M 2% /run tmpfs 490M 0 490M 0% /sys/fs/cgroup /dev/sda1 93M 65M 22M 75% /boot tmpfs 98M 0 98M 0% /run/user/0 /dev/sdb1 991M 2.6M 922M 1% /data
现在将mbr信息写入第二个硬盘中,/data目录是挂载在第二块硬盘上的
# dd if=/dev/sda of=/data/mbr.bin bs=512 count=1
模拟mbr损坏
# dd if=/dev/zero of=/dev/sda bs=512 count=1
重启系统后,linux系统已经无法启动
修复mbr损坏
1. 需要linux系统光盘或者u盘启动
选择troubleshooting模式,救援模式
磁盘将会被挂载至/mnt/sysimage/下
continue 以rw方式挂载分区。
read only 以ro方式挂载分区。
skip 跳过,将来自己手工挂载磁盘。
继续即可,事实上是挂载不到原系统分区的,因为分区表不在了。
2. 挂载保存mbr数据的第二块硬盘
#fdisk -l
#mkdir /data #mount /dev/sdb1 /data
3. 使用备份的mbr数据修复系统磁盘分区
#dd if=/data/mbr.bin of=/dev/sda bs=512 conut=1
对比centos6总结
对比centos 6,centos7 与centos6在mbr损坏的修复过程一致
扩展
主引导程序损坏
如果mbr的分区信息没有损坏,而主引导程序损坏,则进入救援模式后
会挂载原有系统到/mnt/sysimage下
# chroot/mnt/sysimage # grub2-install /dev/sda 或者 #grub2-install root-directory=/mnt/sysimage /dev/sda
glibc升级导致系统无法启动
同样进入救援模式,替换到未升级之前的库文件,重启即可。
/etc/fstab文件丢失
"/etc/fstab"配置文件决定了Linux系统在启动后如何加载各分区,例如根分区"/"、"/boot"分区等,若这些分区无法挂载,系统将会以ro挂载根分区。丢失"/etc/fstab"文件后,启动后将无法对文件系统进行写操作。
同样进入救援模式,恢复/etc/fstab文件
遗忘root用户的密码
通过单用户模式重设root账号的密码
single
GRUB引导故障
模拟GRUB故障
GRUB是大多数Linux系统默认使用的引导程序,可以通过启动菜单的方式选择进入不同的操作系统(如果有的话)。当"/boot/grub2/grub.cfg ‘配置文件丢失,或者关键配置出现错误,或者MBR记录中的引导程序遭到破坏时,Linux主机启动后可能会出现"grub>"的提示符,无法完成进一步的系统启动过程。
# mv /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
修复GRUB故障
使用grub引导修复
1. 指定文件系统,可以是xfs或者ext2,这个要根据安装系统时选择的文件系统,centos7默认是xfs
grub>insmod xfs or grub> insmod ext2
2. set root:指定包含内核等引导文件的/boot分区所在的位置
grub> set root=‘hd0,msdos1‘
#hd0 表示第一块硬盘 msdos1 表示第一个分区
3. linux16:指定内核文件所在的位置,内核加载时权限为只读"ro",并通过"root="指定根分区设备文件的位置。
这里如果不知道内核文件名称,就要相同centos系统版本里/boot/grub2/grub.cfg去看。
grub>linux16 /vmlinuz-3.10.0-123.el7.x86_64 ro root=/dev/sda1rhgbquiet
#这里的root是指根分区所在目录
注:
ro #read only rhgb # redhat graphical boot quiet #disable all log messages
4. 指定启动内核所使用的临时系统镜像文件所在的位置
grub>initrd16 /initramfs-3.10.0-123.el7.x86_64.img
修复完成后即可进入系统,重建配置文件。
使用光盘救援模式修复
chroot /mnt/sysimage grub2-install /dev/sda
对比centos6总结
centos6的grup引导命令 grub>root (hd0,0) grub>kernel/vmlinux-2.6.18-8.e15 ro root=/dev/VolGroup00/LogVo100 rhgb quiet grub>inited /initrd-2.6.18-8.e15.img grub>boot
>:title:指定在启动菜单中显示的操作系统名称。
>:root:指定包含内核等引导文件的/boot分区所在的位置。
>:kernel:指定内核文件所在的位置,内核加载时权限为只读"ro",并通过"root="指定根分区设备文件的位置。
>:initrd:指定启动内核所使用的临时系统镜像文件所在的位置。
centos7和centos6在grup引导系统启动,命令有些变化,小伙伴们注意了哦!
[白开水]-故障-centos7启动类故障-知识点