
Ubuntu 12.04 ディストリビューションのシステム ログを含む読み取り/書き込みパーティションのファイル システム ドライバーとして zfs-fuse を使用しようとしています。適切な構成ファイルを変更して、rsyslog をそこにリダイレクトすることに成功しました。ただし、起動時に、rsyslog は zfs-fuse ドライブがマウントされるずっと前に開始されるため、ディレクトリが作成され、ルート パーティションにログが記録され始めます。zfs-fuse が起動シーケンスの後半でドライブをマウントしようとすると、OS が稼働している / マウント ドライブにすでにファイルが存在するため、zfs-fuse はそこにドライブをマウントできません。rsyslog 構成ファイルを変更して別の場所にログを記録する前は、zfs-fuse はドライブを自動的に問題なくマウントしていました。
そこで私の質問は次のとおりです。
ドライブの zfs-fuse マウントを、rsyslog が起動する前のブート シーケンスに移動するにはどうすればよいでしょうか。rsyslog にすべてのブート情報を含めたいので、rsyslog を zfs-fuse の後に移動するだけではだめで、zfs-fuse を前に移動する必要があります。この問題を解決するにはさまざまな方法が考えられますが、もしあればエレガントな解決策を希望します。この件について Google でかなり検索しましたが、この問題を解決して解決策を投稿している人を見つけることができません。
何か助けていただければ幸いです
答え1
さて、7.5 か月後、ようやくそれを実行するクリーンな方法を見つけたので、投稿したいと思います。
Rsyslog は 12.04 でアップスタート ジョブとして構成されます。
zfs-fuse は、apt-get install でインストールされると、service zfs-fuse start コマンドをサポートするように自動的に設定されます。
これら 2 つの事実を使用して、次の操作を実行しました。
- /etc/init/rsyslog.conf の pre-start スクリプトの行の直後に "service zfs-fuse start" 行を追加しました。
- コマンドsudo initctl reload-configurationを実行しました
ここで、rsyslog が起動する前に、zfs-fuse サービスを強制的に起動して、zfs ドライブをマウントします。これで、zfs-fuse マウントで障害が発生しない限り、rsyslog が起動すると、zfs-fuse ドライブがマウントされて書き込みの準備が整い、ブート プロセスの最初からそこにログを記録できるようになると確信できます。