由于我的主板 (Gigabyte 970A-DS3 rev.3) 上缺少免费的内置 SATA 3.0 插头(总共 6 个),我有一个 Adaptec RAID 5405 (3G SAS/SATA RAID) 来移动所有“慢速”SATA 1.0 /2.0 设备连接到此卡而不创建任何 RAID。 Adaptec RAID 5405 具有 1 个 SFF-8087 连接器,允许使用 SFF-8087 转 4 SATA 电缆连接最多 4 个设备。现在我有两个设备,使用这种类型的电缆连接到该控制器:DVD-RW (Plextor PX-891SA) 和 SATA 2.0 HDD (Hitachi HDP725050GLA360)。由于某种原因,连接的 HDD 作为块设备不可见,因此我无法通过使用非持久命名或使用 UUID 来安装现有分区(不仅在内部而且在所有内部都/dev/sdXX
没有这样的设备/分区))。我正在运行旧稳定的 Debian Stretch 9.13。/dev/disk/by-uuid
dev/disk/by-* subtree
uname -a
:
Linux tekomspb 4.9.0-11-amd64 #1 SMP Debian 4.9.189-3+deb9u2 (2019-11-11) x86_64 GNU/Linux
lspci | grep -i adaptec
向我展示:
06:00.0 RAID bus controller: Adaptec AAC-RAID (rev 09)
首先,我尝试从以下位置发现任何内容lsscsi -g
:
[0:1:1:0] disk Hitachi HDP725050GLA360 GM4O - /dev/sg0
[0:3:0:0] cd/dvd PLEXTOR DVDR PX-891SA 1.06 /dev/sr0 /dev/sg1
[1:0:0:0] disk ATA PLEXTOR PX-128M5 1.05 /dev/sda /dev/sg2
[2:0:0:0] disk ATA Hitachi HDP72505 A50E /dev/sdb /dev/sg3
<more disks, attached to the MB SATA connectors>
-
尽管sg
设备是在/dev/
树中呈现的,但第一行第六列没有显示任何内容。我做了一些进一步的研究,发现尽管它被 HBA 检测到(通过启动时的初始 HBA BIOS 和使用 Adaptec 的 arcconf 实用程序从 shell 检测到),在/dev
as中可见/dev/sg0
,由 smartctl 可见,使用smartctl -d sat -a /dev/sg0
,但它不显示为块设备在/sys
.另一方面,光驱在/sys
和中都被很好地检测为块设备/dev
(如/dev/sr0
和/dev/sg1
)。
以下是 的输出tree -F -d -L 3 --noreport
。很明显,光驱被检测为块设备,但 HDD 由于某种原因没有被检测到。
/sys/devices/pci0000:00/0000:00:15.0/0000:06:00.0/host0/
├── power
├── scsi_host
│ └── host0
│ ├── device -> ../../../host0
│ ├── power
│ └── subsystem -> ../../../../../../../class/scsi_host
├── subsystem -> ../../../../../bus/scsi
├── target0:1:1
│ ├── 0:1:1:0
│ │ ├── bsg
│ │ ├── generic -> scsi_generic/sg0
│ │ ├── power
│ │ ├── scsi_device
│ │ ├── scsi_generic
│ │ └── subsystem -> ../../../../../../../bus/scsi
│ ├── power
│ └── subsystem -> ../../../../../../bus/scsi
└── target0:3:0
├── 0:3:0:0
│ ├── block
│ ├── bsg
│ ├── driver -> ../../../../../../../bus/scsi/drivers/sr
│ ├── generic -> scsi_generic/sg1
│ ├── power
│ ├── scsi_device
│ ├── scsi_generic
│ └── subsystem -> ../../../../../../../bus/scsi
├── power
└── subsystem -> ../../../../../../bus/scsi
输出来自arcconf getconfig 1
:
----------------------------------------------------------------------
Physical Device information
----------------------------------------------------------------------
Device #0
Device is a Hard drive
State : Ready
Supported : Yes
Transfer Speed : SATA 3.0 Gb/s
Reported Channel,Device(T:L) : 0,1(1:0)
Reported Location : Connector 0, Device 1
Vendor : Hitachi
Model : HDP725050GLA360
Firmware : GM4OA52A
Serial number : GEAXXXXXXXXXXX
Size : 476940 MB
Write Cache : Enabled (write-back)
FRU : None
S.M.A.R.T. : No
S.M.A.R.T. warnings : 0
Power State : Full rpm
Supported Power States : Full rpm,Powered off,Reduced rpm
SSD : No
MaxCache Capable : No
MaxCache Assigned : No
NCQ status : Enabled
Device #1
Device is a CD ROM
Supported : Yes
Transfer Speed : SATA 1.5 Gb/s
Reported Channel,Device(T:L) : 2,0(0:0)
Vendor : PLEXTOR
Model : DVDR PX-891SA
Firmware : 1.06
如何解决此问题以允许 HDD 作为块设备呈现并安装?
答案1
无法通过 Adaptec RAID 控制器将磁盘驱动器直接公开为块设备。几乎所有来自 Adaptec 的控制器都不支持此功能 - 至少 5405、5805 以及更一般的整个 3 和 5 系列,但没有有关 6 系列 RAID 控制器的信息。控制器的 BIOS 不允许执行此操作 - 它根本不支持 HBA 功能。
几个人尝试这样做,但没有成功。
与上述类似的唯一一件事(解决方法)可以使用(创建)JBOD 卷来完成,该卷将由唯一的单个磁盘组成。
支持 HBA 的唯一例外是:Adaptec 系列 7 和 Adaptec 系列 8 控制器(请参阅手动的)。 Adaptec 的更多解释这里
您可以通过查看 BIOS 菜单来确定您的控制器是否支持此类功能。仅当有以下(或类似)选项时:控制器模式介绍后,您可以将 RAID 控制器变成简单的 HBA。 如果这些选项都不存在,那么您在这里什么也做不了。
答案2
由于某种原因,连接的 HDD [在 RAID 控制器下连接]作为块设备不可见,因此我无法挂载现有分区
如果您除了插入磁盘或将SATA/SAS 电缆从RAID 控制器连接到磁盘之外没有执行任何操作,这是正常的。
您必须进入 RAID 控制器设置屏幕(通常是 Ctrl-R),并以某种方式进行配置。默认情况下,新的(或使用过的)磁盘通常会显示 -Unconfigured Good
这意味着它已准备好使用,但不会像您所观察到的那样显示在 Linux 中。
RAID 控制器有所不同,如果您的控制器允许您更改磁盘未配置好到 JBOD,这意味着它支持 JBOD 功能,但并非所有 raid 卡都支持,那么当该磁盘设置为 JBOD 时,它将在 Linux 中显示为块设备,例如,/dev/sdb
然后您可以在其上创建分区和文件系统并挂载就像你习惯的那样。
否则,您需要Create a virtual disk
在通电后立即进入 RAID 卡设置屏幕。即使它只是一个磁盘,您也可以创建一个虚拟磁盘它本质上是 RAID-0。然后它将在 Linux 中显示为块设备,/dev/sdb
您可以对其进行分区/文件系统/挂载。
# this command will list all disks in the system, including those behind
# a raid controller but only if those disks behind the raid controller have
# been configured as JBOD or a virtual disk
# Thus "unconfigured good" means just that, unconfigured, so it won't be available past the raid card setup screen
smartctl --scan
答案3
smartctl -d aacraid,0,0,{Drive} -i /dev/sg0
答案4
我从未在 Adaptec 5405 上测试过它,但一种解决方法是使用 Adaptec raid BIOS 中的每个物理磁盘创建一个 raid0 阵列。您必须禁用虚拟 raid0 驱动器的警报 + 设置另一个选项以防止 raid 控制器将虚拟驱动器标记为离线/损坏(=强制虚拟 raid0 驱动器保持在线并呈现给主机操作系统)。它远非理想,也不推荐,但它对我来说在多个 raid 控制器上都有效(shure 的 LSI 芯片,我想我也在 Adaptec raid 控制器上做到了这一点)。希望这可以帮助。