【注:下面操作请谨慎操作,非高级运维请不要私自操作,尤其是格式化】
要确定磁盘是否曾被使用过,可以通过以下方法检查磁盘的文件系统、数据残留和历史记录:
1. 检查文件系统签名
bash
# 查看磁盘是否有文件系统签名
file -s /dev/nvme1n1
# 或使用 parted
parted /dev/nvme1n1 unit s print
- 有文件系统类型(如 ext4、XFS):说明磁盘已格式化过
- 无文件系统(如 "Data" 或空):可能是新磁盘或被彻底擦除过
2. 扫描分区表
bash
# 查看GPT分区表
gdisk -l /dev/nvme1n1
# 查看MBR分区表
fdisk -l /dev/nvme1n1
- 有分区表:表明磁盘曾被分区并可能使用过
- 无分区表:可能是新磁盘或被清空过
3. 检查数据残留(需谨慎)
bash
# 使用strings命令查找ASCII字符串(可能包含文件名、路径等)
dd if=/dev/nvme1n1 bs=1M count=10 2>/dev/null | strings | head -20
# 使用testdisk扫描文件结构(需安装testdisk包)
testdisk /dev/nvme1n1
- 发现文件名、目录路径或文本内容:证明磁盘曾存储过数据
- 仅随机字符:可能是未使用过的磁盘或已被擦除
4. 查看 SMART 数据(硬件使用记录)
bash
# 安装并运行smartctl(需要smartmontools包)
smartctl -a /dev/nvme1n1 | grep -i "power on hours\|media errors"
- 通电时间(Power On Hours)>0:磁盘已被使用
- 写入量(NVMe Total Host Writes)>0:磁盘已被写入数据
5. 检查日志和挂载记录
bash
# 查看当前挂载情况
mount | grep nvme1n1
# 查看历史挂载记录
grep nvme1n1 /var/log/syslog
grep nvme1n1 /etc/fstab
- 有相关记录:表明系统曾挂载过此磁盘
6. 检查硬件状态
bash
# 查看NVMe健康状态
nvme smart-log /dev/nvme1n1
- Erase Count或Media and Data Integrity Errors非零:磁盘已被使用
综合判断逻辑
- 无文件系统 + 无分区表 + 无数据残留 + 通电时间为 0 → 新磁盘
- 有文件系统或分区表 + 数据残留 + 通电时间 > 0 → 已使用磁盘
- 无文件系统但有数据残留 → 曾被使用但被格式化
如果需要彻底清除磁盘历史,可以使用dd
或sgdisk
擦除分区表和数据:
bash
# 警告:此操作会删除所有数据!
sgdisk --zap-all /dev/nvme1n1
加群请备注(进群后请告知):来自优快云。
专属群:868373192,277356808