Chinaunix首页 | 论坛 | 博客
  • 博客访问: 516736
  • 博文数量: 240
  • 博客积分: 791
  • 博客等级: 军士长
  • 技术积分: 1694
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-23 18:21
文章分类

全部博文(240)

文章存档

2013年(21)

2012年(219)

我的朋友

分类:

2012-08-17 09:49:49

原文地址:boot分区格式化恢复 作者:eloops

1. 当我们格式话boot分区的时候,uuid 会变化./etc/fstab里面也需要修改
[root@yangcan yum.repos.d]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Tue Jul 31 09:29:20 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=f09bad00-c211-4698-8ccf-f25df9d4181c /                       ext4    defaults        1 1
UUID=2e3b29f6-a024-4393-b9dd-9a2b18be27ec /boot                   ext4    defaults        1 2
UUID=9715f641-c445-4f02-ad0c-43687ab331be swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/sr0                /media/yum              iso9660 defaults,loop,ro 0 0

步骤说明:
1. 格式化boot分区mke2fs /dev/sda1
2. 进入救援模式 ,在启动分区条目下,加入rescue,进入救援的设置情况 在ftp的模式下,填入你系统对应版本的文件目录进入救援模式.或者用关盘启动进入救援模式.
3. 用mount  和 fdisk -l查看一下磁盘的分区情况,通道上面得知boot的分区为/dev/sda1
    #findfs LABEL=/
    查找/文件系统

4. 把/dev/sda1挂载到真实的系统下.
#mount /dev/sda1 /mnt/sysimage/boot
#chroot /mnt/sysimage  把真实的系统结构挂载到对应的伪模式下
ps:如何判断你在真实系统下还是伪系统下.可以ls下/sbin  /bin ,看下是否就几个条目,就可以知道你在真实系统模式还是伪模式,退出就用exit命令.

5. 因为boot里面的文件全部没没有了,我们就需要知道提供那些文件的是哪个包,我们重新安装那个包,有下面的2种方法:
[root@yangcan boot]# rpm -qf /boot/vmlinuz*
kernel-2.6.32-220.el6.i686
[root@yangcan boot]# yum provides /boot/vmlinuz*
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
Updating certificate-based repositories.
Repository 'cdyum' is missing name in configuration, using id
kernel-2.6.32-220.el6.i686 : The Linux kernel
Repo        : cdyum
Matched from:
Filename    : /boot/vmlinuz-2.6.32-220.el6.i686

kernel-2.6.32-220.el6.i686 : The Linux kernel
Repo        : installed
Matched from:
Other       : Provides-match: /boot/vmlinuz-2.6.32-220.el6.i686

通过查询,得知是kernel内核提供,那我们通道lftp到172.24.254.254去把相对应的系统版本的内核文件下下来.也可以挂载你本地的光盘,找到kernel文件

6. 在强制安装kernel文件,完成之后/boot下就有了丢失的文件了
#rpm -ivh kernel-2.6.32-220.el6.i686  --force

7.
我们exit到伪系统,把真实系统下的grub-install复制到伪系统的/sbin目录
#cp /mnt/sysimage/sbin/grub*  /sbin

安装grub.先想看下帮助
[root@yangcan grub]# grub-install --help
Usage: grub-install [OPTION] install_device
Install GRUB on your drive.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --root-directory=DIR    install GRUB images under the directory DIR
                          instead of the root directory
  --grub-shell=FILE       use FILE as the grub shell
  --no-floppy             do not probe any floppy drive
  --force-lba             force GRUB to use LBA mode even for a buggy
                          BIOS
  --recheck               probe a device map even if it already exists
                          This flag is unreliable and its use is
                          strongly discouraged.

INSTALL_DEVICE can be a GRUB device name or a system device filename.

grub-install copies GRUB images into the DIR/boot directory specfied by
--root-directory, and uses the grub shell to install grub into the boot
sector.

# grub-install /dev/sda --root-directory=/mnt/sysimage --no-floppy --recheck

8.重建或者修复grub.conf文件
default=0
timeout=5
title Red Hat Enterprise Linux (2.6.32-220.el6.i686)
        root (hd0,0)
                kernel /vmlinuz-2.6.32-220.el6.i686 ro root=/dev/sda2 quiet
                initrd /initramfs-2.6.32-220.el6.i686.img
我们还需要修改/etc/fstab,把想对应的boot分区的uuid 改成/dev/sda1
最后reboot

阅读(2386) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~