如何在 wsl2 上使用 linux dd 命令来刻录可启动 USB?

How can I use the linux dd command on wsl2 to burn a bootable usb?

我是一名狂热的 Linux 用户,被迫使用 Windows 进行工作。我获准在工作计算机上安装 WSL2 和 Ubuntu。我想在 WSL2 中使用 dd 刻录一个可启动 USB,但一直无法弄清楚如何获取该设备,因为 lsblk 不提供连接到计算机的外部块设备。我知道我可以用像 Rufus 这样的东西来做,但是因为它是一台工作电脑,所以我不能在电脑上得到类似的东西。

Whosebug上只有一个这样的问题,但是关闭了,没有给出答案。然而,它确实为我提供了开始寻找物理设备名称的线索。使用这个线索,我找到了这个问题的答案并想分享它,因为我不仅在 Whosebug 上找不到答案,而且在互联网上的其他任何地方都找不到答案。

PowerShell:

# I ran this command to get the DeviceID of my USB Thumbdrive (Mine came out to be
# \.\PHYSICALDRIVE 5, but yours may vary)
Get-WmiObject Win32_diskdrive | Select Caption,DeviceID,InterfaceType,Size | Where-Object {$_.InterfaceType -eq "USB"}

Ubuntu 20.04 终端:

# After I got the physical drive number from powershell (as I would do using lsblk in Linux) I
# formatted the drive using mkfs to ensure it would work before trying to use dd.
sudo mkfs.vfat -I \.\PHYSICALDRIVE5

# After a successful format, I was able to run dd as normal
sudo dd if=path/to/my/file.iso of=\.\PHYSICALDRIVE5 status=progress

mkfs.vfat问题的答案是,我有一个习惯,确保我使用的U盘格式化为FAT32。我想这不是必需的,但绝对是我经常采取的步骤。

谢谢@rowman,我不知道它已被弃用。从现在开始,我将使用 Get-CimInstance Win32_DiskDrive。比使用 Where-Object 调用格式化 Get-WmiObject 容易得多。