我正在编写一个Powershell脚本来制作驱动器的原始副本,但我一直无法找到完成此操作的方法。
在Linux上,我会使用'dd'来执行此副本。
有一些工具可以在Windows上执行此操作,但我无法直接从命令行控制。 (都有GUI界面)
是否有方法通过Powershell制作驱动器的物理副本?
感谢。
答案 0 :(得分:0)
您可能已经知道Windows上的cygwin
支持某些Linux命令,包括dd
。我曾经多次使用它来复制磁盘并将ISO加载到USB,它运行良好。
答案 1 :(得分:0)
我已经尝试了一段时间,我终于找到了一个很好的答案。
适用于Windows的Git附带了包括dd在内的整套GNU核心实用程序(已更新,而您可以分别找到)!
只需安装Windows的Git或解压缩可移植的版本,从git \ usr \ bin \的安装目录中即可找到所有GNU utils的二进制文件,包括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
返回的值似乎不起作用。
答案 2 :(得分:0)
Windows 10现在带有linux。适用于Linux的Windows子系统。您可以将其启用为功能。您甚至可以在1903和1909年获得带有真实内核的WSL 2:https://devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-september-2020/