如何在Linux上使用拭子命令擦除磁盘设备上的签名

时间:2020-01-09 10:40:50  来源:igfitidea点击:

我最近停用了基于Debian Linux的nas服务器,并将磁盘从nas服务器移到了Linux驱动的桌面上。
但是,当我运行fdisk命令时,出现以下错误:/dev/sdb:设备包含有效的LVM2_member签名;强烈建议您在没有意外的情况下使用wipefs(8)擦拭设备,以避免可能的冲突。
什么是wipefs?
如何在Linux上使用它?
每个磁盘和分区上都有某种签名和元数据/魔术字符串。
操作系统用于配置磁盘或在系统上追加驱动程序和装入磁盘的元数据。
您可以使用wipefs命令查看此类分区表签名/元数据/魔术字符串。
相同的命令可以擦除文件系统,RAID或分区表签名/元数据。

显示或显示当前签名

执行以下命令:

$ sudo wipefs /dev/sda

或者

$ sudo wipefs /dev/sda1

输出示例:
显示当前磁盘或分区签名或魔术字符串

小心:仅需几次按键,wipefs即可擦除掉部分或全部硬盘签名或工作分区。
确保您使用擦拭命令使用正确的设备名称。

如何从/dev/vdb删除当前签名?

语法是

$ sudo wipefs --all --force /dev/vdb

您可以创建签名备份到文件$HOME/wipefs- {devname}-{offset} .bak:

$ sudo wipefs --all --force --backup /dev/vdb

输出示例:

/dev/vdb: 8 bytes were erased at offset 0x00000218 (LVM2_member): 4c 56 4d 32 20 30 30 31

从备份文件~/wipefs-sdb-0x00000438.bak恢复ext2签名

您还将使用以下ls命令找到签名备份文件:

$ sudo ls -l ~/wipefs-*.bak

输出示例:

-rw------- 1 root root 8 Feb 27 18:54 /root/wipefs-vdb-0x00000218.bak

要还原,请运行:

$ sudo dd if=~/wipefs-vdb-0x00000218.bak of=/dev/vdb seek=$((0x00000218)) bs=1 conv=notrunc

输出示例:

8+0 records in
8+0 records out
8 bytes copied, 0.00404186 s, 2.0 kB/s

使用dd命令擦除整个磁盘

您还可以使用dd命令来使用以下语法从磁盘设备上清除签名。

dd命令可在Linux,FreeBSD,MacOS和类似Unix的操作系统上使用。
语法为:

$ sudo dd if=/dev/zero of=/dev/vdb bs=1M

输出示例:

4806672384 bytes (4.8 GB, 4.5 GiB) copied, 18.0002 s, 267 MB/s
dd: error writing '/dev/vdb': No space left on device
5121+0 records in
5120+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 18.5783 s, 289 MB/s

或使用显示进度条的dd命令进行安全擦除:

$ sudo dd if=/dev/urandom of=/dev/vdb bs=1M status=progress

输出示例:

5348786176 bytes (5.3 GB, 5.0 GiB) copied, 249.005 s, 21.5 MB/s 
dd: error writing '/dev/vdb': No space left on device
5121+0 records in
5120+0 records out
5368709120 bytes (5.4 GB, 5.0 GiB) copied, 250.069 s, 21.5 MB/s

要清除分区:

$ sudo if=/dev/zero of=/dev/vdb1 bs=1M

要清除主引导记录(MBR),请运行:

$ sudo d if=/dev/zero of=/dev/vdb bs=446 count=1