核心概念
- 设备标识:Linux磁盘以设备文件形式存在(如
/dev/sda
、/dev/nvme0n1
),通过字母(sda
,sdb
…)或数字(nvme0n1p1
)区分磁盘与分区。 - 分区表:记录分区信息的结构(常见类型:MBR、GPT),删除磁盘需先清除分区表。
- 数据擦除:仅删除分区表可恢复数据;彻底擦除需覆盖磁盘内容。
操作步骤
识别目标磁盘
lsblk -f # 查看所有磁盘、分区及挂载点 sudo fdisk -l # 列出磁盘详情(需root权限) sudo blkid # 显示磁盘UUID及文件系统类型
输出示例:
NAME FSTYPE LABEL MOUNTPOINT
sda
├─sda1 ext4 /mnt/data
└─sda2 swap
nvme0n1
├─nvme0n1p1 vfat BOOT /boot
└─nvme0n1p2 ext4 ROOT /
确认关键信息:
- 目标磁盘设备名(如
/dev/sdb
) - 关联分区(如
/dev/sdb1
)及挂载点
卸载所有关联分区
sudo umount /dev/sdb1 # 卸载单个分区 sudo umount /dev/sdb* # 卸载该磁盘所有分区
验证卸载:再次执行 lsblk -f
,确认目标分区无 MOUNTPOINT
。
删除分区表(销毁分区结构)
方法1:使用 fdisk
(适用于MBR/GPT)
sudo fdisk /dev/sdb # 进入交互命令行
- 输入
d
→ 选择分区号(如1
)删除单个分区 - 或输入
g
创建新GPT表(覆盖旧表),或o
创建新MBR表 - 输入
w
保存更改并退出
方法2:使用 parted
(批量操作更高效)
sudo parted /dev/sdb (parted) mklabel msdos # 创建MBR空表(或输入 gpt 创建GPT空表) (parted) quit
彻底擦除数据(可选)
警告:以下操作不可逆,耗时较长,仅需销毁数据时使用。
- 覆盖磁盘(用零填充):
sudo dd if=/dev/zero of=/dev/sdb bs=4M status=progress
- 安全擦除(支持SSD):
sudo blkdiscard /dev/sdb # 仅适用于SSD(需硬件支持) sudo shred -v -n 1 /dev/sdb # HDD机械硬盘:覆盖1次(默认3次)
物理移除磁盘
- 热插拔磁盘:
echo 1 | sudo tee /sys/block/sdb/device/delete # 从系统移除SCSI/SATA磁盘
- 永久断开:关机后物理拔除磁盘。
关键注意事项
- 双重确认设备名:
- 误操作系统盘(如
/dev/sda
)将导致系统崩溃,通过lsblk
和mount
交叉验证。
- 误操作系统盘(如
- 数据恢复可能性:
- 仅删除分区表时,可用
testdisk
等工具恢复数据;覆盖写入后数据不可逆丢失。
- 仅删除分区表时,可用
- SSD与HDD区别:
- SSD建议使用
blkdiscard
(TRIM指令)提升性能并延长寿命,HDD适合shred
或dd
。
- SSD建议使用
- 企业级场景:
- 敏感数据需符合安全标准(如NIST 800-88),使用专业工具(
nwipe
,DBAN
)。
- 敏感数据需符合安全标准(如NIST 800-88),使用专业工具(
- 基础操作:卸载分区 → 删除分区表 → 物理移除。
- 深度清理:追加数据覆盖步骤(
dd
/shred
)。 - 首要原则:操作前备份、验证设备标识、避免生产环境直接测试。
初次操作建议在虚拟机或无数据磁盘上练习,熟悉流程后再处理真实磁盘。
引用说明:
- Linux
man
手册(命令文档:man fdisk
,man shred
)- GNU Coreutils 官方指南(
dd
,shred
实现原理)- NIST Special Publication 800-88 (媒体清理标准)
- Kernel.org 块设备管理文档(热插拔操作)
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9047.html