创建可启动 USB:“dd”是否会覆盖分区表、格式、文件系统?

创建可启动 USB:“dd”是否会覆盖分区表、格式、文件系统?

我正在创建一个可启动 USB 来安装 NixOS。给定一个位于 /dev/sda 的 USB,可以通过运行以下命令来完成:

# download the ISO
wget https://channels.nixos.org/nixos-21.11/latest-nixos-minimal-x86_64-linux.iso

# erase the disk
sudo dd if=/dev/zero of=/dev/sda bs=4M

# write the image
sudo dd if=latest-nixos-minimal-x86_64-linux.iso of=/dev/sda bs=4M

但在执行此操作之前,我是否需要格式化驱动器(选择分区方案,即 GPT 或 MBR,选择文件系统,即 exFAT、FAT32 等),还是覆盖dd所有这些信息?

答案1

当你使用时of=/dev/sdadd将覆盖一切从物理块 #0 开始,包括所有分区表和文件系统元数据。

在写入 ISO 之前擦除磁盘是不必要的步骤,除非您需要将可启动 USB 交给其他人和/或需要确保 USB 上曾经存在的任何数据都被明确​​擦除。

答案2

有件事值得一提,在你在linux中做了之后

dd  if=somebootableimage.iso  of=/dev/sdx

如果您希望在 Microsoft Windows 下重复使用该 USB 记忆棒,那么该 USB 记忆棒将会出现问题。 Windows 磁盘管理器不会让您在其上重新创建 NTFS 分区,给人的印象是 U 盘已损坏破碎的

如果 Windows 中有一种方法可以在命令提示符窗口中的 diskpart 中修复,我不知道但是......

在 Linux 中执行以下操作以使 USB 记忆棒再次兼容 Microsoft Windows

  • 假设 USB 棒在 Linux 中显示只是/dev/sdx出于语法原因,请将 更改x为正确的字母
  • parted /dev/sdx
  • mklabel gpt
  • 出现提示时选择“是”,它将销毁所有数据
  • exit从分手
  • 从电脑上拔下 U 盘

现在,U 盘的开头将有一个基本的 GPT 分区表,其中没有定义任何分区,这是可以的,并且会让 Windows 磁盘管理器满意。而不是拥有来自 Windows 不喜欢且无法使用的某些 {bootable} iso 映像的任何数据。

如果它在 Windows 中出现问题并且无法格式化,如果它至少/dev/sd?在 Linux 中显示为某个块设备,那么您通常可以很好地恢复 USB 棒以供 Microsoft Windows 使用,请考虑使用任何 USB 棒执行此操作。

相关内容