计算机中是fedora和win的双系统,这样要重装win时就会有一个问题:fedora的grub引导没了,无法进入fedora,但是又实在不想重装fedora了,于是试了试用liveCD来修复grub引导,成功了,记录下。
一、制作livecd的启动优盘

我是用powerISO来制作,还可以用其他的很多软件,像软碟通之类的,不过感觉这个powerISO比较简单,无需其他操作。
二、重启,进入livecd系统中,选择体验系统,不安装。
  现在的系统是英文的,不过比较简单都可以看懂,也可以在system settings 中设置成中文。
三、确定fedora装在哪个分区?
当时安装的时候使用LVM分区,为的是以后方便调节,有一个/分区,/home,和一个swap分区,可以使用命令fdisk -l查看:

[root@localhost liveuser]# fdisk -l
Disk /dev/sda: 320.1 GB, 320072933376 bytes, 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xac12796e
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      718847      358400    7  HPFS/NTFS/exFAT
/dev/sda2          718848    83886079    41583616    7  HPFS/NTFS/exFAT
/dev/sda3        83886144   562226806   239170331+   f  W95 Ext'd (LBA)
/dev/sda4       562227200   625141759    31457280   8e  Linux LVM
/dev/sda5        83886207   251683020    83898407    7  HPFS/NTFS/exFAT
/dev/sda6       251690420   562226806   155268193+   7  HPFS/NTFS/exFAT

由以上输出可以看出:
LVM分区是在
/dev/sda4 ,这样就确定了。
将fedora的分区挂载到现在的livecd文件系统中,可以使用命令,其实最简单的方法就是,在资源管理器中打开原来fedora的分区就行。
LVM分区中的挂载分区:

[root@localhost liveuser]# mount -o rw /dev/sda4  /media/boot
mount: unknown filesystem type 'LVM2_member'

会出现这个问题,搜索之。。。
找到一个解决方法:

1.查看物理卷:pvs

2.查看卷组:vgs

3.查看逻辑卷:lvdisplay

4.查看LV Status 的状态,如果是unable需要激活:

vgchange -ay /dev/fedora/home


[root@localhost liveuser]# pvs
  PV         VG     Fmt  Attr PSize  PFree
  /dev/sda4  fedora lvm2 a--  30.00g    0
[root@localhost liveuser]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  fedora   1   3   0 wz--n- 30.00g    0
[root@localhost liveuser]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/fedora/home
  LV Name                home
  VG Name                fedora
  LV UUID                LbiApX-5h87-fPZs-qnru-onTU-cGrb-Z0OqWg
  LV Write Access        read/write
  LV Creation host, time localhost, 2013-05-12 08:30:20 -0400
  LV Status              available
  # open                 1
  LV Size                9.09 GiB
  Current LE             2327
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2
  --- Logical volume ---
  LV Path                /dev/fedora/swap
  LV Name                swap
  VG Name                fedora
  LV UUID                E2FNQq-GFv7-EEhX-WDFQ-f6Rb-hlLm-f8BcUn
  LV Write Access        read/write
  LV Creation host, time localhost, 2013-05-12 08:30:24 -0400
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3
  --- Logical volume ---
  LV Path                /dev/fedora/root
  LV Name                root
  VG Name                fedora
  LV UUID                QwrhH1-getG-oBhD-SqPj-dC5y-ImL3-yyJIuA
  LV Write Access        read/write
  LV Creation host, time localhost, 2013-05-12 08:30:24 -0400
  LV Status              available
  # open                 1
  LV Size                18.91 GiB
  Current LE             4840
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:4
[root@localhost liveuser]# lvm
lvm>
lvm> exit
  Exiting.

5.挂载逻辑卷

[root@localhost liveuser]# mount /dev/fedora/root /media/boot
[root@localhost liveuser]# mount -t proc none /media/proc
[root@localhost liveuser]# mount -o bind /dev /media/dev
[root@localhost liveuser]# mount -o bind /sys /media/sys
[root@localhost liveuser]# mount -t devpts devpts /media/dev/pts

然后使用chroot命令切换到原来的fedora中

[root@localhost liveuser]# chroot /media

将grub2安装到硬盘MBR上恢复引导

[root@localhost /]# grub2-install /dev/sda
Installation finished. No error reported.

没有错误,搞定收工!

[root@localhost liveuser]# umount /media/proc
[root@localhost liveuser]# umount /media/dev/pts
[root@localhost liveuser]# umount /media/sys
[root@localhost liveuser]# umount /media/dev
[root@localhost liveuser]# umount /media

重启应该就会见到熟悉的grub了。

[root@localhost liveuser]# reboot