» 您尚未 登录   注册 | 银行 | 首页调用管理 | 博客 | 帮助 | 社区 | 无图版
华镭社区论坛 -> 安装引导 -> BUG:RAYS1.5更新至2.0 RC1 出错
 XML   RSS 2.0   WAP 

--> 本页主题: BUG:RAYS1.5更新至2.0 RC1 出错 加入收藏 | 收藏主题 | 上一主题 | 下一主题
yesup




该用户目前不在线
级别: 新手上路
精华: 1
发帖: 17
威望: 20 点
镭: 41 L
贡献值: 0 点
在线时间:7(小时)
注册时间:2007-01-16
最后登录:2007-08-19
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

BUG:RAYS1.5更新至2.0 RC1 出错

主机名称 启天M 865GV 商品名:联想 启天M262E
生产日期 2006/08/19
主板 ID   09/25/2006-i865-W83627-6A79AQ1JC-00
主板名称   QDI P5I865G(V)M
BIOS:
    系统 BIOS 日期                         09/25/06
    视频 BIOS 日期                         08/19/05
    Award BIOS 类型                       Phoenix - AwardBIOS v6.00PG
    Award BIOS 信息                       P5I865G(V)M BIOS V1.4MMSC Sep.25,2006
[ 北桥: Intel Morgan Hill i865GV ]
北桥                               Intel Morgan Hill i865GV
[ 南桥: Intel 82801EB ICH5 ]
南桥                               Intel 82801EB ICH5
修订 / Stepping                       C2 / A2/A3
[ HDS728080PLA380         40Y9028LEN ]   (日立 80G SATAII 硬盘)
设备描述                             HDS728080PLA380         40Y9028LEN
硬盘分区情况: 主分区1: NTFS for winXP,
          主分区2: UFS for FreeBSD
          逻辑分区1: FAT32
          逻辑分区2: NTFS
          逻辑分区3: NTFS
          逻辑分区4: reiserfs for RAYS /boot
          逻辑分区5: reiserfs for RAYS /
          逻辑分区6: reiserfs for RAYS /home
          逻辑分区7: Linux SWAP


  Partition num: 0, Filesystem type unknown, partition type 0x7
  Partition num: 1, [BSD sub-partitions immediately follow]
  BSD Partition num: 'a', Filesystem type is ufs2, partition type 0xa5
  BSD Partition num: 'b', Filesystem type unknown, partition type 0xa5
  BSD Partition num: 'd', Filesystem type is ufs2, partition type 0xa5
  BSD Partition num: 'e', Filesystem type is ufs2, partition type 0xa5
  Partition num: 4, Filesystem type is fat, partition type 0xb
  Partition num: 5, Filesystem type unknown, partition type 0x7
  Partition num: 6, Filesystem type unknown, partition type 0x7
  Partition num: 7, Filesystem type is reiserfs, partition type 0x83
  Partition num: 8, Filesystem type is reiserfs, partition type 0x83
  Partition num: 9, Filesystem type is reiserfs, partition type 0x83
  Partition num: 10, Filesystem type unknown, partition type 0x82


问题:
较早前主板BIOS日期为Award (07/28/06) (2006.07.28)。
硬盘安装 RAYS 1.5 后在线升级到 RAYS 1.5 r2,后将主板BIOS更新至 Award (09/25/06)(2006.09.25)。
更新BIOS前后最显著的差异是硬盘设置的不同,具体为:原BIOS (07/28/06) 硬盘设置只有 IDE Channel 0 、IDE Channel 1 ,共2个 IDE 通道,其实是将SATA1映射成IDE1,SATA2映射 IDE2,当主板SATA1接口接了硬盘时,主板IDE1接口上接的PATA硬盘是不能被系统发现的(这可算是07/28/06BIOS的一个BUG),而IDE2接口上接PATA硬盘则可以。主板BIOS更新至 Award (09/25/06)后进入BIOS设置硬盘则出现4个IDE通道,主板IDE1接口为IDE Channel 0, IDE2接口为IDE Channel 1,SATA1接口为IDE Channel 2,SATA2接口IDE Channel 3。
更新完BIOS后,RAYS 1.5 r2 运行一切正常。
/grub/menu.lst 关于RAYS的内容为:
title     RAYS LX
root     (hd0,7)
kernel     /vmlinuz-2.6.17-2-686 root=/dev/sda9 ro vga=785 splash=silent
initrd     /initrd.img-2.6.17-2-686

今天,在线更新RAYS至 2.0 RC1,以下3个步骤尚未执行,
sudo apt-get install rays-system-core rays-desktop-core
sudo apt-get dist-upgrade
sudo apt-get install network-manager network-manager-gnome
重起系统,不能进入RAYS
/grub/menu.lst 关于RAYS的内容为:
title     RAYS 2.0 (baihong)
root     (hd0,6)
kernel     /vmlinuz-2.6.22-1-686 root=/dev/sda8 ro vga=785 splash=silent
initrd     /initrd.img-2.6.22-1-686

title     RAYS 2.0 (baihong)
root     (hd0,6)
kernel     /vmlinuz-2.6.17-2-686 root=/dev/sda8 ro vga=785 splash=silent
initrd     /initrd.img-2.6.17-2-686

奇怪!不明白它为什么把root (hd0,7)改成了root (hd0,6),又把sda9 改成了sda8。
更严重的问题是尽管root改回(hd0,7),sda8改回sda9,依然不能启动RAYS,报错信息非常复杂,因为不是很熟悉Linux 命令,没有拷贝下来,大致是说ATA的irq错误,从信息中得知,在RAYS下sda8、sda9、sda10都不见了。内核找不到 / 。只好reboot。
倒腾了半天时间,最后只好把BIOS的备份找出来(幸亏有备份),把BIOS恢复到Award (07/28/06) (2006.07.28),硬盘设置又变回了2个通道。用
title     RAYS 2.0 (baihong)
root     (hd0,7)
kernel     /vmlinuz-2.6.22-1-686 root=/dev/sda9 ro vga=785 splash=silent
initrd     /initrd.img-2.6.22-1-686
启动RAYS 成功。
继续执行
sudo apt-get install rays-system-core rays-desktop-core
sudo apt-get dist-upgrade
sudo apt-get install network-manager network-manager-gnome
重起,出错,一查 /grub/menu.lst ,被它改成了以下这个样子:
title     RAYS 2.0 (baihong)
root     (hd0,6)
kernel     /vmlinuz root=/dev/disk/by-uuid/edeaeb7d-8e22-454e-ab3a-9e6129813e22 ro vga=791 splash quiet

title     RAYS 2.0 (baihong)
root     (hd0,6)
kernel     /vmlinuz-2.6.22-1-686 root=/dev/disk/by-uuid/edeaeb7d-8e22-454e-ab3a-9e6129813e22 ro vga=791 splash quiet
initrd     /initrd.img-2.6.22-1-686

title     RAYS 2.0 (baihong)
root     (hd0,6)
kernel     /vmlinuz-2.6.17-2-686 root=/dev/disk/by-uuid/edeaeb7d-8e22-454e-ab3a-9e6129813e22 ro vga=791 splash quiet
initrd     /initrd.img-2.6.17-2-686

又是 root (hd0,6)!
新情况是,还有不知所谓的“root=/dev/disk/by-uuid/edeaeb7d-8e22-454e-ab3a-9e6129813e22”,是RAYS 2.0 对硬盘分区新的定义方式?

在grub下用命令行
root     (hd0,7)
kernel     /vmlinuz-2.6.22-1-686 root=/dev/sda9 ro vga=791 splash=silent
initrd     /initrd.img-2.6.22-1-686
boot
启动RAYS 成功。

看来暂时只能用旧的BIOS文件了。


[ 此贴被yesup在2007-08-18 23:11重新编辑 ]


[楼 主] | Posted: 2007-08-18 22:24
顶端
zengpu




该用户目前不在线
级别: 资深会员
精华: 2
发帖: 608
威望: 2040 点
镭: 53 L
贡献值: 1 点
在线时间:560(小时)
注册时间:2006-08-31
最后登录:2011-06-15
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子




[1 楼] | Posted: 2007-08-19 08:05 顶端
pisces


该用户目前不在线
级别: 龙芯核心团队
精华: 2
发帖: 40
威望: 45 点
镭: 11 L
贡献值: 0 点
在线时间:93(小时)
注册时间:2006-09-04
最后登录:2009-05-04
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



参考 http://www.gnu.org/software/grub/manual/html_node/Device-map.html#Device-map
15.3 The map between BIOS drives and OS devices

When you specify the option --device-map (see Basic usage), the grub shell creates the device map file automatically unless it already exists. The file name /boot/grub/device.map is preferred.

If the device map file exists, the grub shell reads it to map BIOS drives to OS devices. This file consists of lines like this:

  device file

device is a drive specified in the GRUB syntax (see Device syntax), and file is an OS file, which is normally a device file.

The reason why the grub shell gives you the device map file is that it cannot guess the map between BIOS drives and OS devices correctly in some environments. For example, if you exchange the boot sequence between IDE and SCSI in your BIOS, it gets the order wrong.

Thus, edit the file if the grub shell makes a mistake. You can put any comments in the file if needed, as the grub shell assumes that a line is just a comment if the first character is `#'.

[2 楼] | Posted: 2007-08-20 12:15 顶端
pisces


该用户目前不在线
级别: 龙芯核心团队
精华: 2
发帖: 40
威望: 45 点
镭: 11 L
贡献值: 0 点
在线时间:93(小时)
注册时间:2006-09-04
最后登录:2009-05-04
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



参考 http://www.gnu.org/software/grub/manual/html_node/Filesystem.html#Filesystem
11 Filesystem syntax and semantics

GRUB uses a special syntax for specifying disk drives which can be accessed by BIOS. Because of BIOS limitations, GRUB cannot distinguish between IDE, ESDI, SCSI, or others. You must know yourself which BIOS device is equivalent to which OS device.

[3 楼] | Posted: 2007-08-20 12:16 顶端
pisces


该用户目前不在线
级别: 龙芯核心团队
精华: 2
发帖: 40
威望: 45 点
镭: 11 L
贡献值: 0 点
在线时间:93(小时)
注册时间:2006-09-04
最后登录:2009-05-04
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子



在这里,root=/dev/disk/by-uuid/edeaeb7d-8e22-454e-ab3a-9e6129813e22 和平常 root=/dev/sda8 是同一个意思。
一块硬盘,在系统中有多种表示方式,上面2种都可以,另外还有其他的,用户可以在/dev/disk/下进行察看。
所以,出现问题不是这里引起的。


察看我的上2个回帖,可以知道
1。grub cannot guess the map between BIOS drives and OS devices correctly in some environments.
2。You must know yourself which BIOS device is equivalent to which OS device.
所以,需要用户提供一个文件,/boot/grub/device.map.
此文件的内容样式:
  device         file
#(BIOS device     OS device)

你的机器更新了bios,device部分需要修改;
你的系统升级到2.0,file部分也需要修改。(这是由于2.0使用2.6.22内核,这个内核在系统中统一识别硬盘为/dev/sdXX,而不象老版本内核一样区分/dev/hdXX或/dev/sdXX)
系统不能启动,问题应该在这里。

所以,你需要根据你机器和系统的实际情况手动修改/boot/grub/device.map,这样就可以了。

[4 楼] | Posted: 2007-08-20 12:42 顶端

华镭社区论坛 -> 安装引导