比起君子讷于言而敏于行,我更喜欢君子善于言且敏于行。
目录
[查看所有硬盘状态,新增的这块显示为UGood F](#查看所有硬盘状态,新增的这块显示为UGood F)
[第一步:删除所有 Foreign 配置](#第一步:删除所有 Foreign 配置)
[第二步:设置为 JBOD 模式](#第二步:设置为 JBOD 模式)
[二、 显示为:UBad](#二、 显示为:UBad)
[为什么会出现 UBad?](#为什么会出现 UBad?)
[第一步:强制将 UBad 状态改为 UGood(核心命令)](#第一步:强制将 UBad 状态改为 UGood(核心命令))
[第三步:删除所有 Foreign 配置](#第三步:删除所有 Foreign 配置)
[第四步:设置为 JBOD 模式](#第四步:设置为 JBOD 模式)
[如果第一步 set good 还是报错怎么办?](#如果第一步 set good 还是报错怎么办?)
前言
本意是要给ceph新增osd,盘都是脏的,先记录一下准备工作~
一、 显示为:UGood F
查看所有硬盘状态,新增的这块显示为UGood F
storcli /c0/eall/sall show
8:11 24 UGood F 5.457 TB SATA HDD N N 512B ST6000NM021A-2R7101 U -
第一步:删除所有 Foreign 配置
storcli /c0/fall delete
第二步:设置为 JBOD 模式
storcli /c0/e8/s11 set jbod
第三步:最终验证
storcli /c0/e8/s11 show
变成JBOD就对了
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
-------------------------------------------------------------------------------
8:11 24 JBOD - 5.457 TB SATA HDD N N 512B ST6000NM021A-2R7101 U -
-------------------------------------------------------------------------------
二、 显示为:UBad
查看所有的盘信息可以看到新增的8:11显示为UBad
# storcli /c0/eall/sall show
CLI Version = 007.0709.0000.0000 Aug 14, 2018
Operating system = Linux 4.4.0-186-generic
Controller = 0
Status = Failure
Description = Show Drive Information Failed.
Detailed Status :
===============
--------------------------------
Drive Status ErrCd ErrMsg
--------------------------------
/c0/e8/s0 Success 0 -
/c0/e8/s1 Success 0 -
/c0/e8/s2 Success 0 -
/c0/e8/s3 Success 0 -
/c0/e8/s4 Success 0 -
/c0/e8/s5 Success 0 -
/c0/e8/s6 Success 0 -
/c0/e8/s7 Success 0 -
/c0/e8/s8 Success 0 -
/c0/e8/s9 Success 0 -
/c0/e8/s10 Success 0 -
/c0/e8/s11 Failure 46 -
--------------------------------
Drive Information :
=================
----------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
----------------------------------------------------------------------------------
8:0 9 Onln 0 223.062 GB SATA SSD N N 512B INTEL SSDSC2KB240G8 U -
8:1 11 Onln 0 223.062 GB SATA SSD N N 512B INTEL SSDSC2KB240G8 U -
8:2 10 JBOD - 223.062 GB SATA SSD N N 512B INTEL SSDSC2KB240G8 U -
8:3 12 JBOD - 1.862 TB SATA SSD N N 512B Lenovo SSD SL700 2TB U -
8:4 13 JBOD - 5.457 TB SATA HDD N N 512B ST6000NM021A-2R7101 U -
8:5 18 JBOD - 7.276 TB SAS HDD N Y 512B ST8000NM0185 U -
8:6 19 JBOD - 7.276 TB SAS HDD N Y 512B ST8000NM0185 U -
8:7 16 JBOD - 7.276 TB SAS HDD N Y 512B HUH721008AL5200 U -
8:8 17 JBOD - 7.276 TB SAS HDD N Y 512B ST8000NM0185 U -
8:9 20 JBOD - 7.276 TB SAS HDD N Y 512B MG06SCA800EY U -
8:10 21 JBOD - 7.276 TB SAS HDD N Y 512B ST8000NM0185 U -
8:11 22 UBad - 5.457 TB SATA HDD N N 512B ST6000NM021A-2R7 U -
----------------------------------------------------------------------------------
EID-Enclosure Device ID|Slt-Slot No.|DID-Device ID|DG-DriveGroup
DHS-Dedicated Hot Spare|UGood-Unconfigured Good|GHS-Global Hotspare
UBad-Unconfigured Bad|Onln-Online|Offln-Offline|Intf-Interface
Med-Media Type|SED-Self Encryptive Drive|PI-Protection Info
SeSz-Sector Size|Sp-Spun|U-Up|D-Down/PowerSave|T-Transition|F-Foreign
UGUnsp-Unsupported|UGShld-UnConfigured shielded|HSPShld-Hotspare shielded
CFShld-Configured shielded|Cpybck-CopyBack|CBShld-Copyback Shielded
这是 RAID 卡的经典误判,磁盘本身是好的,只是被标记成了坏盘。
为什么会出现 UBad?
100% 是 RAID 卡误判,不是磁盘真的坏了:
- 这块 6T 盘之前在其他服务器上用过
- 旧的 RAID 标签没有被完全清除
- 新的 RAID 卡识别到不认识的标签,就直接标记为 UBad(未配置坏盘)
- 这是 LSI/Avago RAID 卡的常见问题,尤其是老版本固件
第一步:强制将 UBad 状态改为 UGood(核心命令)
# 旧版本storcli修复UBad的唯一正确语法
storcli /c0/e8/s11 set good
第二步:验证状态是否已改变
storcli /c0/e8/s11 show
会变成这样:F 标记会自动消失,变成UGgood。如果不是这样,那就有问题
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
-------------------------------------------------------------------------------
8:11 22 UGood F 5.457 TB SATA HDD N N 512B ST6000NM021A-2R7101 U -
-------------------------------------------------------------------------------
第三步:删除所有 Foreign 配置
storcli /c0/fall delete
第四步:设置为 JBOD 模式
storcli /c0/e8/s11 set jbod
第五步:最终验证
storcli /c0/e8/s11 show
变成JBOD就对了
-------------------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp Type
-------------------------------------------------------------------------------
8:11 22 JBOD - 5.457 TB SATA HDD N N 512B ST6000NM021A-2R7101 U -
-------------------------------------------------------------------------------
如果第一步 set good 还是报错怎么办?
执行这条终极命令,强制重置磁盘状态:
# 初始化磁盘,清除所有RAID元数据
storcli /c0/e8/s11 start initialize
等待 1-2 分钟初始化完成后,再重新执行上面的步骤 1-5。
三、彻底清理硬盘并准备新分区表
简单理解:把硬盘擦干净,像新买的一样,准备重新分区和使用
第一步:卸载硬盘
umount /dev/sdj 2>/dev/null
- 作用 :卸载
/dev/sdj这个设备上的所有挂载点,让它处于"未被使用"的状态。 2>/dev/null:把错误信息丢掉(比如盘上没有挂载点,就不会显示错误)。- 🔹这步确保后续操作不会因为硬盘正在被使用而失败。
第二步:创建新的分区表
parted /dev/sdj --script mklabel gpt
- 作用 :给
/dev/sdj创建一个新的 GPT 分区表。 --script:自动执行,不需要交互确认。- GPT 是现代硬盘常用分区表类型,比老式 MBR 支持更多分区和大容量硬盘。
- 🔹这步会 清掉硬盘上原来的分区表,但不会清掉分区里残留的数据。
第三步:删除文件系统签名
wipefs -a /dev/sdj
- 作用:扫描硬盘上已存在的文件系统或 RAID 签名,并删除它们。
-a:删除所有发现的签名。- 🔹防止系统误认旧的文件系统或 RAID 元信息。
- 比如硬盘原来是 EXT4、XFS 或 RAID 成员,都会被清掉。
第四步:用零覆盖磁盘开头
dd if=/dev/zero of=/dev/sdj bs=1M count=100 status=progress
- 作用 :把硬盘前 100MB 用 0 填充(清零)。
if=/dev/zero:输入是零of=/dev/sdj:输出到硬盘bs=1M:每次写 1MBcount=100:写 100 个块 → 总共 100MBstatus=progress:显示进度- 🔹为什么只写前面 100MB?硬盘开头区域包含 分区表、文件系统超级块、RAID 元数据,清掉这些通常就足够了。写整个盘可能很慢。
第五步:让内核重新识别分区表
partprobe /dev/sdj
- 作用 :通知 Linux 内核
/dev/sdj的分区表已经更新,让系统重新识别。 - 🔹不执行这步的话,可能还会看到旧分区信息或者挂载失败。
总结
ubuntu16.04版本的系统对于磁盘处理很多命令不生效,记录一下,省的再找