RHEL6 系统启动故障排错
来源:互联网 发布:日本留学一年费用知乎 编辑:程序博客网 时间:2024/04/30 22:37
系统故障了,机器无法正常工作,更别提正常提供服务,这个时候如果我们掌握了系统排错,那就大有用武之地了。我们在学习和实验阶段,可以通过系统排错帮助大家更深入了解系统启动过程。
对系统进行如下破坏:
1.破坏grub引导
dd if=/dev/zero of=/dev/sda bs=1 count=446
2.破坏/boot启动目录
rm -rf /boot/*
3.破坏/etc/fstab文件
rm -rf /etc/fstab
4.破坏/etc/inittab、/etc/rc.d/rc.sysinit、/bin/mount文件(任何文件丢失,及文件版本或内容不匹配,均属此列)
rm -rf /etc/inittab /etc/rc.d/rc.sysinit
cp /bin/ping /bin/mount
排错修复:
用光盘或者网络引导进入rescue模式,过程中因为fstab表被删除,会提示找不到linux分区,无法自动识别linux分区,确定后进shell
使用fdisk -l查看分区,应该可以识别出boot分区和交换分区,也可以看到是否使用到逻辑卷。
如果没有使用逻辑卷,则原根分区是分区形式,使用blkid或e2label查看标签来推断根分区,如果没有标签或无法从标签判断,则需要将分区逐一挂载(挂载点自建),查看分区内容可判断到根分区。
如果有使用逻辑卷,对分区使用上述方法查看仍没找着根分区,则估计是使用逻辑卷作为根分区,此时,需要激活逻辑卷卷组(lvm vgchange -ay),再将逻辑卷逐一挂载,查看其内容,可判断到根分区。
找到根分区后,需要处理/etc/fstab,自行编写fstab,注意写正确里面的条目,fstab表里的分区不是采用分区名挂载了,改成使用uuid。
编辑完成fstab之后,敲入exit,选择reboot重启机器。
伪根时候的shell提示符为bash-4.1#,真根时候的shell提示符为sh-4.1#
再次进入rescue模式,这时候已经可以正确找到linux分区,并自动将根分区挂载在伪根的/mnt/sysimage,使用chroot /mnt/sysimage切换到真根,如果不知道系统丢失哪些文件,可以使用rpm -Va检查,对显示出的结果需要判断哪些是跟启动相关的。
安装丢失文件对应的包之前,需先挂载光驱,/dev/sr0
rpm -qf /etc/rc.d 可查询到包名
从光盘上安装缺失或损坏的文件对应的包
rpm -ivh /mnt/Packages/initscripts-9.03.17-1.el6.x86_64.rpm --force
boot文件夹中的内容来自于内核包
rpm -V kernel和rpm -V grub
grub-install 安装grub引导
编写/boot/grub/grub.conf
exit两次reboot
- RHEL6 系统启动故障排错
- rhel6系统启动过程故障排错处理
- dc 故障排错
- dns故障排错
- 让RHEL6显示系统启动信息
- 系统启动故障及解决办法
- AIX系统启动引导故障
- 系统启动蓝屏故障原因
- Linux 系统启动故障修复
- Exchange故障排错图解教程
- IT-linux-linux故障排错
- 系统启动时常见故障分析
- 常见的系统启动故障解决方法
- linux初学者-系统启动故障篇
- RHEL6启动原理和故障排除
- rhel6启动原理和故障排除
- 缺失grub引导时的故障排错
- linux杂谈(五):网络配置和故障排错
- WINCE下对文件夹的操作
- Java学习第三天笔记-补充
- cmomand.c
- 关于错排问题 hdu2048
- Java学习第四天笔记-第一部分
- RHEL6 系统启动故障排错
- android之MediaPlayer区别(android2.3与android4.0)
- C++ - 对象模型之 内存布局
- android系统属性
- VS2010编译错误 #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403的解决方法
- qt210移植的rtc
- windows系统常用运行命令集锦
- 视图可加标识列吗啊?
- C语言 side effect 和 sequence point