新增硬盘有脏数据如何处理——ubuntu16.04

比起君子讷于言而敏于行,我更喜欢君子善于言且敏于行。

目录

前言

[查看所有硬盘状态,新增的这块显示为UGood F](#查看所有硬盘状态,新增的这块显示为UGood F)

[第一步:删除所有 Foreign 配置](#第一步:删除所有 Foreign 配置)

[第二步:设置为 JBOD 模式](#第二步:设置为 JBOD 模式)

第三步:最终验证

变成JBOD就对了

[二、 显示为:UBad](#二、 显示为:UBad)

查看所有的盘信息可以看到新增的8:11显示为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:每次写 1MB
  • count=100:写 100 个块 → 总共 100MB
  • status=progress:显示进度
  • 🔹为什么只写前面 100MB?硬盘开头区域包含 分区表、文件系统超级块、RAID 元数据,清掉这些通常就足够了。写整个盘可能很慢。

第五步:让内核重新识别分区表

复制代码
partprobe /dev/sdj
  • 作用 :通知 Linux 内核 /dev/sdj 的分区表已经更新,让系统重新识别。
  • 🔹不执行这步的话,可能还会看到旧分区信息或者挂载失败。

总结

ubuntu16.04版本的系统对于磁盘处理很多命令不生效,记录一下,省的再找

相关推荐
Marry Andy1 小时前
Atlas 800T A2部署qwen3-32b
linux·人工智能·语言模型·自然语言处理
wpeng56411 小时前
LINUX-FSTAB参数/SSD挂载
linux·运维·服务器
东风破1371 小时前
DM8事务管理,多版本并发控制,及达梦开发接口
数据库·dm达梦数据库
Shadow(⊙o⊙)1 小时前
硬核手搓解析!进程-内核分析:命令行参数及环境变量,重构main()
linux·运维·服务器·开发语言·c++·后端·学习
青天喵喵1 小时前
Linux WiFi 架构解析:从用户态到驱动与硬件(基础篇)
linux·运维·arm开发·架构·wifi·嵌入式
剑神一笑1 小时前
Linux watch 命令深度解析:从实时监控到变化检测的完整实现
linux·运维·服务器
2301_789015621 小时前
Linux:基础指令(二)
linux·运维·服务器·c语言·开发语言·c++·算法
城数派1 小时前
省市县三级的逐年植被覆盖度(FVC)数据
数据库·arcgis·信息可视化·数据分析
小则又沐风a1 小时前
初步了解进程的概念
java·linux·服务器·前端