まず、私の意図は、GNU/Linux ディストリビューションを含むポータブルで起動可能な USB ドライブを作成することです。具体的には、squashfs読み取り専用ルート ファイルシステムで Arch Linux を使用したいと考えています。
squashfs イメージは、稼働中の VM のスナップショットに基づいています。ssh などのサービスを備えた基本システムは、期待どおりにすぐに使用できます。しかし、systemd (systemctl start gdm) 経由で gnome を起動しようとすると、黒い画面しか表示されません (おそらく X サーバーは起動しましたが、gdm のロードに失敗します)。何が起こっているのかをすでに把握しようとしましたが、正確な問題を特定できませんでした。
- ホームディレクトリは書き込み可能です
- /tmp は書き込み可能です
- /var/log は書き込み可能です
- とにかく /var/run と /run は書き込み可能です
/var/log/gdm は作成されますが、空のままです。他のファイルへの書き込みアクセスが必要なモジュールはどれですか? ドキュメントはありますか?strace などに意味があるのは何ですか?
私が望むのは、unionfs のような回避策を使用する代わりに、問題の根本を知り、それを修正することです。助けやヒントをありがとう!
関係ありませんが、なぜこれを行う必要があるのか 疑問に思うかもしれない人のために、考慮すべき点をいくつか示します。
- 安定性- システム ファイルを変更できないため、システムを台無しにすることはできません (もちろん、ドライブに偽のファイルを直接書き込まない限り)。
- ストレージ- ファイルが圧縮されるため、より多くのデータがドライブに収まります
- パフォーマンス- ほとんどの USB ドライブの I/O は遅いため、圧縮すると I/O 速度が向上します
- 移植性- 読み取り専用ストレージに特別な処理はありません。CD やその他の読み取り専用テクノロジにコピーしても、書き込み可能なディスクと同じように機能します。
アップデート
問題は実際には /var/lib/gdm にあることがわかりました。GDM はそこにあるファイルにアクセスしようとしましたが、(静かに) 失敗し、黒い画面が表示されました。