假设我在公共的Windows电脑上使用了一些U盘,并且将一些数据复制到我的Ubuntu电脑上。我不能完全确定Windows电脑是否干净,它可能会在我的U盘上放置一些东西。有没有办法擦除U盘上的所有内容,甚至是MBR病毒和类似于文件系统之外的东西?
假设我在公共的Windows电脑上使用了一些U盘,并且将一些数据复制到我的Ubuntu电脑上。我不能完全确定Windows电脑是否干净,它可能会在我的U盘上放置一些东西。有没有办法擦除U盘上的所有内容,甚至是MBR病毒和类似于文件系统之外的东西?
sudo blkid
。仔细地检查输出结果。
[sudo] password for anwar:
/dev/sda1: UUID="63c6fb01-aac4-4d38-b29e-5a5780a98d12" TYPE="ext4"
/dev/sda2: LABEL="Main" UUID="A80C1BD70C1B9F7E" TYPE="ntfs"
/dev/sda5: LABEL="Work" UUID="01CCB271A80A07E0" TYPE="ntfs"
/dev/sda6: LABEL="Edubuntu" UUID="364126ac-01c9-4dd2-ab19-eecc733a9640" TYPE="ext4"
/dev/sda7: LABEL="Windows" UUID="5A8C72C98C729EE7" TYPE="ntfs"
/dev/sda8: UUID="312d4cd9-21a9-4c0d-aa34-26230e70fa89" TYPE="swap"
/dev/sdb1: UUID="E87F-1D12" TYPE="vfat"
看最后一行的 /dev/sdb1
。那是格式为Fat(vfat)的USB驱动器。请注意,USB驱动器只有一个名为 /dev/sdb1
的分区。如果它有其他分区,它们将被命名为 /dev/sdb2
...等等。 USB驱动器本身的名称是 /dev/sdb
,请注意,它没有 1
、2
或任何数字在 sdb
之后。
然后执行以下命令,用0替换USB驱动器中的所有数据。
sudo dd if=/dev/zero of=/dev/sdX bs=1k count=2048
我故意没有在命令中给出原始的 /dev/sdb
,以免新用户意外破坏系统。请在步骤4中找到的USB驱动器名称中替换上述命令中的内容。
然后,我们需要在磁盘上创建一个分区表。我们将创建一种名为msdos的分区表类型,有时也称为主引导记录。
sudo parted /dev/sdb mklabel msdos
接下来,您将添加一个空的“主”分区,稍后将保存Fat文件系统。
sudo parted -a none /dev/sdb mkpart primary fat32 0 2048
我们指定了起始点(从0 MB)到终点(2048 MB),但实际上磁盘可能没有完整的2048 MB空间,但不用担心,parted会自动调整。请注意,我们正在整个磁盘上创建一个单一的主分区。但是您可以在其上创建多个分区。(虽然不建议这样做,因为Windows只会识别第一个分区)。
这个新创建的分区将具有ID /dev/sdb1
最后,在/dev/sdb1分区上创建Fat文件系统进行格式化。
mkfs.vfat -n "Disk" /dev/sdb1
我们正在使用名称“Disk”在/dev/sdb1
分区上创建Fat文件系统。
首先通过在 Dash 中键入“Disks”打开新的磁盘工具。按下 Super 键以调出 Dash。
打开磁盘(之前的磁盘工具)程序后,请执行以下操作:
选择外部磁盘。
如果磁盘已挂载,请卸载它。
然后通过点击“停止”播放图标选择分区并删除它。
如果磁盘上有多个分区,请重复此步骤,直到所有分区均被删除。
删除完所有分区后,磁盘现在只包含空闲空间。您现在可以通过点击小的 +
图标创建一个分区。
选择类型为“FAT”,设置标签,然后点击“创建”按钮来创建一个分区。
您的磁盘现在包含一个分区。您可以通过点击“播放”图标来挂载该分区。您可以直接浏览已挂载驱动器的位置,方法是点击带有标签“正在使用,是”链接。
shred -f -n 5 /dev/sdX
在这里,sdx
是你的闪存盘应该能起到作用 - 它会用随机数据覆盖整个驱动器 5 次(将 n
更改为适当的数字)。
你可以使用 fdisk -l
命令找到闪存盘的路径。
shed -vzn 3 /dev/sdX
:-v
表示详细模式,-n 3
表示重写3次,-z
表示在最后写入零以隐藏擦除过程。 - Benedikt Köppellsblk
dd if=/dev/zero of=/dev/sdb bs=2M count=2048
fdisk -l
在这里,您确认当前的U盘内存大小。
接下来,您需要创建分区表。我们将使用parted工具来完成。
在终端中输入以下内容:
parted
select /dev/sdb
mklabel gpt
unit gb
mkpart /dev/sdb 0GB 3.7GB
这里我使用了3.7GB,因为我的U盘实际可用空间是3.7GB。请将其替换为您自己的值。
接下来查看最终结果。
print
q
并按下 enter 退出 parted 提示符。mkfs.vfat /dev/sdb1
sudo dd if=/dev/zero of=/dev/sdX bs=1k count=2048
sudo dd if=/dev/zero of=/dev/sdX bs=4M iflag=nocache oflag=direct
额外选项的解释:
删除"count=2048"将取消对2048字节的限制,以便dd可以在整个磁盘上执行操作。
bs=4Mb - bs是块大小,因此这将以4Mb的块进行擦除,比1k更快。
iflag和oflag将尝试禁用缓冲,对于恒定流来说是不需要的。
然后按照上面概述的说明来分区和格式化磁盘。
要找到磁盘的盘符,请打开终端并运行:
sudo tail -f /var/log/messages
sudo dd if=/dev/zero of=/dev/sdb bs=1M count=1
一定要确保选择正确的输出设备,而不是某个内部磁盘驱动器!出现错误后的恢复将非常困难。写入后,我会取出并重新插入U盘。
df
和mount | column -t
- shawnhcoreysudo
或者同时磁盘已经被弹出了。你可以尝试其他选项,比如使用gparted
。 - Anwar2097152字节(2.1 MB,2.0 MiB)已复制,0.524652秒,4.0 MB/s
。 - Liso