数日前、このブログでsystemdバージョン256のリリースについてお伝えしました。このバージョンでは多くの変更点や新機能が導入されましたが、中でもrun0ユーティリティは今回のリリースの目玉と言えるでしょう。
systemd 256について言及した理由は、修正版であるsystemd 256.1のリリースが発表されたためです。このバージョンは、バージョン256で発生した重大な問題を解決するためにリリースされました。
この問題は、 systemd-tmpfiles --purgeコマンドを実行した際に、/home パーティションの内容が正しく削除されないという問題を引き起こしました。本来、このオプションはtmpfiles.d 内の設定によって作成されたファイルとディレクトリを削除することを目的としていましたが、実際の動作はドキュメントやユーザーの期待と一致しませんでした。
具体的な問題点は、ユーティリティ内の「tmpfiles」という名前が誤解を招くものであったことです。なぜなら、`--purge`オプションは一時ファイルを削除するだけでなく、 `tmpfiles.d`の設定によって自動的に作成されたディレクトリやファイルにも影響を与えていたからです。これには、`/home`内のホームディレクトリなど、データディレクトリの自動作成も含まれていました。
例えば、/usr/lib/tmpfiles.d/home.conf というファイルは/home ディレクトリ内のディレクトリ構造を作成する役割を担っていましたが、 systemd-tmpfiles --purge を誤って使用したことで、一時ファイルのみをクリーンアップするはずだったのに、これらのディレクトリとその内容が削除されてしまいました。
そのため、systemd 256.1 の修正バージョンは、ユーザーから報告されたこれらの不一致や問題を解決し、-purge 機能を本来の目的に適切に調整して、一時ファイルのみを削除し、ディレクトリ構造に影響を与えないようにするためにリリースされました。 tmpfiles.d の構成によって作成されます。
systemd-tmpfiles とパーティション内のディレクトリの誤った削除に関するインシデントについて言及する価値があります。 /home これは残念な状況であり、議論を引き起こし、systemd の実装に重大な修正が加えられました。
のルートを含む多くの警告メッセージが表示され始めました。
/home(修正時刻を復元できませんでした...?)一時クリーンアップ ツールはホーム ディレクトリで何をしますか?それは良いことではありません。心臓の鼓動が早くなり、Ctrl+C をできるだけ早く押しました。私の個人ディレクトリのかなりの部分が削除されていることがわかりました。幸いなことに、実際のデータではなく構成ファイルから始まっているようですが、何か重要なものを見落としているかどうかはまだわかりません。後でデータを復元するためにマシンの電源を切りました
extundelete(ところで、それは機能しませんでした。何らかの理由ですぐにクラッシュします。バックアップはありますが、少し古く、ドライブがいっぱいになるのが早すぎます)。
Microsoftのsystemd開発者であるルカ・ボッカッシ氏の最初の対応は、この意図しない削除によって影響を受けたユーザーの不満と困惑を反映していた。ドキュメントによれば、すべてのファイルとディレクトリを無差別に削除するはずだった機能が、実際には重要なシステム構造に影響を与えたことが問題視された。
広範な議論と検討の後、それが認められました の行動 systemd-tmpfiles --purge 誤りであり、是正措置が取られました.
当初はこのオプションを完全に削除することが検討されていました --purgeですが、特定の構成に直接関連付けられたファイルとディレクトリのみに影響を与えるように範囲を制限することにしました。 tmpfiles.d/。この変更により、コマンドは削除対象のものだけを削除するようになり、ファイル システムの他の領域に対する望ましくない副作用が回避されます。
問題があるのはドキュメントです。技術的に言えば、オプションが何をするのかについては説明していますが (まあ、私はここのアーキテクチャについてはあまり知りませんが)、オプションがなぜそのような動作をするのかについては説明していません。ドキュメントを参照しているだけでは、3 つのオプションはすべて同じことを行うように見えます。つまり、一時ファイルをクリーンアップします。
--purgeすべてのファイル(ユーザーデータを含む)を削除すると述べているため、「より完全」であるように見えます。
さらに、 systemd-tmpfiles ユーザーマニュアルが更新されました オプションのより正確な説明を提供するため --purge そして、その誤った使用によって起こり得る結果について明確に警告すること。
最後に、同様の事態を避けるために、必要なアップデートを実施することをお勧めします。詳細については、以下のリンクをご覧ください。