一、其实不光boot目录被删除,也有系统启动不起来等,一直因为/boot这个目录的的问题,今天就来解决一下
Centos 6
1.进入救援,先修复vmlinz(内核)
chroot /mnt/sysimage # 切换到真正的根
mount /dev/sr0 /mnt/ # 先挂在光盘,必须要和当前系统的版本一样,否则内核版本不一样,无法启动
cp /mnt//images/pxeboot/vmlinuz /boot/ # 将光盘文件中的内核文件复制到/boot分区
如果不切根,则可以rpm -ivh /media/cdrom/Packages/kernel-2.6.32-696.el6.x86_64.rpm --root=/mnt/sysimage/boot --force做这一步和下一步
2.修复initrawfs(这个文件用于加载根分区的文件系统)
mkinitrd /boot/initramfs.img `uname -r` # 修复这个的时候,要指定文件的位置和名字,后边的`uname -r`是内核的参数
3.构建/boot/grub目录,这步可以不做,但是必须要创阿金/boot/grub这个目录
grub-install /dev/sda # 后边的/dev/sda是装系统的硬盘
4.创建、boot/grub/grub.conf文件,前边做的都是为了这一步
cat >> /boot/grub/grub.conf <<EOF # 重定向文件中添加
default=0 # 默认启动的菜单序号
timeout=5 # 等待用户时间
title Linux # 名字
kernel /vmlinuz root=/dev/mapper/vg_centos6-lv_root rhgb quiet selinux=0 # root后边的是系统根的分区,请根据自己的进行选择;rhgb:启动图形化;quiet:不显示内核启动过程;selinux=0:关闭selinux。
initrd /initramfs.img # 设置initrd的路径
EOF
二、ubuntu修复
2.1:修复boot目录
步骤一、以试用方式进入ubuntu光盘系统,打开终端(快捷键ctrl+alt+t);
步骤二、获取root权限:
sudo -i
步骤三 、列出所有的磁盘分区:
lsblk
步骤四 、挂载根目录的分区,其中X代表你的ubuntu系统的分区号;
mount /dev/sdaX /mnt
步骤五(可选)、如果boot分区独立于根分区,则要挂载boot分区,其中Y代表boot分区号;
mount /dev/sdaY /mnt/boot
步骤六 、挂载其他分区或设备;
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
步骤七、
chroot /mnt
步骤八 、重建grub,可以看到grub已经可以搜索出linux启动项和其他启动项;
update-grub
步骤九、安装grub到mbr,关闭ubuntu光盘系统并重启;
grub-install /dev/sda
步骤十(可选)、如果重启之后看不到windows之类或者其他的分区,在进入ubuntu系统之后再执行一次。
sudo update-grub