LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 911|回复: 8

NTloader启动ubuntu6.06有个问题

[复制链接]
发表于 2007-10-3 16:38:09 | 显示全部楼层 |阅读模式
我的硬盘分区:

  1. Disk /dev/hda: 40.0 GB, 40027029504 bytes
  2. 255 heads, 63 sectors/track, 4866 cylinders
  3. Units = cylinders of 16065 * 512 = 8225280 bytes

  4. Device Boot        Start       End        Blocks        Id     System
  5. /dev/hda1   *           1         852      6843658+   b     W95 FAT32
  6. /dev/hda2             853       4866     32242455    f     W95 Ext'd (LBA)
  7. /dev/hda5             853       2068     9767488+   b     W95 FAT32
  8. /dev/hda6            2069      3284     9767488+   b     W95 FAT32
  9. /dev/hda7            3285      4500     9767488+   b     W95 FAT32
  10. /dev/hda8            4501      4866     2939863+   b     W95 FAT32

  11. Disk /dev/hdb: 4303 MB, 4303272960 bytes
  12. 255 heads, 63 sectors/track, 523 cylinders
  13. Units = cylinders of 16065 * 512 = 8225280 bytes

  14. Device Boot         Start       End        Blocks      Id     System
  15. /dev/hdb1   *           1          497      3992121   83      Linux
  16. /dev/hdb2             498         523      208845     5      Extended
  17. /dev/hdb5             498         523      208813+  82    Linux swap / Solaris
复制代码


原来的grub安装在/dev/hda的mbr,我开始打算把它移到/dev/hdb1的引导扇区,于是在执行了下述命令:

  1. gaoy@gaoy-desktop:~$ sudo grub
  2. grub> root (hd0,0)
  3. grub>setup (hd0,0)
复制代码


然后利用命令:

  1. dd if=/dev/hdb1 of=./bootsect.lnx bs=512 count=1
复制代码


我将bootsect.lnx放到c盘,写好boot.ini后启动发现,选择启动ubuntu出错,错误提示是

  1. Grub Invalid Partition table
复制代码


由于怕丢失分区,我没对mbr作过多修改,只是尝试清除主引导记录,重新安装grub,问题依旧。

然后我尝试用grub-install将grub安装到/dev/hdb的mbr,然后用

  1. dd if=/dev/hdb of=./bootsect.lnx bs=512 count=1
复制代码

然后重新配置boot.ini后发现启动正常了。

请问这是怎么回事,难道ubunt里不支持grub直接从分区引导记录中直接读取stage1么?

另外想问两个小问题:
1、grub-install能否直接将grub安装在分区引导扇区中,比如这样,是不是可行的?

  1. grub-install /dev/hdb1
复制代码


2、linux有什么命令可以像dos命令fdisk/mbr那样直接清除mbr(除了用dd命令恢复已有的备份)

谢谢各位!
发表于 2007-10-3 20:18:05 | 显示全部楼层
grub就是为了linux而设计的好吧..没有说ubuntu不支持什么什么的

dd...这个命令是读取硬盘上磁道的信息的.大概你hdb1的头512没有引导信息.因为引导信息在mbr上,也就是硬盘开头的512字节上.

你可以试试看有个grub for dos,有个grldr.不用你dd了.

grub可以安装到分区的引导扇区上去.不过这样没有什么意义.那样你用第一个命令读取分区的引导信息应该可以

用grldr然后一个menu.lst就好了.不过也需要有c:\boot\grub目录下的东西.
回复 支持 反对

使用道具 举报

发表于 2007-10-4 13:46:24 | 显示全部楼层
你将你的 Linux 的引导写到了 Windows 的 引导扇区。若要改写,需要使用 windows 安装光盘启动,看提示 按 R 键启动修复控制台,输入阿拉伯数字 1 或其它,输入管理员密码 ,  fixboot 将引导写到第一主分区的第一扇区,如果想从第一主分区第一扇区的引导写到 MBR ,使用 fixmbr ,暂时先不用 fixmbr。help 是帮助,exit 是退出并重启机器。

等你的 windows 引导正常了之后:
你应该将 GRUB 写到 Linux 系统的某分区的第一扇区 , 分区类型不限主/逻辑分区,均可以此法引导。
boot.ini 文件中添加:

C:\linux.bin="Linux ( linux-version /dev/hdax )"

括号中的 linux-version 表示你的 Linux 版本,或内核版本。视情况自己写一个。
/dev/hdax 表示你的Linux根分区,启动时在 ntldr 引导装载程序多启动菜单中可以看到,这样做到一目了然。

不要去尝试清除 MBR ,在你还没有弄清楚它之前。特别需要注意的是 MBR 中有 64 字节的 主分区表记录,慎之 ! 论坛中有几个兄弟已经上过当了的。

忠告: 备份你的 MBR 和 分区表,这是个好习惯。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-5 10:55:14 | 显示全部楼层
我将Grub安装到分区引导扇区后每次启动都提示
Grub Invalid Partition table

但是进入Linux后发现分区没有任何问题。如果安装grub到mbr就没有这个提示。

大家一般调整grub都用哪种方法,是直接用grub-install命令还是在grub控制台下用setup指令,这两者有区别么?
回复 支持 反对

使用道具 举报

发表于 2007-10-5 12:15:48 | 显示全部楼层
# grub

GRUB 命令模式:
grub >

如果,你的MBR有引导装载程序代码,如果,你的 GRUB 引导不想覆盖到 MBR 的前 446 字节,你应该将它写到 Linux 系统的分区的第一扇区。 包括 Solaris 也可以这样做,方便多系统共存。
dd 导出那个扇区为文件,交给MBR中的那个引导装载即可(可写到引导配置文件,例如 ntldr 的 boot.ini ,GRUB 的 menu.lst 也叫 grub.conf。或启动时可支持交互式引导装载,比如GRUB开机时可以用命令模式和编辑模式)。
回复 支持 反对

使用道具 举报

发表于 2007-10-5 12:35:33 | 显示全部楼层
GRUB 常用命令:
---------------------------------------

chainload (hdn,m)+1
chainload (fd0)+1

装入 /dev/sda6 的第一扇区备份文件,从中读取引导代码。
chainload (hdn,m)/boot/sda6.bin
如果要尝试引导,用此命令:
boot

载入一个 grub 引导配置文件:
configfile (hdn,m)/boot/grub/menu.lst

读取某分区某目录中的一文本文件:
cat (hdn,m)/xxx/xxx/xxx/xxx/file.text

双硬盘、多个硬盘的可能会需要此命令:
map (hdn) (hdm)
map (hdm) (hdn)

GRUB for DOS 支持 map 磁盘仿真。可以用来引导软盘映像文件,若操作不当可能会有一些危险。

最常用的:
kernel
initrd

Tab 键 ,补全。此功能强大,可于 GRUB 命令模式 轻松修复引导故障。
回复 支持 反对

使用道具 举报

发表于 2007-10-5 12:46:03 | 显示全部楼层
Post by Maxshine

Grub Invalid Partition table

没见过这种提示,从不用 grub-install 命令。
一般都是 Linux 系统中 grub 命令,启动 GRUB 命令模式。此命令模式与开机启动时的GRUB 命令模式的区别是,此命令模式是不可以引导系统的因为系统已经启动过了,是否还有其它的区别没仔细研究。
看到了 Partition table ,会想到分区表。别怕,只要你备份了分区表和MBR,无患矣!
分区表有 fdisl -l 的信息就足够。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-5 15:40:23 | 显示全部楼层
谢谢各位帮助。

我现在的问题就是那个出错提示,只有我把grub安装到分区引导扇区就出错。安装到mbr就没事。奇怪了。

而且用fdisk -l察看分区没有问题。分区表应该也没事。
回复 支持 反对

使用道具 举报

发表于 2007-10-5 18:12:30 | 显示全部楼层
你是安装在哪个分区的第一扇区 ? 此分区上有什么操作系统?
不要把 Linux 的引导写到 windows 的分区第一扇区 !
写到Linux分区的第一扇区没问题的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表