起動時に/etc/crypttabによって開かれるluksデバイスがあります。 lsblkは次のようになります。
sdc 8:32 1 114,6G 0 disk
└─luks-672dcc74-d002-47dc-b61b-525baf91dc7c 253:2 0 114,6G 0 crypt
次のようにデバイスを取り付けます。
pmount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
次のように削除します(両方とも機能します)。
pumount /dev/mapper/luks-672dcc74-d002-47dc-b61b-525baf91dc7c
pumount /media/mapper_luks-672dcc74-d002-47dc-b61b-525baf91dc7c
ただし、 pumount lsblk は次のようになります。
sdc 8:32 1 114,6G 0 disk
PumountがLuksデバイスをシャットダウンしたのはなぜですか? pumount のマニュアルページには次のものがあります。
Normally, pumount will not luksClose (see cryptsetup(1)) a device pmount did not open.
luksデバイスは、pmountではなく起動時に/ etc / crypttabによって開きます! pumountがluksデバイスを閉じるのはなぜですか?これはバグですか?
私はDebian Bullseyeを使っています。
ベストアンサー1
メモ:私は完全に初めてで、pumount
テストできるDebianのインストールもありません。私はDebianからソースコードを受け取りました。そしてそこで発見したことを元にとんでもない家庭をするようになるのに…
pumount
--luks-force
LUKSデバイスが開いていない場合(マンページですでに引用されているように)、デバイスを閉じるオプションがあります。
ところで、ソースコードを見ると実行にバグがあるようです。
したがって、pumount.c
解析されたいくつかのオプションは次のとおりです。
int luks_force = 0;
[...]
{ "luks-force", 0, NULL, 'L'},
[...]
case 'L': luks_force = 1; break;
...そうです!このオプションはluks_force = 1
変数を設定します。それ以外の場合はゼロに初期化されます。
しかし、それはまったく問題ではありません。なぜなら…変数はどこにも使われないからです。
これにはluks.c
次のコードがあります。
void
luks_release( const char* device, int force )
{
if(force || luks_has_lockfile(device)) {
spawnl( CRYPTSETUP_SPAWN_OPTIONS,
CRYPTSETUP, CRYPTSETUP, "luksClose", device, NULL );
luks_remove_lockfile(device);
[...]
luksClose
したがって、force
ロックファイルが存在するかtrueの場合、これが発生します。
この関数はpumount.c
次のように呼び出されます。
/* release LUKS device, if appropriate */
luks_release( device, 1 );
したがって、何をしてもforce
常に1に設定すると、LUKSデバイスはオフになります。
最後の行は、おそらくluks_force
1の代わりに変数を使用する必要がある場所です。