GNU/LINUX
パーティションがLUKS
暗号化されフォーマットされたシステムでファイルでいっぱいのフォルダを「削除解除」する方法はbtrfs
*
?
Debian Stable (currently Bullseye)
マイコンピュータでは、すべてのデータがLUKS
暗号化されたパーティションにあります(/boot
.暗号化されたパーティションでLVMを使用して、実際のデータを含むbtrfsを**
使用してフォーマットされたさまざまなボリュームを構成します)。
だから私のディスク設定は次のようになります。
lsblk -o path,type,fstype,mountpoint
PATH TYPE FSTYPE MOUNTPOINT
/dev/sda disk
/dev/sda1 part ext2 /boot
/dev/sda2 part
/dev/sda5 part crypto_LUKS
/dev/sr0 rom
/dev/mapper/sda5_crypt crypt LVM2_member
/dev/mapper/vg-root lvm btrfs /
/dev/mapper/vg-var lvm btrfs /var
/dev/mapper/vg-swap lvm swap [SWAP]
/dev/mapper/vg-tmp lvm btrfs /tmp
/dev/mapper/vg-home lvm btrfs /home
私のパーティションの1つから電子メール( - 形式を使用していたのでテキストファイル)でいっぱいのフォルダ()を***
誤って削除しました。/home/USERNAME/mail/somefolderfullofimportantmessages
maildir
失われたファイルを修復するためのいくつかのツールが見つかりましたが、すべてextX
-filesystemsでのみ作業するなどの制限があります(例:extundelete
)またはイメージまたはパーティション全体(例:foremost
)または特定のファイル形式(例:testdisk
そしてphotorec
)。
私の場合、最も適切なツールはアプリですbtrfs restore
-注文する ****
かなり長い間使用方法に苦労した後regex
(または使用btrfs-undelete
- ツールここ)しかし、この方法では、フォルダパスから削除されていない一部のファイルのみを「再スキャン」でき、削除されたファイルは検索できません。
なぜこれが起こるのですか?LUKS
暗号化のためですか?もしそうなら:何をすべきか/できますか?
*
免責事項:バックアップがあり、そこからすべてを復元できましたが、このバックアップが存在しないことを証明します。はい、わかりますバックアップがなければ、自分の責任です。
**
はい、わかりました。使用できましたが、btrfs subvolumes
システムのインストールに使用した自動インストーラは、そのオプションを提供していませんでした。しかし、次のインストールではLVM
。
***
isync/mbsync
技術的には、私はリモートIMAP
フォルダ(私の管理制御の範囲外)をローカルフォルダと同期させました。しかし、何らかの理由で(私が理解していない)ツールは私のローカルフォルダが空だと思ってリモートフォルダに「すべてのアイテムを削除する」コマンドを送信します。次回同期を実行すると、ツールはリモートIMAP
フォルダが最新であると仮定したため、ローカルフォルダを削除しました。
****
外部ブートドライブなしでこれを行うのは難しいです。に切り替えtty
てアクセスするすべてのプロセスを終了してから(/home
を使用してlsof /home
)削除し、/home
(systemd
まだアクセスして/home
停止したくない一部のサービスをブロックした後)btrfs restore -Dv /dev/mapper/vg-home --path-regex '^/(|home(|/USERNAME(|/mail/(|/.*))))$' /tmp
コマンドを実行できるように-D
、--dry-run
削除した場合にのみ確認してください。誤ってシステムを爆破することはないでしょう。)