Skip to content

折腾bootsect和grub4dos导致ubuntu的grub消失

2010 五月 7
by 荒野无灯

在winxp下面折腾bootsect和grub4dos导致ubuntu的grub消失,也就是重启后只有win7的启动菜单,无法进入ubuntu了。(我的笔记本目前装的是xp,win7,ubuntu三系统)

hacklog@hacklog-laptop:~$ df -l
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda9 10082384 394220 9176100 5% /
none 1023856 380 1023476 1% /dev
none 1028076 320 1027756 1% /dev/shm
none 1028076 104 1027972 1% /var/run
none 1028076 0 1028076 0% /var/lock
none 1028076 0 1028076 0% /lib/init/rw
/dev/sda5 188403 38106 140569 22% /boot
/dev/sda10 41802288 7086080 32592844 18% /home
/dev/sda6 4920636 3161172 1509508 68% /usr
/dev/sda7 2952144 466788 2335392 17% /var
/dev/sda8 1968652 423480 1445172 23% /opt
/dev/sdb1 4068804 1780672 2288132 44% /media/MYFENG
/dev/sda2 112101568 77946760 34154808 70% /media/windata

root@hacklog-laptop:/home/hacklog# fdisk -l

Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc001c001

Device Boot Start End Blocks Id System
/dev/sda1 * 1 2611 20972826 7 HPFS/NTFS
/dev/sda2 2612 16567 112101570 7 HPFS/NTFS
/dev/sda3 16568 22320 46210972+ 7 HPFS/NTFS
/dev/sda4 22321 30402 64912385 5 Extended
/dev/sda5 22321 22345 194560 83 Linux
/dev/sda6 22345 22967 4999168 83 Linux
/dev/sda7 22967 23341 2999296 83 Linux
/dev/sda8 23342 23590 2000

/dev/sda5 是我的/boot
折腾了好久,问题最终解决了。
进入ubuntu live CD,
先到/boot看下grub.cfg

1
2
3
4
5
sudo -i
mount /dev/sda5 /mnt
cd /mnt
cd grub
gedit grub.cfg

看linux段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu,Linux 2.6.32-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set f839739b-c24f-42c1-9101-f2b8dee6c60d
    linux   /vmlinuz-2.6.32-22-generic root=UUID=189f810d-fdb5-43c6-b432-6d318b65bcb3 ro ipv6.disable=1  quiet nosplash
    initrd  /initrd.img-2.6.32-22-generic
}
menuentry 'Ubuntu,Linux 2.6.32-22-generic (恢复模式)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,5)'
    search --no-floppy --fs-uuid --set f839739b-c24f-42c1-9101-f2b8dee6c60d
    echo    '载入 Linux ...'
    linux   /vmlinuz-2.6.32-22-generic root=UUID=189f810d-fdb5-43c6-b432-6d318b65bcb3 ro single ipv6.disable=1
    echo    '载入引导虚拟磁盘 ...'
    initrd  /initrd.img-2.6.32-22-generic
}
### END /etc/grub.d/10_linux ###

查看下分区信息:

1
more /etc/fstab

得知f839739b-c24f-42c1-9101-f2b8dee6c60d这个分区即是/所在分区,189f810d-fdb5-43c6-b432-6d318b65bcb3 UUID标识的分区即是 /boot所在分区。
直接运行grug-install /dev/sda 是会出错的。
此处折腾隐藏,要查看请点击这里
后来我给它加了个–root-directory选项之后安装成功。但是启动后只进入到grub,然后要自己敲入grub启动命令才能进入的。
敲入(我的妈呀,那两串UUID可把我累死了 :!: )

1
2
3
4
5
6
insmod ext2
set root='(hd0,5)'
search --fs-uuid --set f839739b-c24f-42c1-9101-f2b8dee6c60d
linux   /vmlinuz-2.6.32-22-generic root=UUID=189f810d-fdb5-43c6-b432-6d318b65bcb3
initrd  /initrd.img-2.6.32-22-generic
boot

终于,激动人心的linux启动界面出来了。
进入ubuntu后,查看 /boot/grub/grub.cfg,发现这个配置文件并没有改变,是以前的。但是为什么 gub启动时还是只停留在grub命令提示符处呢?
可能是我安装grub时没有给它指定正确的grub.cfg文件所有位置,或者说在live CD安装grub时,grub-install没有在硬盘mbr写入正确的grub启动代码。
于是,一进入 ubuntu,我马上运行:

1
grub-install /dev/sda

再重启系统,熟悉的多重启动界面又出来啦。oh yeah!

折腾过程记录

1
2
3
4
5
6
7
sudo -i
mount /dev/sda5 /mnt
mkdir /media/r
mount /dev/sda9 /media/r
mount --bind /dev /media/r/dev
#这里sda9是我的/ 分区挂载点
grub-install --root-directory=/media/r /dev/sda

这里我也不清楚那个 –root-directory选项是什么意思,反正如果不加就不能安装grub。

喜欢这篇文章吗?

请订阅本站 RSS feed填写您的邮件地址,订阅我们的精彩内容:,欢迎点击这里捐赠以支持荒野无灯转播到腾讯微博 转播到腾讯微博

作者:荒野无灯
出处:Hacklog【Hacklog】

声明: 本站遵循 署名-非商业性使用-相同方式共享 3.0 共享协议. 转载请注明转自Hacklog【荒野无灯weblog】

本文链接: http://ihacklog.com/?p=3782

11 Responses Post a comment
  1. 五月 10, 2010

    三系统 :!: 我自己xp和ubuntu的双系统都不时被我非娴熟操作弄出各种状况.. :cry:

  2. 五月 8, 2010

    全面burg,不担心掉引导项~~

    • 五月 9, 2010

      不是掉引导项的问题,我现在用的也是GRUB引导,只是在windows下面折腾,误重写了mbr

  3. 五月 8, 2010

    :!: 我是xp,win7,ubuntu三系统 ~~~!!!厉害、 我现在是WIN 2003 方便自己折腾网站、哈哈~

    • 五月 8, 2010

      折腾网站用XP足矣,顺便还可以玩下游戏 :mrgreen:

      • 五月 8, 2010

        :neutral: 之前用过XP折腾网站、但是很多功能缺少、IIS只能开一个主站、03就不同了、

        • 五月 8, 2010

          用apache,随便建多少个都行。

          • 五月 8, 2010

            听过、apache支持ASP? ~~~

          • 五月 8, 2010

            还有就是、博主、你左边的TOP。我~~还是没学会、能详细教教吗~

        • 五月 8, 2010

          看来你是折腾asp的啊。个人不喜欢ASP,喜欢PHP的人注定不会喜欢ASP的

          • 五月 8, 2010

            以前我是玩ASP的、但是现在玩PHP了、现在折腾ASP因为学校的服务器~~~唯有选择ASP程序、 :neutral:

Leave a Reply

Allowed Tags - You may use these HTML tags and attributes in your comment.

<a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <q cite=""> <strong>

 :wink:  :-|  :-x  :twisted:  :)  8-O  :(  :roll:  :-P  :oops:  :-o  :mrgreen:  :lol:  :idea:  :-D  :evil:  :cry:  8)  :arrow:  :-?  :?:  :!:

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS