如果丢失了/boot下的initramfs-2.6.32-754.el6.x86_64.img文件,如何修复?
这里有三种方法:
-
如果机器还在运行中,挂载光盘:mount /dev/sr0 /mnt/cdrom //挂载路径自选
强制重装内核包:rpm -ivh /mnt/cdrrom/Packages/kernel-3.10.0-957.el7.x86_64.rp --force
命令完成后打开/boot会发现丢失的文件出现了 -
用mkinitrd命令恢复文件
mkinitrd /boot/iniinitramfs-
`uname -r`.img
`uname -r`
执行完成即可恢复文件,uname -r是内核版本命令,要用反向单引号括起来,注意不是单引号 -
如果机器已经起不来了,进入光盘救援模式
这时候我们可以通过df命令发现根被挂载在/mnt/sysimage下,在这里也可以重装内核包修复:
rpm -ivh/mnt/sysimage/mnt/cdrrom/Packages/kernel-3.10.0-957.el7.x86_64.rp --force --root=/mnt/sysimage 注意最后要字母root路径
也可以执行 chroot /mnt/sysimage
然后可以执行上面两种方法都可以修复
如果丢失了/boot下内核文件vmlinuz-3.10.0-957.el7.x86_64,如何修复?
如果机器还在运行,可以挂载光盘,复制光盘里的内核文件重新生成
cp /mnt/cdrom/isolinux/vmlinuz /boot/vmlinuz-\`uname -r`
即使机器已经起不来了,在救援模式下执行上述命令,同样可修复
如果/boot下的文件和/etc/fstab文件被全部误删,机器已无法开启,怎么修复?
进入光盘救援模式,这时候会发现因为fstab文件也丢失,无法自动挂载逻辑卷组,我们先要激活逻辑卷:
vgchang -ay
mkdir /mnt/root
mount /dev/vg_linux/vg_root /mnt/root (路径根据blk查询)
填写fstab文件
vi /mnt/root/ect/fatab (可以用:r!blkid导入信息)
这时候我们保存重启再进入救援模式,系统就可以找到分区并自动挂载了。
chroot /mnt/sysimage //进入挂载根目录
cd /boot 执行 grub-install /dev/sda //会恢复boot里的文件和grub文件,但是要手写编辑grub.conf文件
cd grub ; vim grub.conf //创建编辑启动文件
default=0
timeout=5
title reallinux //标题项可以任意写
kernel /vmlinuz-3.10.0-957.el7.x86_64 root=/dev/sda2 //根所在的分区
initrd /initramfs-2.6.32-754.el6.x86_64.img
//:r!ls /boot+tab/init+tab键导入文件名
如下图:
root分区的路径可以用blkid命令查询:
在图中我们发现此系统root根使用lvm自动分区的
root=/dev/vg_realcentos6/lv_root
如果centos7系统/boot下的的文件丢失或被破坏,修复和之前的版本又不一样
进入光盘救援模式
chroot /mnt/sysimage
挂载光盘
重装内核包:rpm -ivh /mnt/cdrrom/Packages/kernel-3.10.0-957.el7.x86_64.rp --force
修复grub: grub2-install /dev/sda
修复配置文件:grub2-mkconfig -o /boot/grub2/grub.cfg
最后教大家怎么破解centos7系统root密码(7之前系统更简单了,开机进入单用户就可)
- 启动时任意键暂停启动
- 按e键进入编辑模式
- 将光标移动linux16开始的行,添加内核参数rd.break
- 按ctrl-x启动
- mount –o remount,rw /sysroot
- chroot /sysroot进入光盘救援模式
- passwd root //输入新密码
- exit
- reboot
但是root密码很危险,一定要注意密码安全
可以在/boot/grub/grub.conf文件里添加 password 密码 ,防止进入单用户模式下破解root密码
可以用grub-crypt 生成密钥加密