システムに、/etc/mnttab への書き込みに関する障害があります。/etc を含むファイルシステムが読み取り専用にマウントされているか、またはマウントされていない可能性があります。
このファイルが存在するかどうか、およびルートによる書き込みが可能かどうかを確認します。いずれも正しいなら、/etc ファイルシステムがマウントされていること、および読み取り専用ではなく、読み取り/書き込みモードでマウントされていることを確認します。
通常、このメッセージは、システムに、/home にマウントされたローカルファイルシステムがあることを示します。通常、/home は、オートマウンタがユーザーのホームディレクトリをマウントする場所です。
システムがオートマウンタを実行しているときは、ローカルファイルシステムを /home ディレクトリにマウントしないでください。/disk2 など、別のディレクトリにマウントします。ほとんどのシステムでは、新規のディレクトリを作成することになります。オートマウンタの auto_home エントリを変更することもできますが、前者の解決方法の方がより簡単です。
RFS に特有のエラーです。このエラーは、リソースがまだリモートマシンによってマウントされているうちに RFS を停止しようとした場合、あるいは現在リソースをマウントしているリモートマシンを除外したクライアントリストで、リソースを再公開しようとした場合に発生します。
このエラーの記号名は、ESRMNT、errno=69 です。
このメッセージは、誰かが、ルート用のデフォルトのログインシェルを、システムに存在しないプログラムに変更したことを示します。たとえば、/etc/passwd 内の最後のコロンで区切られたフィールドが /sbin/sh から存在しない /usr/bin/bash に変更された可能性があります。または、行末に余分な空白が付けられている可能性があります。結果的に、root としてログインしたり、ユーザーを root に切り替えたりすることができなくなるため、この問題を直接解決できません。
唯一の解決方法は、別の媒体からシステムをリブートして、パスワードファイルを編集し、この問題を解消することです。sync(1M) を何度か呼び出してから、Stop-A と入力するかまたはリセットボタンを押してマシンを停止します。プロンプトで boot cdrom -s と入力して、CD-ROM、ネットワーク、またはフロッピーディスクからシングルユーザーとしてリブートします。
システムが立ち上がって # プロンプトが表示されたら、下記に示すような mount(1M) コマンドを使用して、オリジナルの root パーティションに対応するデバイスをマウントします。次に、新たにマウントしたシステムのパスワードファイルでエディタを実行します (端末のサポートがない場合は ed(1) を使用します)。
# mount /dev/dsk/c0t3d0s0 /mnt # ed /mnt/etc/passwd |
「No shell」の障害が発生しないようにするには、パスワードファイルを編集する際には admintool または /usr/ucb/vipw を使用するように習慣付けます。これらのツールを使用すると、システムが使用不能になるようなパスワードエントリに変更することが難しくなります。