[白开水]-故障-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引导系统启动,命令有些变化,小伙伴们注意了哦!

时间: 11-20

[白开水]-故障-centos7启动类故障-知识点的相关文章

[白开水]-故障-启动类故障排错记录- Read-only file system

问题问题来源 由于磁盘fsck检查异常,导致系统挂载以只读模式挂载根分区. 如果fsck检查后以只读模式挂载/分区,很可能fsck已经无法修复分区了 问题描述 #开机启动会出现fsck对/分区fsck检测 Checking all file systems. [/sbin/fsck.ext4 (1) -- /] fsck.ext4 -a /dev/xvda3 /dev/xvda3 contains a file system with errors, check forced. /dev/xvd

CentOS7.3系统启动故障修复

CentOS7.3系统启动故障修复 破解CentOS7的root口令方法一 启动时任意键暂停启动菜单,选择启动内核菜单项 按 e 键进入编辑模式 将光标移动 linux16 开始的行,添加内核参数rd.break 按 ctrl-x 启动 mount –o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot 方法二 启动时任意键暂停启动 按 e 键进入编辑模式 将光标移动 linux16 开

AIX 5.3下Oracle 10g RAC 启动故障--CRS启动失败

AIX 5.3下Oracle 10g RAC 启动故障--CRS启动失败 系统环境: 操作系统: AIX 5300-09 集群软件: CRS 10.2.0.1 数据库:   Oracle 10.2.0.1                     系统架构图 故障现象: 系统重启后,在节点上CRS 启动失败或CRS服务启动成功,CRS Resource无法ONLINE. [[email protected] racg] cat /etc/hosts 127.0.0.1              

Linux启动和故障排错

Linux启动和故障排错 系统启动流程: 系统初始化:POST --> BootSequence (BIOS) --> Bootloader(MBR) -->kernel(ramdisk) -->rootfs(只读) -->init(systemd)init程序的类型:Upstart: init,CentOS 6配置文件:/etc/inittab, /etc/init/*.confSystemd:systemd, CentOS 7配置文件:/usr/lib/systemd/s

4.3、Libgdx启动类和配置

(原文:http://www.libgdx.cn/topic/45/4-3-libgdx%E5%90%AF%E5%8A%A8%E7%B1%BB%E4%B8%8E%E9%85%8D%E7%BD%AE) 对每个平台来说,必须有一个启动类.这个类对于各个平台来说是独立的.这里只介绍Android. **Android** Android应用不适用main()方法作为入口,而是需要一个Activity.打开Android项目,会找到如下代码: package cn.libgdx.game; import

startActivity(intent); 启动 类文件出现 返回两次才可以到上级界面纠结

Intent intent = new Intent(); intent.setClass(School.this, Setting.class); startActivity(intent); 在纠结这个问题的时候也在考虑 是不是 .setClass 函数是否 前面个参数是设置 起始对象 startActivity(intent); 启动 类文件出现 返回两次才可以到上级界面纠结

vmware+centos7+启动在登录界面鼠标键盘都不可用

vmware workstation12 + centos7启动后登录界面和单任务运行鼠标键盘都不可用 所有操作都是在root用户下进行的 因为安装别的软件,安装了kernel-headers和kernel-devel,在网上 直接下载安装的,所以比原先新,用uname -r命令查看kernel版本, 然后发现不一致,就卸载kernel-headers和kernel-devel, 在光盘中安装 和kernel版本对应的,kernel-headers卸载不掉,有其余更高版本的依 赖项,只能升级ke

Cucumber:启动类配置

Cucumber:启动类配置 package com.steps; import cucumber.api.CucumberOptions; import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; /** * @author rechin * * * @RunWith(Cucumber.class) 这是一个运行器 ,指用Cucumber来运行测试 * @CucumberOptions中的features,用于指定

【spring cloud】导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做/或者 每次导入一个新的spring boot项目,IDEA不识别子module,启动类无法启动/右下角没有蓝色图标

如题:导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做 或者说每次导入一个新的spring boot项目,IDEA不识别,启动类无法启动,怎么解决 下面一起来走一遍这个流程: 1.将一个spring boot服务导入spring cloud中作为一个子模块 如图:这里有一个现成的spring cloud微服务集群,[如何创建一个spring cloud微服务:https://www.cnblogs.com/sxdcgaq8080/p/9035724.h