私たちは、ネットワークからインストールされ、必要なパッケージの選択と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回実行して次のことを行う必要があります。
mountall
を実行しますifup -a
を実行しますその後、すべてがうまく機能します。 3つのステップはすべて、予想よりはるかに時間がかかります(それぞれ約1分)。終了後、起動には数秒しかかかりません(マシンにはSSDが搭載されています)。
動作中のシステムと壊れたシステムの/etc
ディレクトリの違いを注意深く調べたところ、解決策が見つかりました。
問題は、nss_initgroups_ignoreusers
に/etc/ldap.conf
行がないことです。この行はすべてのローカルユーザーをリストし、これらのユーザーを検索するときにシステムがLDAPディレクトリにアクセスするのを防ぎます。この行は、/usr/sbin/nssldap-update-ignoreusers
によって各ブートで自動的に作成されますが、私のインストール方法では、最初のブートで欠落していました。そのため、この最初の起動中に、システムはネットワーク接続が確立される前にLDAPからユーザー情報を検索しようとしました。もちろんこれは失敗しました。
インストールと最初のブートの間に実行するスクリプトに/usr/sbin/nssldap-update-ignoreusers
への呼び出しを追加しましたが、すべて正常に動作するようになりました。