如何清除 U 盘中的所有内容(数据、病毒)?

Mar*_*ing 57 usb-drive malware disk-formatting

假设我在公共 Windows 计算机上使用了一些拇指驱动器,并用它复制了一些数据到我的 Ubuntu 计算机。我不能完全确定 Windows 计算机是否干净,它可能在我的拇指驱动器上放了一些东西。有没有办法擦除 U 盘上的所有内容,甚至是 MBR 病毒和那种文件系统外的东西?

Anw*_*war 123

您可以使用很好的旧 Linux 工具 dd来执行此操作。

这样做:

  1. 首先按Ctrl+ Alt+打开终端T
  2. 然后sudo blkid在终端输入。
  3. 非常仔细地检查输出。

    [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" 
    
    Run Code Online (Sandbox Code Playgroud)

    看最后一行/dev/sdb1。即使用 Fat (vfat) 文件系统格式化的 USB 驱动器。请注意,USB 驱动器只有一个名为/dev/sdb1. 如果它有其他分区,它们会被命名为/dev/sdb2... 等等。USB驱动器本身命名/dev/sdb,需要注意的是,它没有一个12或任意数量的后sdb

  4. 然后执行此命令将U盘中的所有数据替换为0。

    sudo dd if=/dev/zero of=/dev/sdX bs=1k count=2048 
    
    Run Code Online (Sandbox Code Playgroud)

    我故意没有/dev/sdb在命令中给出原文,以免新用户不小心弄乱了他们的系统。替换上述命令中步骤 4 中找到的 USB 驱动器名称。

这应该会给你一个干净的USB。完成此操作后,您需要至少创建一个分区才能使用 USB。

在空磁盘上创建分区

要在其上创建一个新分区,您可以使用parted程序。我正在举一个在完整原始磁盘中创建分区的示例。我们的 USB 磁盘大小为 2GB (~2048)。我们假设,它的设备名称是/dev/sdb. 您可以使用命令检查您的设备名称sudo lsblk(您必须通过查看大小等来猜测正确的设备)。

  1. 首先,我们需要在执行完最后一个命令后弹出 USB 并重新插入。
  2. 然后我们需要在磁盘上创建一个分区表。我们将创建一个 msdos 类型的分区表,有时称为主引导记录。

    sudo parted /dev/sdb mklabel msdos
    
    Run Code Online (Sandbox Code Playgroud)
  3. 然后,您将添加一个空的“主”分区,该分区稍后将保存一个 Fat 文件系统。

    sudo parted -a none /dev/sdb mkpart  primary fat32 0 2048
    
    Run Code Online (Sandbox Code Playgroud)

    我们指定了起点(从0 MB)到终点(2048 MB),虽然实际上磁盘可能没有满2048 MB的空间,但别担心,parted会自动调整它。请注意,我们正在创建一个单一的主要的整个磁盘分区上。但是您可以在其上创建多个分区。(虽然不推荐,因为 Windows 只会识别第一个分区)

    这个新创建的分区将具有 id /dev/sdb1

  4. 然后最后通过格式化在 /dev/sdb1 分区上创建一个 Fat 文件系统。

     mkfs.vfat -n "Disk" /dev/sdb1
    
    Run Code Online (Sandbox Code Playgroud)

    我们正在/dev/sdb1分区上创建一个名为“磁盘”的胖文件系统。

就是这样。您现在有一个带有胖分区的干净的新 USB 磁盘。

请注意,您也可以使用 Disk-Utility 程序来创建分区并使用 Fat 对其进行格式化。

使用磁盘工具

  1. Super键并在其中键入“磁盘实用程序”。

    在此处输入图片说明

  2. 在磁盘实用程序窗口中,在“外围设备”部分中选择 USB 驱动器。

    在此处输入图片说明

  3. 您可能需要先卸载驱动器。

    在此处输入图片说明

  4. 然后点击“格式化驱动器”按钮

    在此处输入图片说明

  5. 从新窗口中选择分区表类型。选择“主引导记录”。

    在此处输入图片说明

  6. 创建新分区表后。磁盘实用程序窗口将如下所示

    在此处输入图片说明

    单击“创建新分区”按钮。

  7. 选择“分区类型”并可选择键入分区的名称。

    在此处输入图片说明

  8. 分区将在 4-5 秒内创建,之后您将拥有一个干净的 U 盘。

    在此处输入图片说明

使用 Gparted

  1. 首先你需要安装 gparted,如果你还没有这样做的话。您可以通过单击此链接安装它:gparted 安装 gparted 或在终端中使用此命令

    sudo apt-get install gparted
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后通过在破折号中键入“gparted”打开 gparted。要打开破折号,请按Super键,也称为“Windows”键。

    从破折号打开 gparted

  3. 然后从右侧的下拉菜单中选择 USB 设备。应该是/dev/sdb/dev/sdc等等。请特别注意不要选择/dev/sda,因为它是您的操作系统安装的设备。如果您知道自己在做什么,您应该只选择它。

    选择正确的设备

  4. 选择 USB 设备(在我的系统中/dev/sdb)后,查看它的任何分区是否已挂载。您可以在挂载的分区条目和该分区的挂载点中看到一个钥匙图标。

    安装的分区

    卸载该设备上的任何已安装分区的分区。要卸载,请选择分区?右键点击 ?从菜单中选择卸载

    卸载已安装的驱动器

  5. 然后去gparted菜单?设备? 选择创建分区表以在所选设备上覆盖并创建新的分区表。

    创建一个新的分区表

  6. 将显示一个新窗口,警告您将要执行的操作。默认分区类型是“msdos”,如果您不知道,我强烈建议您不要更改它。另请检查一次,您确实选择了正确的设备。然后单击应用按钮。

    警告

    单击应用按钮后,设备将完全为空。没有分区,也没有数据。

    空设备

  7. 然后选择未分配的空间?右键点击 ?选择 new 创建一个新分区。

    新分区

    在创建新分区对话框中,选择创建为“primary”,文件系统为“fat32”,然后单击添加按钮。或者,您还可以为此分区命名。

    创建文件系统

  8. 单击添加按钮后,如果您应用更改,gparted 将向您显示设备的预览。工具栏中会有一个浅绿色的刻度线图标。您需要单击该图标以应用更改。还有一个撤消按钮,如果在任何步骤出现问题,您可以使用它。

    应用更改

    应用更改后,gparted 将向您显示一条消息“所有操作均已成功完成”。

    成功讯息

现在你已经完成了。

使用新的磁盘实用程序 (12.10)

Ubuntu 12.10 现在配备了一个新的磁盘实用程序。它使用新udisks2程序作为后端。

  1. 首先通过在 Dash 中键入“磁盘”来打开新的磁盘实用程序。按Super键带来破折号

    在此处输入图片说明

  2. 打开磁盘(以前的磁盘实用程序)程序后。做这些

    1. 选择外部磁盘

    2. 如果磁盘已经安装,则卸载它。

    在此处输入图片说明

  3. 然后选择分区并通过按“停止”播放图标将其删除。

    在此处输入图片说明

    如果磁盘上有多个分区,请重复此步骤,直到删除所有分区。

  4. 删除所有分区后,磁盘现在将只包含可用空间。您现在可以通过单击小+图标来创建分区。

    在此处输入图片说明

  5. 选择类型为“FAT”,给一个标签并按下“创建”按钮来创建一个分区。

    在此处输入图片说明

  6. 您的磁盘现在包含一个分区。您可以通过按“播放”图标来挂载分区。您可以通过单击带有“正在使用,是”标签的链接直接浏览已安装驱动器的位置

    在此处输入图片说明

你完成了。

  • 哇!这个答案就像有人问我如何杀死一只蟑螂并得到“把这个火箭筒和 10 枚导弹和……” (19认同)
  • @Anwar:请注意,从 12.10 开始,“磁盘工具”变得非常简单,失去了所有磁盘管理功能。所以你可能想为未来添加一个 *gparted* 选项;) 干得好! (2认同)
  • 块大小无关紧要,实际上它从一开始就从磁盘上清除文件系统信息。1k * 2048 等于 2 MB。你可以增加大小。分区步骤实际上创建了新的文件系统。所以,不用担心。@马特 (2认同)

Jou*_*eek 13

如果你想要一些东西完全不可挽回地消失,这shred是一个不错的选择。

shred -f -n 5 /dev/sdX
Run Code Online (Sandbox Code Playgroud)

sdx你的拇指驱动器在哪里应该可以解决问题 - 它n用随机数据覆盖整个驱动器 5 次(更改为合适的数字)。

您可以使用 找到拇指驱动器的路径fdisk -l


ran*_*cho 5

打开终端

lsblk
Run Code Online (Sandbox Code Playgroud)

您的屏幕上会出现类似的内容:

在此处输入图片说明

假设您的 USB 驱动器是 sdb,具有 4 GB 内存

然后做

dd if=/dev/zero of=/dev/sdb bs=2M count=2048
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以用零覆盖整个 Pendrive。包括任何可能的病毒和恶意软件在内的所有内容都将被删除。

这里的/dev/sdb部分非常重要,您需要格外小心。
例如,如果你把a在地方的b/dev/sdb那么你的整个硬盘将获得由零写来代替。

在这里我给出了count=2048我的 Pendrive 大小是4GB并且由于这里创建的块大小是2MB,所以 2 MB x 2048 = 4096 MB = 4GB。将2048替换为您合适的值。
此外,如果您愿意,您可以将块大小更改为您想要的任何大小。

现在做

fdisk -l
Run Code Online (Sandbox Code Playgroud)

输出是这样的

在此处输入图片说明

在这里您可以确认您当前的随身碟内存大小。

接下来你必须创建分区表。我们将使用parted工具来做到这一点。

在终端输入以下内容:

parted
select /dev/sdb
Run Code Online (Sandbox Code Playgroud)

将其标记为 GPT 类型分区表

mklabel gpt
Run Code Online (Sandbox Code Playgroud)

将默认单位大小从 MB 设置为 GB

unit gb
Run Code Online (Sandbox Code Playgroud)

最后创建分区表:

mkpart /dev/sdb 0GB 3.7GB
Run Code Online (Sandbox Code Playgroud)

在这里我做了3.7GB,因为我的Pendrive 的实际可用空间是3.7GB。请用您自己的值替换它。

接下来查看最终结果

print
Run Code Online (Sandbox Code Playgroud)

整个事情将类似于以下内容:

在此处输入图片说明

按下qenter放出分离提示。

现在是创建文件系统的时候了。我们将创建通用文件系统fat32
Alo 我们将使用mkfs命令来完成它。

在终端输入以下内容

mkfs.vfat /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

现在您拥有一个没有病毒和恶意软件的全新随身碟