作为详细内容在这里,该hdparm
工具在 Cygwin 上已经有一段时间没有得到积极维护了。这导致目前没有工具可以执行固件级安全擦除和块擦除 ATA 命令,这些命令指示 PATA 或 SATA 驱动器的固件擦除驱动器。
这些固件级擦除被广泛认为是擦除现代驱动器最安全、最可靠的方法——在 SSD 上,仅有的这样做是安全的,因为磨损均衡等功能使正常的零填充变得不可靠。本质上,这意味着——至少在 Cygwin 上——目前决不安全擦除 SSD。
在这种情况下,我最近遇到了打开海箱一套实用程序,由 Seagate 开发,但是开源且设计用于任何 SATA、SAS 或 NVMe 驱动器。openSeaChest 似乎定位能够替代hdparm
和之类的工具sg3_utils
,并且可以用来运行 ATA 固件命令,如安全擦除和块擦除等等。
我如何构建该套件的最新版本以便可以在 Cygwin 中使用其二进制文件?
答案1
为 Cygwin 和 Windows 编译 openSeaChest 实用程序
安装管理系统2并运行MSYS2 MinGW 64位终端
运行
pacman -Syu
并安装所有更新,忽略有关 Cygwin.dll 不匹配的任何警告再次打开MSYS2 MinGW 64位终端并
pacman -Syu
再运行一次获取用于编译 minGW w64 程序的 minGW-w64 工具链:
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
当系统询问要安装哪些软件包时,请将所有软件包输入为一个范围。例如,如果列出的最高软件包是 19,请输入
1-19
。将
C:\msys64\usr\bin
和添加C:\msys64\mingw64\bin
到您的 Windows PATH(您可能需要重新启动)获取
git
及其依赖项:pacman -S --needed git
获取项目当前分支的列表:
git ls-remote --heads https://github.com/Seagate/openSeaChest.git | sed 's?.*refs/heads/??'
要克隆
release/Release-20.11
分支并cd
进入它(替换为您选择的分支):git clone --recurse-submodules --branch release/Release-20.11 --single-branch https://github.com/Seagate/openSeaChest.git openSeaChest && cd openseaChest
获取并更新每个子模块:
git submodule foreach 'git config remote.origin.fetch refs/heads/*:refs/remotes/origin/*' git submodule foreach 'git fetch' git submodule foreach --recursive 'git checkout release/Release-20.11'
最后,进入
Make/gccWin/
目录并开始构建实用程序:cd Make/gccWin/ && make -f Makefile.gccWin
编译后的可执行文件将位于openseachest_exes
目录中。您可以安全地删除所有以数字结尾的文件 - 这是过时的举措由原始开发人员创建的构建过程,并且计划很快被删除。
要使用剩余的二进制文件,请将它们移动到 Cygwin PATH 中的某个位置,例如/usr/local/bin
。我还建议重命名他们从冗长的openSeaChest_像这样:
$ ls
openSeaChest_Basics.exe
openSeaChest_Configure.exe
openSeaChest_Erase.exe
openSeaChest_Firmware.exe
openSeaChest_Format.exe
openSeaChest_GenericTests.exe
openSeaChest_Info.exe
openSeaChest_Logs.exe
openSeaChest_NVMe.exe
openSeaChest_PassthroughTest.exe
openSeaChest_PowerControl.exe
openSeaChest_SMART.exe
openSeaChest_ZBD.exe
$ rename "openSeaChest" "osc" *.exe
osc_Basics.exe
osc_Configure.exe
osc_Erase.exe
osc_Firmware.exe
osc_Format.exe
osc_GenericTests.exe
osc_Info.exe
osc_Logs.exe
osc_NVMe.exe
osc_PassthroughTest.exe
osc_PowerControl.exe
osc_SMART.exe
osc_ZBD.exe