cryptsetup
我正在尝试使用 squashfs 在嵌入式系统上运行命令 ( )。它需要/run
该目录,但该目录不存在,而且由于它是只读的,我无法创建它。
我有一台安装了 asuswrt-merlin 的华硕路由器 ( linux-2.6
)。我已经安装了恩特威尔下载 cryptsetup,并尝试使用它来加密连接的硬盘:
$ cryptsetup --key-size 256 luksFormat /dev/sdb1
其结果是:
...
Enter passphrase for /dev/sdb1:
Verify passphrase:
Locking aborted. The locking path /run/cryptsetup is unusable (not a directory or missing).
Failed to acquire device lock.
Cannot format device /dev/sdb1 in use.
cryptsetup
我在手册页中没有看到任何强制或跳过/更改锁文件目录的内容,因此陷入困境。
这指导我正在按照步骤进行设置,但根本没有提到这个问题,而且有点过时了。
有没有办法伪造这个目录,或者cryptsetup
我可以使用一些参数来绕过它,或者其他一些选择?
请注意,/var/run
存在,但由于它是只读文件系统,我无法对其进行符号链接。而且由于/run
不存在,我无法(据我所知)将 tmpfs 挂载到它。
答案1
您有这个选项cryptsetup
,但是听起来有风险。
--disable-locks
Disable lock protection for metadata on disk. This option is
valid only for LUKS2 and ignored for other formats.
WARNING: Do not use this option unless you run cryptsetup in a
restricted environment where locking is impossible to perform
(where /run directory cannot be used).
另一种解决方法是chroot
- 如果您的路由器有 USB 端口,您可以连接 4GB 闪存驱动器,这样可能就有足够的空间来复制所有cryptsetup
想要的内容。不过,此时您可能只需chroot
在其上安装 Debian,然后您就会拥有执行任何操作所需的所有工具(只要您保持 chroot 环境更新)。