-
破解root 口令,并为grub 设置保护功能
开机enter 按a->1或s或S或single进入单用户模式,修改密码
-
破坏本机grub stage1 ,而后在救援模式下修复之
==注意grub.conf文件会丢失,要提前备份==
dd if=/dev/sda of=/root/mbr bs=1 count=466
进入单用户模式
chroot /mnt/sysimage
grub-install /dev/sda 从“/dev/sda”中找到GRUB程序并进行修复
-
删除vmlinuz 和initramfs 文件后无法启动, 两种方法恢复之
chroot /mnt/sysimage
df
cd /boot
ls
mkinitrd ./initramfs-`uname -r`.img `uname -r`
mkinitrd ./initrd-`uname -r`.img `uname -r`
若修复失败可重装内核
uname -r
从光盘安装内核(注意要先切换根)
lsblk 可以看到光盘设备是sr0
挂载光盘
mkdir /mnt/cdrom
mount /dev/sr0 /mnt/cdrom
df
rpm -ivh kernel-2.6.e64.......rpm --force
启动后出现grub,则需要修复grub
chroot /mnt/sysimage
grub-install /dev/sda
exit
exit
reboot
光盘里面/images/preboot/vmlinuz和/isolinux/vmlinuz即为内核文件,可以直接cp过来
cp -av /mnt/cdeom/isolinux/vmlinuz /mnt/sysimage/boot/vmlinuz-`uname -r`
-
/etc/inittab 设置默认6 恢复之
开机回车,a->1|s|signal进入单用户模式
或者
开机回车,a->3
然后将/etc/inittab改回来
-
某个服务无法启动,系统无法启动,解决之
cd /etc/init.d/
vim testsrv
输入以下内容
#!/bin/bash
case $1 in
start)
echo 'the service is started'
touch /root/testsrv
;;
stop)
echo 'the service is stopped'
rm -f /boot/testsrv
;;
status)
[ -f /boot/testsrv ] && echo 'service testsrv is running...'||echo 'service testrv is stopped'
;;
*)
echo 'Usage start|stop|status'
注意
chmod +x testsrv
chkconfig --add testsrv
chkconfig testsrv --level 1 on
修改启动时间
reboot
#!/bin/bash
case $1 in
start)
echo 'the service is started'
sleep 100000
touch /root/testsrv
;;
由于启动序号设置太小,网络服务还没起来,无法连接xshell,而单用户模式也设置了开机启动,所以需要按照如下方法修复
开机按回车进入内核选则项
按a 在quite后添加 init=/bin/bash(默认为/sbin/init)
此时开机进入bash以后根目录是以只读方式挂载的,需要重新挂载
mount -o remount,rw /
chkconfig --level 12345 testsrv off
exit
reboot
-
破坏stage1.5
==grub命令依赖于grub目录里面的文件==
grub
grub> root (hd
grub> setup (hd
(hd
hd
(hd0,0)
dd if=/dev/sda of=/root/mbr count=446 bs=1 conv=notrunc
cp -av /boot/grub/grub.conf /root/
dd if=/dev/zero of=/dev/sda bs=1 count=446 conv=notrunc
启动时会出现operating System not found的提示,说明没有mbr来引导操作系统
reboot
chroot /mnt/sysimage
df 查看boot和/是否挂载
grub
root (hd0,0)
setup (hd0)
1.5阶段前512字节记录的是后面27个扇区具体要读取的内容,如果将后面的内容破坏掉,系统仍无法正常启动
dd if=/dev/sda of=/root/mbr2 bs=1 count=2048 skip=512
dd if=/dev/zero of=/dev/sda bs=1 count=2048 seek=512 conv=notrun
c
reboot
此时开机界面不会出现倒计时
进入救援模式
用grub或grub-install修复
chroot /mnt/sysimage
grub-install /dev/sda
sync
exit
exit
reboot
-
破坏stage2
rm -rf /boot/grub
reboot
df 确保/boot已挂载
chroot /mnt/sysimage
df
grub-install /dev/sda
sync
exit
exit
reboot
此时由于没有/boot/grub/grub.conf文件,开机会进入grub命令行
输入ker(tab补全) /v(tab)补全 root=/dev/vg0/root selinux=0 回车
ini(tab补全) /initra(tab补全) 回车
boot
(也可以在救援模式下手写grub文件)
8.为grub加口令
grub-md5-crypt
[root@lee: /root]
Password:
Retype password:
$6$IwfTNtZWfvNHA2ec$RWiVdrt78Tbbw2fsvAA/icQWCfIgy3KGkoFJHRntceUBwK.Vnn9Mhmz1JfRt/yWdtEbbMaWeWFSTiYUuxTiPn.
添加至配置文件
default=0
timeout=5
password --encrypted $6$IwfTNtZWfvNHA2ec$RWiVdrt78Tbbw2fsvAA/icQWCfIgy3KGkoFJHRntceUBwK.Vnn9Mhmz1JfRt/yWdtEbbMaWeWFSTiYUuxTiPn.
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/vg_lee-lv_root rd_LVM_ LV=vg_lee/lv_root rd_NO_LUKS rd_LVM_LV=vg_lee/lv_swap rd_NO_MD crashkernel=128M LANG =zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-642.el6.x86_64.img
password $1$fYmOJ/$0n6c5b/WPxt0nDOJPsrJq0
-
删除/boot/ 所有内容,然后恢复
1)/boot/vmlinuz
cp /mnt/cdrom/isolinux/vmlinuz /boot/vmlinuz-`uname -r`
2)/boot/initramfs.img
mkinitrd /boot/initramfs-`uname -r`.img `uname -r`
rpm -ivh /mnt/cdrom/Packages/kernel.XXX.rpm
3)grub/*
grub-install /dev/sda
4)grub/grub.conf
default=0
timeout=3
title 23M
kernel /vmlinuz-XXXX root=/dev/sda2
initrd /initramfs-XXXX.img
-
在普通分区,删除/boot/ 所有内容及/etc/fstab,恢复
1)救援模式,先/etc/fastab恢复
df
blkid
mount /dev/sda1 /mnt/sda1
mount /dev/sda2 /mnt/sda2
mount /dev/sda3 /mnt/sda3
vim /etc/fstab
2)reboot,重新进入救援模式
df 确保挂载成功
3)修复grub
grub-install /dev/sda
4)修复kernel initramfs.img
mount /dev/sr0 /mnt/
rpm -ivh /mnt/Packages/kernel-XXX.rpm --force
5)vim /boot/grub/grub.conf
-
使用逻辑卷,删除/boot/ 所有内容及/etc/fstab,恢复
1)救援模式,先/etc/fastab恢复
lsblk(失效)
df
blkid
fdisk -l
sda1带*为boot分区
mkdir /mnt/{sda1,sda2}
mount /dev/sda1 /mnt/sda1
mount /dev/mapper/vg_lee-lv_root /mnt/sda2
lvdisplay (可以看到NOT available)
vgchange -ay 激活卷组
lvdisplay
vim /mnt/sda2/fstab(r!blkid)
2)reboot,重新进入救援模式
df 确保挂载成功
3)修复grub
grub-install /dev/sda
4)修复kernel initramfs.img
mount /dev/sr0 /mnt/
rpm -ivh /mnt/Packages/kernel-XXX.rpm --force
5)vim /boot/grub/grub.conf
default=0 timeout=5
title=CentOs6.8
kernel /vmlinuz-2.6.32-642.el6.x86_6 root=/dev/mapper/vg_lee-lv_root selinux=0
initrd /initramfs-2.6.32-642.el6.x86_64.img
(责任编辑:IT) |