折腾bootsect和grub4dos导致ubuntu的grub消失
在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: 0xc001c001Device 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。









三系统
我自己xp和ubuntu的双系统都不时被我非娴熟操作弄出各种状况..
全面burg,不担心掉引导项~~
不是掉引导项的问题,我现在用的也是GRUB引导,只是在windows下面折腾,误重写了mbr
折腾网站用XP足矣,顺便还可以玩下游戏
用apache,随便建多少个都行。
听过、apache支持ASP? ~~~
还有就是、博主、你左边的TOP。我~~还是没学会、能详细教教吗~
看来你是折腾asp的啊。个人不喜欢ASP,喜欢PHP的人注定不会喜欢ASP的
以前我是玩ASP的、但是现在玩PHP了、现在折腾ASP因为学校的服务器~~~唯有选择ASP程序、