我想在 IBM xSeries 306m 上安装 Ubuntu Server 9.10。板载 SATA RAID 控制器无法正确检测到。
有人曾在这些机器上安装 Ubuntu 或 Linux 并遇到过这个问题吗?
SATA 控制器在启动时报告自身为 Adaptec HostRAID
答案1
我刚刚亲自尝试了一下,让它工作了 [虽然不是在 RAID 配置中]。问题似乎与系统在启动时无法找到控制器的固件 (aic94xx-seq.fw) 有关。
以下是我为开始工作所做的事情:
首先在 Adaptec 控制器(启动时按 ctrl-a)中,删除您的 raid 阵列,这样您就有两个不同的驱动器。
接下来,启动 ubuntu server 9.10 安装盘并安装它。在我删除 RAID 阵列后,安装程序找到了驱动器,我能够在驱动器上安装,但安装无法从驱动器启动。
问题在于 Adaptec 9405w 控制器的固件没有复制到系统启动时启动的 initrd 映像中,因此它无法自行引导。为了解决这个问题,我使用以下步骤使用所需文件构建了一个自定义 initrd 映像:
安装后,启动安装盘并选择“救援模式”。
选择“以 root 身份使用 /dev/sda1”,然后选择“在安装程序环境中执行 shell”
这将使您进入一个 shell,其中 /dev/sda1 被挂载为 /target。现在您需要修复目标上的 initrd 映像以包含您需要的固件:
cd /target/boot
# backup the original...
cp initrd.img-2.6.31-14-server initrd.img-2.6.31-14-server.save
mkdir tmp
cd tmp
/target/bin/gzip -dc ../initrd.img-2.6.31-14-server | /target/bin/cpio -id
现在您将拥有一个解压版本的 initrd 映像,您可以将固件复制到该映像中:
cp /target/lib/firmware/aic94xx-seq.fw lib/firmware/2.6.31-14-server
不要像我一开始那样放入 adaptec 目录……
现在您可以重新创建 initrd 映像
find . | /target/bin/cpio --quiet --dereference -o -H newc | /target/bin/gzip -9 > ../initrd.img-2.6.31-14-server
重新启动后您现在就可以从硬盘启动 ubuntu 服务器了。
也许还有其他方法可以完成此操作,但这对我来说有效。
此外,您可能能够让其与 RAID 配置中的驱动器配合使用,但我无法让安装盘识别 RAID 阵列。您可能能够使用 alt-f2 切换到控制台窗口并 rmmod aic94xx 模块,然后使用 modprob 重新加载它。我会让其他人来解决这个问题。
希望这可以帮助。
编辑于2010/3/15:
系统启动后,我发现了一种简单的方法,可以确保如果固件文件中的任何文件有更新,则会自动将其包含在 initrd 映像中。我还没有测试过,但基本上,一旦安装了操作系统,在执行“apt-get upgrade”之前,请执行以下操作:
cp /target/lib/firmware/aic94xx-seq.fw /target/lib/firmware/2.6.31-14-server
/usr/sbin/update-initramfs -k all -u
此后,您应该能够毫无问题地进行升级,直到获得新的内核。
我尝试从安装盘运行 update-initramfs,但最终清除了 /target/boot 目录,所以你不想这样做。
-- 巴德
答案2
我设法在 xSeries 306 上安装了 Ubuntu 10.10 x86。
- 我将 BIOS 更新至 2008 年的最新版本。
- 我在 Adaptec BIOS 中将 RAID 配置为两个 SATA 500GB 驱动器上的镜像,并将其命名为 LONG! 名称以填充所有名称空间。
- 我正常地在其上安装了 Ubuntu 10.10 x64,RAID 被检测为
/dev/mapper/long-raid-name
并且其上的分区具有正确的 ID。
问题似乎出在 RAID 阵列的名称上,如果你用一个短名称来调用它,它会产生令人讨厌的空格,当 Ubuntu 检测到它们时,它会将它们变成/dev/mapper/ibmraid\\\\\\\\
无法使用或格式化的安装。所以解决方案很简单:
- 更新固件
- 使用 Adaptec 实用程序设置 raid (ctrl+a)
- 安装 ubuntu 10.10.x64