操作过程如下:
[root@localhost ~]# ls /boot/
(注:可以看到此时的boot是个空目录)
[root@localhost ~]# ls /mnt/
[root@localhost ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
(注:加载光盘到/mnt下)
[root@localhost ~]# ls /mnt
CentOS_BuildTag Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6
isolinux RPM-GPG-KEY-CentOS-Debug-6
[root@localhost ~]# cd /mnt/Packages/
(注:进入到存放数据包的Packages目录)
[root@localhost Packages]# rpm -ivh --force kernel-2.6.32-220.el6.i686.rpm
Preparing... ########################################### [100%]
1:kernel ########################################### [100%]
[root@localhost Packages]# ls /boot/
config-2.6.32-220.el6.i686 System.map-2.6.32-220.el6.i686
initramfs-2.6.32-220.el6.i686.img vmlinuz-2.6.32-220.el6.i686
symvers-2.6.32-220.el6.i686.gz
(注:重新安装内核,使用--force选项,强制安装,可以看到此时/boot目录下有了内核文件等文件)
[root@localhost Packages]# grub-install --root-directory=/ /dev/sda
[root@localhost Packages]# ls /boot
config-2.6.32-220.el6.i686 symvers-2.6.32-220.el6.i686.gz
grub System.map-2.6.32-220.el6.i686
initramfs-2.6.32-220.el6.i686.img vmlinuz-2.6.32-220.el6.i686
[root@localhost Packages]# ls /boot/grub/
device.map ffs_stage1_5 minix_stage1_5 stage2 xfs_stage1_5
e2fs_stage1_5 iso9660_stage1_5 reiserfs_stage1_5 ufs2_stage1_5
fat_stage1_5 jfs_stage1_5 stage1 vstafs_stage1_5
(注:重装grub到/boot,
# grub-install --root-directory=/ /dev/sda
命令中--root-directory=/,指的是/boot的相对路径, --root-directory的值也可以为空,即
# grub-install --root-directory= /dev/sda
系统将会在/boot下生成一个grub文件夹,并在里面存放grub文件,如果写成--root-directory=/boot,系统将会在/boot下生成了一个boot文件夹,再在里生成一个grub文件夹,即grub文件存放在了/boot/boot/grub/目录下,这是不对的。
以上/boot/grub/中的数据,其实也可以从/usr/share/grub/i386-RedHat/里直接拷贝过来)
boot分区被清空的恢复方法(2)
内容版权声明:除非注明,否则皆为本站原创文章。