[英]Windows Powershell command line equivalent of dd
我正在編寫一個 Powershell 腳本來制作驅動器的原始副本,但我一直無法找到完成此操作的方法。
在 Linux 上,我將使用“dd”來執行此復制。
有一些工具可以在 Windows 上執行此操作,但我無法直接從命令行控制。 (都有GUI界面)
有沒有辦法通過 Powershell 制作一個驅動器的物理副本?
謝謝。
我自己已經嘗試這樣做了一段時間,我終於找到了一個很好的答案。
適用於 Windows 的 Git 附帶一整套 GNU 核心實用程序(已更新與您可以單獨找到的內容相比),包括 dd!
只需安裝適用於 Windows 的 Git 或提取便攜式版本,從 git\\usr\\bin\\ 的安裝目錄中,您將找到所有 GNU 實用程序的二進制文件,包括 dd(已測試工作)
由於 \\dev\\sda\\ 不是一個東西,所以關於在 Windows 中使用的一些進一步說明:
$DiskDrives = Gwmi Win32_diskdrive | select DeviceID,BytesPerSector,Index,Caption,InterfaceType,Size,TotalSectors,SerialNumber | Out-GridView -OutputMode Multiple -Title 'Select Source Drive(s)'
$BaseOutputPath = 'D:\'
$DiskDrives | %{
. ('C:\Program Files\Git\usr\bin\dd.exe if={0} of={1} bs={2}' -f $_.DeviceID,(-join($BaseOutputPath,(-
join($Env:ComputerName,$_.Index)),'.img')),$_.BytesPerSector)
}
包含的文件名邏輯只是一個占位符,如果您希望它提示您輸入文件名/路徑,您可以使用對Read-Host
的調用替換該括號。
這有點煩人,但您確實必須使用 WMI,因為Get-Disk
返回的值似乎不起作用。
您可能已經知道 Windows 上的cygwin
支持一些 Linux 命令,包括dd
。 我曾多次使用它來復制磁盤並將 ISO 加載到 USB,並且它運行良好。
Windows 10 現在帶有 linux。 適用於 Linux 的 Windows 子系統。 您可以將其作為一項功能啟用。 您甚至可以在 1903 年和 1909 年獲得帶有真實內核的 WSL 2: https : //devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-september-2020/
Get-CimInstance -ClassName Win32_DiskDrive | Format-List -Property DeviceID,BytesPerSector,Index,Caption,InterfaceType,Size,TotalSectors,SerialNumber
跟進@Chirishman 的回答,對於 Powershell 7.2, Gwmi
可能從 powershell 中丟失。
獲取DeviceId
和其他信息的替代命令如上所述可用。
然后你可以使用dd if={DeviceId} of=<target_file>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.