本文通过一系列的实验进行linux系统的修复
实验1:将/boot下清空,并且将/etc/fstab文件进行删除;然后重启进行恢复;
(1)删除文件
rm -rf /boot/*
rm -rf /etc/fstab
(2)重启 发生错误Error 15
(3)进入救援模式,先恢复fstab文件
先blkid和fdisk -l /dev/sda查看一下分区情况
然后创建目录进行挂载磁盘,并查看磁盘的内容判断是哪个挂载点如/ /app /boot swap
mkdir /mnt/cd
mount /dev/sda1 /mnt/cd
判断成功后将根挂载点挂载到/mnt/cd下,在临时挂载点下恢复文件/etc/fstab;然后重启再次进入救援模式挂载生效
(4)恢复/boot下的文件和目录
(5)重启生效
实验2:在用grub-install将/boot/grub/中的文件修复后再次进行保留grub.conf文件而删除其它文件的操作重启看是否可以正常启动
(1)mv /boot/grub/* /app/backup 移动文件到目录中
(2)mv /app/backup/grub.conf /boot/grub/ 保留 grub.conf文件
(3)reboot 重启
(4)结果出现Error 15的错误
(5)可以用grub-install进行修复,也可以将移动的文件用mv命令移动回来(先进入光盘救援模式)
(6)分析:是因为原来的stage2的数据是存在磁盘的某个位置,不一定是在/boot/grub下面;而修复后就将它放到了/boot/grub/目录下面;那么当再次将文件移走后缺少了stage2就不能正常进入菜单了
(7)同时,修复后缺少了一些文件,比如软链接、菜单背景图片splash.xpm.gz
实验3:设置启动菜单的背景图片
(1)先找一张图片,然后对它进行编辑设置为640x480大小的像素
(2)将图片进行保存,然后在linux用rz命令传图片进入
(3)先确保安装了转换工具(用rpm -q ImageMagick查询);
如果没有安装,就用yum install ImageMagick进行安装
前提是配好本地光盘repo作为yum源
(4)进行转换
convert -resize 640x480 -colors 14 1.jpg splash.xpm; 转换
(5)压缩
gzip splash.xpm
(6)移动到指定位置
mv splash.xpm.gz /boot/grub/
(7)重启
reboot
(8)结果是在按任意键进入菜单项后出现了改变后的正常的图片
实验4:/boot/grub/grub.conf文件中的rhgb quiet 前者是代表显示图形启动过程,后者是内核启动的详细过程不显示
(1)删除rhgb quiet字符串
(2)重启
(3)观察是否又图形转圈过程和内核启动的详细过程
(4)结果显示图形启动过程不显示,内核启动的详细过程被显示出来
实验5:/boot/grub/grub.conf文件中UUID后面的为内核参数设置,可以设置centos6上的loop设备为100
(1)先查看loop个数
ls /dev/loop*
(2)设置内核参数
在内核参数那一行加上max_loop=100即可
同时,另外/proc/cmdline也发生改变,故不需要写/boot/grub/grub.conf的内核参数也可以启动
(3)重启 reboot
(4)重启后可以看到loop的数量增加;
ls /dev/loop*
实验6:将/boot下的grub删除,然后进行修复
(1)删除文件
cd /boot/grub
rm -f *
(2)重启
reboot
(3)出现Error 15的错误提示
(4)进行修复
进入救援模式
切根 chroot /mnt/sysimage
生成grub目录的文件 grub-install /dev/sda
自己写一个grub.conf文件,内容如下:
default=0
timeout=5
title centos6
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9f2bdf51-2c78-4332-8ef6-7a760b647313
initrd /initramfs-2.6.32-696.el6.x86_64.img
(5)保存退出,然后重启;结果可以正常启动
实验7:将/boot清空,然后进行修复
(1)删除/boot下的文件
rm -rf /boot/*
(2)重启 reboot
(3)出现Error 15的错误
(4)先对/boot下的除了grub外的其他文件进行修复
chroot /mnt/sysimage/ 切根
rpm -ivh /mnt/centos6-1/Packages/kernel-2.6.32-696.el6.x86_64.rpm --force 安装
(5)对grub目录进行修复
生成grub目录的文件 grub-install /dev/sda
自己写一个grub.conf文件,内容如下:
default=0
timeout=5
title centos6
kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=9f2bdf51-2c78-4332-8ef6-7a760b647313
initrd /initramfs-2.6.32-696.el6.x86_64.img
(6)重启
exit;exit;reboot
(7)重启成功
实验8:将/sbin/init这个首进程删除,如何恢复
(1)删除二进制文件
rm -f /sbin/init
(2)重启 发生错误,没有找到进程
(3)编辑内核参数,加init=/bin/bash 回车
(4)回车后启动进入bash,进行重挂载/ 指定为rw
mount -o remount rw /
(5)用rpm进行安装
(6)重启生效
实验9:逻辑卷将/etc/fstab删除后进行修复
(1)rm -rf /etc/fstab 删除
(2)reboot 重启
(3)进入救援模式
(4)先建立挂载目录,然后进行临时挂载查看磁盘内容,根据查看到的内容进行判断属于哪个挂载点
vgchange -ay 激活卷组
mkdir /mnt/cd
mount /dev/mapper/VolGroup-lv_root /mnt/cd
(5)判断好挂载点后将/挂载到临时挂载点,在里面的/etc下建立fstab文件,写入挂载内容
(6)重启生效
转载于:https://blog.51cto.com/angwoyufengtian/2056401