web-dev-qa-db-ja.com

/ tmpがないため、14.04インストール後の起動に失敗する

私たちは、ネットワークからインストールされ、必要なパッケージの選択とLDAP認証のセットアップにカスタムインストーラー構成を使用する、Ubuntu(以前の12.04)の教育機関全体のインストールを行っています。それ以外は、通常のUbuntuです。

現在、このインストール手順を14.04にセットアップしようとしています。ネットワークからの構成で正常にインストールできますが、最初の起動は/tmpが利用できないというメッセージで失敗します。その時点では、マシンはキーを押しても応答しません(したがって、スキップしたり、手動で回復したりすることはできません)。起動プロセスも非常に遅くなります(/ tmpに関するメッセージが表示されるまで1分以上かかります)。

私はそれが役立つ回避策を見つけました。インストール後、リカバリモードで1回起動する必要があります。リカバリメニューで、network(パーティションをマウントしてネットワークを構成する)を選択してから、resumeを選択する必要があります。これでシステムが正常に起動し、その後の起動も(リカバリモードなしで)正常になります。したがって、手動での修正は行われず、「特別な」ブートが1回行われます。

リカバリメニューのnetworkステップをスキップしてresumeに直接進むと、機能しません。 networkステップの直後に(resumeに移動せずに)再起動すると、機能しません。

手動で1回行って、回復メニューからルートシェルに入りましたが、その時点ではすべてが正常に見えました(networkステップを実行する前と後の両方)。

networkステップを実行する前後に/etc/varを比較しましたが、大きな違いはありませんでした(予想どおりDHCPリースと/varでログイン)。

さて、私の質問は、この起動中に通常の起動とは異なることは何ですか?私は、最初の起動時にいくつかのインストール作業が残っていると思いますが、これらは通常の起動ではどういうわけか機能しませんが、何ができるのでしょうか?リカバリメニューからnetworkステップを手動で実行すると、いくつかの順序が変更され、問題が解決する場合がありますか?

インストールの最後に、最初のブートの前にこれらの問題を修正できますか(とにかくその段階でスクリプトを実行します)、すべてが正常に機能しますか?

これらの問題をデバッグし、役立つ情報を提供するにはどうすればよいですか?起動中にどのファイルが変更される可能性があり、興味深い可能性がありますか?問題と回避策の両方を再現できるため、必要なだけ情報を提供できます。

サイト全体の調整は、LDAP認証とNFSホームディレクトリにのみ影響し、ブートプロセスやパーティションには影響しません。インストール中にルートパーティション(ext4)が作成され、スワップパーティションが作成されます。それ以上のパーティションはありません。これはレガシーブートです(UEFIなし)。

編集:さらにデバッグしました。インストール後、次の手順を1回実行して次のことを行う必要があります。

  1. 復旧モードで起動し、ルートシェルを起動します
  2. mountallを実行します
  3. ifup -aを実行します

その後、すべてがうまく機能します。 3つのステップはすべて、予想よりはるかに時間がかかります(それぞれ約1分)。終了後、起動には数秒しかかかりません(マシンにはSSDが搭載されています)。

2
Philipp Wendler

動作中のシステムと壊れたシステムの/etcディレクトリの違いを注意深く調べたところ、解決策が見つかりました。

問題は、nss_initgroups_ignoreusers/etc/ldap.conf行がないことです。この行はすべてのローカルユーザーをリストし、これらのユーザーを検索するときにシステムがLDAPディレクトリにアクセスするのを防ぎます。この行は、/usr/sbin/nssldap-update-ignoreusersによって各ブートで自動的に作成されますが、私のインストール方法では、最初のブートで欠落していました。そのため、この最初の起動中に、システムはネットワーク接続が確立される前にLDAPからユーザー情報を検索しようとしました。もちろんこれは失敗しました。

インストールと最初のブートの間に実行するスクリプトに/usr/sbin/nssldap-update-ignoreusersへの呼び出しを追加しましたが、すべて正常に動作するようになりました。

0
Philipp Wendler