|
我的硬盘分区:
- Disk /dev/hda: 40.0 GB, 40027029504 bytes
- 255 heads, 63 sectors/track, 4866 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/hda1 * 1 852 6843658+ b W95 FAT32
- /dev/hda2 853 4866 32242455 f W95 Ext'd (LBA)
- /dev/hda5 853 2068 9767488+ b W95 FAT32
- /dev/hda6 2069 3284 9767488+ b W95 FAT32
- /dev/hda7 3285 4500 9767488+ b W95 FAT32
- /dev/hda8 4501 4866 2939863+ b W95 FAT32
- Disk /dev/hdb: 4303 MB, 4303272960 bytes
- 255 heads, 63 sectors/track, 523 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/hdb1 * 1 497 3992121 83 Linux
- /dev/hdb2 498 523 208845 5 Extended
- /dev/hdb5 498 523 208813+ 82 Linux swap / Solaris
复制代码
原来的grub安装在/dev/hda的mbr,我开始打算把它移到/dev/hdb1的引导扇区,于是在执行了下述命令:
- gaoy@gaoy-desktop:~$ sudo grub
- grub> root (hd0,0)
- grub>setup (hd0,0)
复制代码
然后利用命令:
- dd if=/dev/hdb1 of=./bootsect.lnx bs=512 count=1
复制代码
我将bootsect.lnx放到c盘,写好boot.ini后启动发现,选择启动ubuntu出错,错误提示是
- Grub Invalid Partition table
复制代码
由于怕丢失分区,我没对mbr作过多修改,只是尝试清除主引导记录,重新安装grub,问题依旧。
然后我尝试用grub-install将grub安装到/dev/hdb的mbr,然后用
- dd if=/dev/hdb of=./bootsect.lnx bs=512 count=1
复制代码
然后重新配置boot.ini后发现启动正常了。
请问这是怎么回事,难道ubunt里不支持grub直接从分区引导记录中直接读取stage1么?
另外想问两个小问题:
1、grub-install能否直接将grub安装在分区引导扇区中,比如这样,是不是可行的?
2、linux有什么命令可以像dos命令fdisk/mbr那样直接清除mbr(除了用dd命令恢复已有的备份)
谢谢各位! |
|