连接 eSata 外部机箱时 Ubuntu 服务器无法启动

连接 eSata 外部机箱时 Ubuntu 服务器无法启动

我希望将 JBOD 配置中的外部磁盘盒连接到运行 Ubuntu 8.10 服务器版的计算机。我已经在内部 IDE 驱动器上顺利安装了 Ubuntu,该驱动器已经运行了几个月。外部磁盘盒将仅用作文件服务器的存储。

我的机箱是“SANS DIGITAL TR5M-B 5 Bay SATA”(在 newegg 上搜索,会添加链接,但我不能,因为我是新用户),并且由于我的主板没有 PCI-E 插槽,我购买了此 PCI 卡来为机器添加 eSata 支持:“Rosewill RC-210 Silicon Image e-SATA PCI”(同样,在 newegg.com 上)

连接 PCI 卡后,我将 2 个硬盘驱动器添加到机箱中,插入外部机箱并打开它,然后打开 Ubuntu 机器。看到常规启动过程(Post -> LILO 等)后,Ubuntu 似乎开始启动,然后我看到以下消息:

ata1: link is slow to respond, please be patient (ready=-19)
ata1: COMRESET failed (errno=-16)

经过 3 次这样的消息循环后,我看到:

Cannot find /dev/sda1 dropping to shell

由于 /dev/sda1 是根安装所在的位置,因此我可以理解为什么这是一个问题。我当时的想法是它与外部机箱有关,因此我将其关闭,然后将其从计算机上拔下,然后重新启动。Ubuntu 正常启动。

我相信 PCI eSata 卡已被正确识别,因为我看到“lspci -v”的以下输出

00:0b.0 Mass storage controller: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller (rev 01)
    Subsystem: Silicon Image, Inc. SiI 3512 [SATALink/SATARaid] Serial ATA Controller
    Flags: bus master, 66MHz, medium devsel, latency 32, IRQ 5
    I/O ports at a000 [size=8]
    I/O ports at 9800 [size=4]
    I/O ports at 9400 [size=8]
    I/O ports at 9000 [size=4]
    I/O ports at 8800 [size=16]
    Memory at ed000000 (32-bit, non-prefetchable) [size=512]
    [virtual] Expansion ROM at 30000000 [disabled] [size=512K]
    Capabilities: [60] Power Management version 2
    Kernel driver in use: sata_sil
    Kernel modules: sata_sil

此时,为了看看它是否能正常工作,我连接了机箱,然后打开它,希望能看到 /dev 中连接的新设备。不幸的是,我只在 /dev/sdaX 上看到了我的内置 IDE 驱动器

所以我的问题是,我需要做什么来配置机箱中的 2 个 SATA 驱动器,以便操作系统能够看到这些驱动器并安装它们?我是否配置不正确,从而导致启动时错误?任何帮助都将不胜感激。

作为参考,这是我的 /etc/fstab 文件:

#/etc/fstab:静态文件系统信息。
#
#                
proc /proc proc 默认值 0 0
# /dev/sda1
UUID=6cbaa9de-3ba1-43c0-ac8c-63c19e1ad1b4 / ext3 relatime,错误=remount-ro 0 1
# /dev/sda6
UUID=0106ad4f-2fcc-44db-9475-154425032126 /home ext3 relatime 0 2
# /dev/sda5
UUID=8be1601c-0380-4aaa-8cb4-b64ed262dae3 无交换 sw 0 0
/dev/scd0 /media/cdrom0 udf,iso9660 用户,noauto,exec,utf8 0 0

编辑:以下是我能够提取的更多详细信息。我按照 Paul Rudnitskiy 的建议,在正常启动机器后连接了外部外壳,然后在 dmesg 的末尾发现了以下内容:

[ 135.367537] ata3: 异常 Emask 0x10 SAct 0x0 SErr 0x50000 操作 0xe 冻结
[135.367639] ata3:SError:{PHYRdyChg CommWake}
[ 135.367713] ata3:硬重置链接
[ 141.150055] ata3:链接响应较慢,请耐心等待(就绪=-19)
[145.410073]ata3:COMRESET 失败(errno=-16)
[ 145.410165] ata3: 硬重置链接
[ 151.200062] ata3:链接响应较慢,请耐心等待(就绪=-19)
[155.460053]ata3:COMRESET 失败(errno=-16)
[ 155.460145] ata3: 硬重置链接
[ 161.250058] ata3:链接响应较慢,请耐心等待(就绪=-19)
[190.470198]ata3:COMRESET 失败(errno=-16)
[ 190.470291] ata3:硬重置链接
[195.480055]ata3:COMRESET 失败(errno=-16)
[ 195.480144] ata3: 重置失败,放弃
[195.480213]ata3: EH 完成

答案1

抱歉,原来这是 ID ten T 错误。(ID 10 T)当我将 SATA 驱动器放入机箱时,我从顶部插槽开始放入驱动器。显然,机箱要求驱动器从底部开始。将驱动器放在那里,Ubuntu 就可以自动检测到它们。

因此,Paul 和 Supermathie 是正确的,这些设备在随后的重启中确实被重命名了(sda 变成了 sdb,因为它被外壳中的驱动器取代了),但它实际上并没有影响操作系统的启动,因为 /etc/fstab 引用了启动驱动器的 UUID。

此外,如果有人打算将相同的 SATA PCI 控制器卡与此机箱一起使用,请不要这样做。正如我昨晚发现的那样,此卡上的芯片组 SiI 3512 不支持 eSATA 端口倍增器,而这是访问我的 Sans Digital 机箱上的第一个驱动器以外的驱动器所必需的。结果是 Ubuntu 只能看到机箱中的第一个驱动器,而看不到所有驱动器。(这没什么用)

希望这对将来的某人有所帮助。

答案2

连接外部驱动器导致驱动器名称发生变化。为避免这种情况,您可以通过 UUID 或标签引用和挂载文件系统。这将防止任何重命名操作弄乱您的系统。

您还可以通过其他方式执行此操作:

  • 更改模块加载顺序,在 SAS 驱动器之前加载 IDE 驱动程序
  • 改用 LVM。即使物理卷移动了一点,LVM 也能找到它们。(对您来说并不适用,但对其他人来说可能适用)。

答案3

也许外部设备正在改变地址,例如:过去:

Port1 - sda
Port2 - sdb

现在

Eport - sda
Port1 - sdb

或者机箱没有足够的电力来启动新磁盘。您可以在系统启动后连接机箱并检查其工作原理吗?

相关内容