システムの専門家によると、systemctl
の正しい場所は/usr/bin/systemctl
です。
https://lists.freedesktop.org/archives/systemd-devel/2019-August/043224.html
Ubuntuが/bin/systemctl
を使用するのはなぜですか?
関連: https://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge/
そのため、個別の/usr
パーティションを持つシステムの起動は、systemdではサポートされていません。より具体的には、/usr
がまだマウントされていないシステムへのルートの切り替えはサポートされていません。そのようなシステムでは、initramfsはルートを切り替える前に/
と/usr
の両方をマウントする必要があります。
そうは言っても、別の/usr
を使用した構成はほとんどsystemdシステムで機能し、以前のバージョンのsystemdではサポートされていないことを公式に宣言し、それらのセットアップの修正を拒否する前はほとんど機能していました。
(あなたはすでに /usr
マージのケース を参照しているので、これらのセットアップに固有の問題と、マージのためのモチベーションの修正についての詳細を読むことができます。)
歴史的に、別個の/usr
でシステムをサポートすることがある程度必要であったため、systemctl
を/usr
の下に置くか、その外に置くかを決定する必要がありました。このコンテキストで回答する主な質問は、/usr
がマウントに失敗し、システムを再度ブートするように修正する必要がある場合はどうなりますか? systemctl
が/usr
の下にある場合は使用できませんが、/bin
内にある場合は使用できます。システムを修正しようとしているときに、サービスの開始、停止、およびステータスのチェックを行う可能性が高い場合、ルートパーティションでシステムを配布することは理にかなっています。
しかし、繰り返しになりますが、/usr
をマージすることは、これに対する実際のソリューションです。 /usr
がマウントに失敗した場合、まだinitramfsを使用しており、内部のツールを使用して修正できます。最近のすべてのディストリビューションは、マージされた/usr
に切り替わるため、このソリューションは、ほとんどのLinuxセットアップで今すぐ実現されるはずです。