Squashfsを使用して組み込みシステムでコマンド(cryptsetup
)を実行しようとしています。 /run
が必要ですが、そのディレクトリは存在せず、読み取り専用であるため作成できません。
Asuswrt-merlinがインストールされたASUSルーターを持っています(linux-2.6
)。 Entware をインストールして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をマウントすることはできません。
このオプションは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
が必要とするすべてのものをコピーするのに十分なスペースがあります。その時点で、Debian chroot
をセットアップするだけで、(chroot環境を更新している限り)やりたいことを行うために必要なすべてのツールを手に入れることができます。