如何使用dd
命令在WSL中转储可移动磁盘的内容?
当我跑步时,
dd if=/mnt/d of=sdDump bs=512 count=1
我收到错误dd: error reading '/mnt/d': Is a directory
我按照steps shown here安装了磁盘:
sudo mkdir /mnt/d
sudo mount -t drvfs D: /mnt/d
这样做可以让我通过ls
查看磁盘上的文件,但运行dd
会产生上述错误。
答案 0 :(得分:4)
这是使用中的类别错误。 dd
不使用目录,它适用于文件。这些文件可以是device files(如Linux上的/dev/sda
或/dev/urandom
),也可以是常规文件(如echo foo >> myfile.txt
)。您尝试传递的内容是已挂载文件系统中的目录。
不幸的是,WSL似乎不支持访问您的块设备文件(即它没有/dev
)。您可以在问题跟踪器上关注this功能请求,以了解他们何时会添加支持。
答案 1 :(得分:1)
正如@ asad-saeeduddin所说,WSL没有块级访问,但这并不意味着您不能在Windows上使用dd!
我发现dd是与Windows版Git一起安装的工具集的一部分。安装后,您可以在 C:\ Program Files \ Git \ usr \ bin \ dd.exe
中找到它与/ dev / sda等效的Windows是\。\ PHYSICALDRIVE0,您可以使用以下命令找到本地计算机设备的正确ID(还返回扇区大小):
Get-WmiObject Win32_diskdrive | select Caption,DeviceID,BytesPerSector,InterfaceType,Size
答案 2 :(得分:0)
mount命令的典型用法是指定要挂载的内容(设备,在* nix上设备实际上只是一种特殊类型的文件)以及你想要挂载它的位置(目录)。 dd
命令需要某种类型的文件。在您的示例中,D:
是设备,因此这是您需要传递给dd
的参数:
dd if=D: of=sdDump bs=512 count=1
免责声明:我没有WSL经验,但几十年来我一直在使用mount
和dd
。