- 破解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