Chr*_*nus 12 encryption bash mount paths veracrypt
在Windows我可以装入veracrypt加密的分区/磁盘通过批处理脚本,其采用的设备名称显示通过mountvol.exe
。这样的属性非常有用,因为重启会导致相对路径的改变(\Device\Harddisk1\Partition3
--> reboot --> \Device\Harddisk3\Partition3
)。
我在 Windows 上用于 veracrypt 卷的批处理脚本(缩写形式):
@echo
"C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\ /l z /m label=Encrypted_1 /q
"C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}\ /l f /m label=Encrypted_2 /q
[...]
pause
Run Code Online (Sandbox Code Playgroud)
我不知道是否存在可/v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\
用于 Linux 命令行的Windows 并行命令。我尝试了(徒劳)--mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
标志,因为mountvol.exe
卷名(可能)基于 UUID 号(blkid
虽然对于 难以察觉)。官方 veracrypt/truecrypt 文档允许 Linux 用户仅使用相对(可变)路径(/dev/sda3
--> reboot --> /dev/sdc3
)进行操作。由于不稳定,每次加载操作系统后都必须验证路径。
我的用于在 Linux 上安装 veracrypt 卷的 bash 脚本(缩写形式):
#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/sdq --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/sdz3 --slot=1 --verbose && echo "Encrypted_2"
[...]
Run Code Online (Sandbox Code Playgroud)
有谁知道在 Linux 上是否可以用绝对术语来描述 VeraCrypt 卷位置?
如果不可能,请提供实现相同目标的建议?(如:udev
?fstab
?)
mountvol.exe
识别GUID
,而不是UUID
上面写的。
我在下面详细阐述了David Foerster发布的答案,并使其对所提出的主题感兴趣的其他 Linux 用户更具描述性和清晰性。
根据我的研究,似乎对VeraCrypt卷的绝对路径的任务是不可能的(至少目前)(参见:由-ID,并通过路径上进入wiki.archlinux.org下持久块设备命名(1))。
但是,我们可以使用半持久性块设备命名。
/dev/disk/by-path/
取决于最短物理路径 ( 2 ),并随着控制器端口的切换 ( 3 )而变化。
要获取/dev/disk/by-path/
描述符,请键入:
ls -l /dev/disk/by-path/
Run Code Online (Sandbox Code Playgroud)
您可以使用获得的命名来挂载 VeraCrypt 卷:
veracrypt --mount /dev/disk/by-path/[by-path] --slot=6 --verbose
Run Code Online (Sandbox Code Playgroud)
/dev/disk/by-path/[by-path]
可以替换bash脚本中的相对路径:
#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/disk/by-path/[by-path1] --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/disk/by-path/[by-path2] --slot=1 --verbose && echo "Encrypted_2"
[...]
Run Code Online (Sandbox Code Playgroud)
/dev/disk/by-id/
根据设备序列号 ( 4 ) 创建。wiki.archlinux.org声明/dev/disk/by-id/
不能承受硬件变化,即设备插入到受不同子系统(5)影响的控制器端口的情况。另一方面,access.redhat.com声称/dev/disk/by-id/
即使设备被不同系统访问也可以维护 ( 6 )。因此,symlink
在/dev/disk/by-id/
应用的情况下似乎非常稳定。
要获取/dev/disk/by-id/
设备命名,请键入:
ls -l /dev/disk/by-id/
Run Code Online (Sandbox Code Playgroud)
现在,当你有正确的时候,它可以用来挂载 VeraCrypt 卷:
veracrypt --mount /dev/disk/by-id/[id] --slot=6 --verbose
Run Code Online (Sandbox Code Playgroud)
类似于第一段中提到的,/dev/disk/by-id/
可以在 bash 脚本中使用:
#! /bin/bash
#
echo "Encrypted_1" && veracrypt --mount /dev/disk/by-id/[id1] --slot=12 --verbose && echo "Encrypted_1"
echo "Encrypted_2" && veracrypt --mount /dev/disk/by-id/[id2] --slot=1 --verbose && echo "Encrypted_2"
Run Code Online (Sandbox Code Playgroud)
也许这对某人有帮助。
/dev/disk/by-id/
不够稳定,无法在重新启动后忘记更正安装脚本。
不幸的是,由于加密,加密容器内文件系统的 UUID 和标签无法访问,并且 TrueCrypt/VeraCrypt 容器本身不携带 UUID 或标签(或者至少 udev 不知道,与 LUKS 容器不同)。
Linux 中还有另一种足够稳定的存储卷标识符:磁盘 ID。你可以在...里找到它们:
/dev/disk/by-id/
Run Code Online (Sandbox Code Playgroud)
到目前为止,我从未注意到其中的符号链接有任何显着变化,因为名称是由