
ext4ファイルシステムで暗号化しようとしていますfscrypt
が、不変に設定されたファイルを(を使用して)暗号化しましたchattr +i
。今暗号鍵を失ったfscrypt
。
ファイルを削除したいが削除しようとすると、次のエラーが発生します。
# rm foo
rm: cannot remove 'foo': Operation not permitted
変更可能にしようとすると、次のようになります。
# chattr -i foo
chattr: Required key not available while reading flags on foo
したがって、ファイルは変更できず、暗号化のためにそのプロパティを変更できないため、ファイルを削除できないと思います。どんな提案がありますか?
編集する:
以下を試しましたが、動作しません。
- Live USBのファイルを削除/修正します。同じエラーが発生します。
- Ángelの提案に従って機能を削除して試してください
encrypt
。fsck
何らかの理由でエラーは発生しません。
findmnt
(testdir
含む)とファイルシステム属性の出力foo
:
$ findmnt --target testdir
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda4 ext4 rw,relatime
# tune2fs -l /dev/sda4 | grep "Filesystem features"
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
答え1
ファイルシステムをアンマウントした後、を使用してファイルを削除できますdebugfs -w -R "rm path_to_file" /dev/sda1
。
答え2
最も簡単な方法は、新しいext4パーティションをフォーマットして再起動することです。しかし、これはあなたにとって不快かもしれないことを理解しています。
パーティションが/ dev / sda1にあると仮定すると、ファイルシステムがマウントされていない場合は、次のことを試みます。
debugfs -w -R "feature -encrypt" /dev/sda1
fsck.ext4 /dev/sda1
debugfsコマンドはext4ファイルシステムから暗号化機能を削除し、次のfsckはすべての暗号化されたディレクトリをエラーとして検出し、それらを削除する必要があります。削除されなくても暗号化フラグが消えてコンテンツがゴミになると予想されるため、これを不変にし、一般的な方法で削除できる必要があります。