我正在编写一个小实用程序来管理已安装的驱动器,但是在安装加密磁盘时我遇到了一个小问题。该程序告诉我运行时没有可安装的文件系统:
echo "password" | hdiutil attach -stdinpass /dev/disk2s2
我尝试过使用mount_hfs,但mount_hfs只会弹出系统密码提示符。我想使用我的程序数据库,而不是Apple密钥链用于加密代码。我已经看到很多方法来完成这个过程,但在OS X Mavericks上,我不确定如何纠正错误。我也试过建议一个网页,删除“-stdinpass”参数,因为这对他们有效。
如何在OS X Mavericks上使用终端实用程序挂载加密磁盘。如果它有帮助,我正在测试它的磁盘是AES加密的。
以下是一个示例:
set passList to words of (do shell script "cat pwd.lst")
repeat with i in passList
do shell script "Testing password: " & i
do shell script "echo " & quoted form of i & " | hdiutil attach -stdinpass /dev/disk2s2"
end repeat
答案 0 :(得分:1)
hdiutil
用于管理磁盘映像,而不是本机卷 - 它有一些与本机卷一起使用的功能,但这不是其中之一。通常,您希望diskutil
用于处理实际磁盘。对于加密卷,它们由CoreStorage管理,因此您实际需要diskutil cs
及其子命令。您需要的命令如下:
echo "password" | diskutil cd UnlockVolume 3F34630B-FAD5-4210-8812-973C158C9892 -stdinpass
...其中3F34630B-FAD5-4210-8812-973C158C9892是您要安装的卷的UUID。如果你不知道UUID,只是/ dev条目,你还有一些工作要做。 Core Storage设置为采用一个或多个物理卷(例如/ dev / disk2s2),将它们合并到逻辑卷组中,然后在该组中创建逻辑卷。您可以使用以下命令获取逻辑卷组的UUID:
lvguuid="$(diskutil info /dev/disk2s2 | awk '/LVG UUID:/ {print $3}')"
不幸的是,你必须找出逻辑卷UUID,我想这样做你必须运行diskutil cs list
(可能带有-plist
选项),并解析结果的混乱,寻找该组中的逻辑卷。 ICK。