起死回生:专治Linux各种“起不来”
2015-11-30 22:44
821 查看
前言:想必大家刚玩Linux时,遇到这样那样的问题:某个目录误删了、或者挂载分区出错了、或者引导问题;那么今天小晚带你实战修复各种“起不来”!一、实验前准备工作:centos 6.5 内核:2.6.32-358.el6.x86_64二、实验步骤:1)[root@server ~]# cd /
[root@server /]# umount /boot (卸载/boot分区,包含了所有的grub程序相关文件)[root@server /]# rm -rf /boot/ (删除boot分区)
[root@server /]# rm -rf /etc/rc.d/rc.sysinit (删除系统运行级别的脚本文件)
[root@server /]# rm -rf /etc/rc.d/rc.local (删除开机自启动)
[root@server /]# rm -rf /etc/inittab (删除init进程的脚本)
rm: cannot remove `/etc/inittab': Operation not permitted (这里删除不了,因为小晚做了安全)[root@server /]# lsattr /etc/inittab
----i--------e- /etc/inittab
[root@server /]# chattr -i /etc/inittab
[root@server /]# lsattr /etc/inittab
-------------e- /etc/inittab[root@server /]# rm -rf /etc/inittab (成功删除)[root@server /]#mv /etc/fstab /etc/fstab.bak (做个备份,该文件包含了Linux分区信息)[root@server /]#sync[root@server /]#sync (重要的事情,执行2遍。将缓冲区内容写入硬盘)[root@server /]#reboot2)重启后得到此效果:
由于我们的系统被破坏了,所以启动一直停留在此。 三、实战修复Linux系统思路:恢复fstab文件找到分区----->修复引导文件里的内核文件--->修复grub--->还原init相关文件1)进入修复模式
ok ,接下来还原fstab
重启后:重新进入修复模式:此时再次进入到修复模式时, rescue 程序将会找到 fstab 文件,也就是会找到 linux 分区!并且把损坏的原 linux 系
统挂载到/mnt/sysimage 下。并且 rescue 程序会提示你,可以使用#chroot(change root 修改根目录)修改根目录,进入到原系统中。
开始 修复内核和 grub:
一般把处于 resuce 模式的系统称为伪系统,把#chroot /mnt/sysimage 后看到的称为真正的系统。
接下来要修复内核文件:
#exit ---退回到 resecu 模式下
#mkdir /mnt/source#mount /dev/cdrom /mnt/source ---挂载光驱 cdrom 到/mnt/ 目录
#rpm -ivh /mnt/source/Packages/kernel-2.6.32-358.e16.84.rpm --root=/mnt/sysimage/ --force
(需要修复的三个内核文件在系统盘 server 目录下 kernel-2.6.32.rpm 软件包里,所以要挂载光盘之后并安装
kernel 软件包)
此时,内核已修复完成! 再继续修复 grub 程序。。。
#chroot /mnt/sysimage 进入到已损坏的 linux 系统中
#grub-install /dev/sda 安装 grub 程序到/dev/sda
#ls /boot/grub 查看 grub 目录下是否存在 grub.conf 文件。如果没有就手动编辑一个。
#vim /boot/grub/grub.conf
grub.conf配置文件:
修复/etc/inittab 等文件
OK,成功修复。(大家有什么疑问,请在下面回复。)本文出自 “用心创造价值,晚点咖啡” 博客,请务必保留此出处http://wandiankafei.blog.51cto.com/10878910/1717458
[root@server /]# umount /boot (卸载/boot分区,包含了所有的grub程序相关文件)[root@server /]# rm -rf /boot/ (删除boot分区)
[root@server /]# rm -rf /etc/rc.d/rc.sysinit (删除系统运行级别的脚本文件)
[root@server /]# rm -rf /etc/rc.d/rc.local (删除开机自启动)
[root@server /]# rm -rf /etc/inittab (删除init进程的脚本)
rm: cannot remove `/etc/inittab': Operation not permitted (这里删除不了,因为小晚做了安全)[root@server /]# lsattr /etc/inittab
----i--------e- /etc/inittab
[root@server /]# chattr -i /etc/inittab
[root@server /]# lsattr /etc/inittab
-------------e- /etc/inittab[root@server /]# rm -rf /etc/inittab (成功删除)[root@server /]#mv /etc/fstab /etc/fstab.bak (做个备份,该文件包含了Linux分区信息)[root@server /]#sync[root@server /]#sync (重要的事情,执行2遍。将缓冲区内容写入硬盘)[root@server /]#reboot2)重启后得到此效果:
由于我们的系统被破坏了,所以启动一直停留在此。 三、实战修复Linux系统思路:恢复fstab文件找到分区----->修复引导文件里的内核文件--->修复grub--->还原init相关文件1)进入修复模式
ok ,接下来还原fstab
重启后:重新进入修复模式:此时再次进入到修复模式时, rescue 程序将会找到 fstab 文件,也就是会找到 linux 分区!并且把损坏的原 linux 系
统挂载到/mnt/sysimage 下。并且 rescue 程序会提示你,可以使用#chroot(change root 修改根目录)修改根目录,进入到原系统中。
开始 修复内核和 grub:
一般把处于 resuce 模式的系统称为伪系统,把#chroot /mnt/sysimage 后看到的称为真正的系统。
接下来要修复内核文件:
#exit ---退回到 resecu 模式下
#mkdir /mnt/source#mount /dev/cdrom /mnt/source ---挂载光驱 cdrom 到/mnt/ 目录
#rpm -ivh /mnt/source/Packages/kernel-2.6.32-358.e16.84.rpm --root=/mnt/sysimage/ --force
(需要修复的三个内核文件在系统盘 server 目录下 kernel-2.6.32.rpm 软件包里,所以要挂载光盘之后并安装
kernel 软件包)
此时,内核已修复完成! 再继续修复 grub 程序。。。
#chroot /mnt/sysimage 进入到已损坏的 linux 系统中
#grub-install /dev/sda 安装 grub 程序到/dev/sda
#ls /boot/grub 查看 grub 目录下是否存在 grub.conf 文件。如果没有就手动编辑一个。
#vim /boot/grub/grub.conf
grub.conf配置文件:
修复/etc/inittab 等文件
OK,成功修复。(大家有什么疑问,请在下面回复。)本文出自 “用心创造价值,晚点咖啡” 博客,请务必保留此出处http://wandiankafei.blog.51cto.com/10878910/1717458
相关文章推荐
- Linux socket 初步
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区