web-dev-qa-db-ja.com

WSLでddを使用する方法

ddコマンドを使用して、リムーバブルディスクの内容をWSLにダンプするにはどうすればよいですか?

走ると

dd if=/mnt/d of=sdDump bs=512 count=1

エラーdd: error reading '/mnt/d': Is a directory

ここに示す手順 に従ってディスクをマウントしました。

Sudo mkdir /mnt/d
Sudo mount -t drvfs D: /mnt/d

これを行うと、lsを介してディスク上のファイルを表示できますが、ddを実行すると上記のエラーが発生します。

7
Jet Blue

これは使用上のカテゴリエラーです。 ddはディレクトリでは機能せず、ファイルで機能します。ファイルは デバイスファイル (Linuxの/dev/sdaまたは/dev/urandomのような)、または通常のファイル(echo foo >> myfile.txtのような)にすることができます。あなたが渡そうとしているのは、マウントされたファイルシステムのディレクトリです。

残念ながら、WSLはブロックデバイスファイルへのアクセスをサポートしていないようです(つまり、/devがありません)。問題追跡システムで this 機能のリクエストをフォローして、サポートがいつ追加されるかを確認できます。

12
Asad Saeeduddin

@ asad-saeeduddinが言ったように、WSLにはブロックレベルのアクセス権がありませんが、Windowsでddを使用できないという意味ではありません。

Ddは、Git for Windowsと共にインストールされる一連のツールの一部であることがわかりました。インストール後、それはC:\ Program Files\Git\usr\bin\dd.exeにあります

/ dev/sdaに相当するWindowsは\。\ PHYSICALDRIVE0であり、次のコマンドを使用してローカルマシンのデバイスの適切なIDを見つけることができます(セクターサイズも返します)。

Get-WmiObject Win32_diskdrive | select Caption,DeviceID,BytesPerSector,InterfaceType,Size
1
Chirishman

Mountコマンドの一般的な使用方法は、マウントするものを指定することです(a device、* nixではdeviceは実際には特別なタイプのファイルです)。マウントしたい(ディレクトリ)。 ddコマンドは、あるタイプのファイルを必要とします。あなたの例では、D:deviceなので、これはddに渡す必要がある引数です。

dd if=D: of=sdDump bs=512 count=1

免責事項:WSLの経験はありませんが、mountおよびddを何十年も使用しています。

0
pcjr