硬件RAID无法被OS识别:Ubuntu 16.04无法识别LSI MegaRAID阵列
解决Ubuntu 16.04无法识别LSI MegaRaid 9341-8i RAID 5卷的问题
先理清楚你的硬件配置细节:
- 主板:MSI Z270 Gaming Pro Carbon(固件已更至最新的E7A63IMS.180,2018年1月26日)
- RAID控制器:LSI MegaRaid 9341-8i(固件也更到了最新的6.36.00.2,2017年9月11日),已经通过BIOS界面创建了8块磁盘组成的RAID 5卷
针对Ubuntu 16.04安装时识别不到这个RAID卷的问题,我给你几个实用的排查和解决步骤:
1. 安装过程中加载RAID驱动
Ubuntu 16.04的默认内核可能没有完全适配LSI这款RAID卡的驱动(它属于megaraid_sas驱动家族,但旧版本内核对新硬件支持有限)。安装时遇到遇到磁盘检测不到的情况,可以这么做:
- 进入安装界面选"Install Ubuntu"后,按
F6调出额外启动选项,勾选"nomodeset"(避免显卡驱动干扰安装流程),按Esc返回。 - 当安装程序提示"Load drivers from removable media"时,提前准备好带驱动的U盘:
- 先确认安装界面的内核版本——按
Ctrl+Alt+F2进tty,输入uname -r就能看到。 - 下载对应内核版本的
megaraid_sas驱动,把驱动文件放到FAT32格式的U盘根目录。 - 插上U盘,安装程序会自动扫描加载驱动,之后应该就能看到RAID卷了。
- 先确认安装界面的内核版本——按
2. 安装完成后修复RAID识别问题
如果安装完系统还是识别不了RAID卷,试试这些操作:
- 打开终端,先把系统包更到最新:
sudo apt update && sudo apt upgrade -y - 安装
megacli工具,这个是管理LSI RAID卡的神器:sudo apt install megacli -y - 用它检查RAID卷的状态,确认BIOS里创建的卷是正常的:
sudo megacli -LDInfo -Lall -aAll - 如果驱动没自动加载,手动加载
megaraid_sas模块:sudo modprobe megaraid_sas - 用
lsblk查看磁盘设备,RAID卷一般会显示成/dev/sda或者类似的设备名:lsblk - 要是还不行,建议升级内核到Ubuntu 16.04的HWE版本(4.15及以上),对新硬件兼容性更好:
升级完重启系统,再检查RAID卷是否能被识别。sudo apt install linux-generic-hwe-16.04 -y
3. 验证RAID卷的可用性
当RAID卷被识别后,你可以这么确认它能正常使用:
- 用
fdisk看分区表:sudo fdisk -l /dev/sda - 要是还没分区,用
parted创建分区并格式化:sudo parted /dev/sda mklabel gpt sudo parted /dev/sda mkpart primary ext4 0% 100% sudo mkfs.ext4 /dev/sda1 - 把分区挂载到
/mnt/raid目录:sudo mkdir /mnt/raid sudo mount /dev/sda1 /mnt/raid - 用
df -h确认挂载成功:df -h /mnt/raid
小提醒:一定要确保BIOS里把RAID控制器的模式设置成RAID,别选AHCI或者其他模式,不然系统根本认不出RAID卷哦。
内容的提问来源于stack exchange,提问作者LowPolyCorgi




