linux系统是可以对整块磁盘进行全盘格式化操作的,该操作会清除磁盘上所有的分区表、文件系统以及存储的全部数据,适用于磁盘需要完全重置、更换使用场景或者排查磁盘故障的场景。操作前需要确认目标磁盘没有被系统关键进程占用,且已经备份好所有需要保留的数据。

全盘格式化前的准备工作
在执行全盘格式化之前,需要先完成以下准备工作,避免操作失误导致数据丢失或者系统故障:
- 确认目标磁盘的设备标识,比如/dev/sda、/dev/nvme0n1等,不要误选系统所在磁盘
- 备份目标磁盘上的所有重要数据,全盘格式化后数据无法通过常规手段恢复
- 如果目标磁盘已经挂载,需要先卸载所有挂载点,避免格式化失败
- 如果是系统所在磁盘,需要提前准备linux live系统盘,从live系统启动后再操作
使用fdisk工具全盘格式化
fdisk是linux系统自带的磁盘分区工具,可以用来清除磁盘的分区表,实现类似全盘格式化的效果,操作步骤如下:
查看磁盘列表
首先使用以下命令查看当前系统的磁盘列表,确认目标磁盘的设备名:
# 查看所有磁盘和分区信息 fdisk -l
清除磁盘分区表
假设目标磁盘是/dev/sdb,执行以下命令进入fdisk交互界面:
# 操作目标磁盘 fdisk /dev/sdb
进入交互界面后,依次执行以下操作:
- 输入
d,删除所有现有分区,直到提示没有可删除的分区 - 输入
o,创建新的DOS分区表,或者输入g创建GPT分区表 - 输入
w,保存更改并退出
此时磁盘的分区表已经被清除,相当于完成了全盘格式化的第一步,如果需要创建新的文件系统,可以继续创建分区并格式化对应分区。
使用dd工具全盘擦除
如果需要彻底清除磁盘上的所有数据,包括残留的文件内容和分区信息,可以使用dd工具对整块磁盘进行擦除,操作命令如下:
# 用零填充整块磁盘,/dev/sdb是目标磁盘,bs是每次写入的块大小 dd if=/dev/zero of=/dev/sdb bs=4M status=progress
该命令会将磁盘的每一个扇区都写入0,完成后磁盘上不会保留任何原有数据,执行时间会根据磁盘容量和读写速度有所不同。需要注意of参数后面的设备名必须准确,否则会擦除错误的磁盘数据。
全盘格式化后的操作
完成全盘格式化后,磁盘处于无分区无文件系统的状态,如果需要正常使用,还需要进行以下操作:
- 使用fdisk或者parted工具创建新的分区
- 使用mkfs系列命令为分区创建文件系统,比如ext4、xfs等
- 创建挂载点并将分区挂载到系统中
以下是创建ext4文件系统并挂载的示例:
# 创建ext4文件系统,/dev/sdb1是新建的分区 mkfs.ext4 /dev/sdb1 # 创建挂载点 mkdir -p /mnt/data # 挂载分区 mount /dev/sdb1 /mnt/data
注意事项
- 全盘格式化操作不可逆,操作前务必多次确认目标磁盘设备名,避免误删系统盘数据
- 如果磁盘有坏道,全盘格式化可能会失败,需要先检测并修复磁盘坏道
- SSD磁盘不建议频繁使用dd工具全盘擦除,会影响SSD的使用寿命
- 操作完成后可以使用
lsblk命令确认磁盘的分区和挂载状态是否符合预期