命令要求在只读文件系统上缺少 /run

命令要求在只读文件系统上缺少 /run

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 环境更新)。

相关内容