私は何かをしました(何を思い出せません)。ログインすると、詳細を入力した直後に、マウスカーソルで背景が表示され、何も起こりません。次に、約20秒(おそらくタイムアウト)後、ハードドライブがロードを続け、デスクトップを取得します。
bootchart2
をインストールしてみました:
apt-get install bootchart2 pybootchartgui
私は彼らの指示に従いました ここ そして次の行を/etc/default/grub
に追加しました:
initcall_debug printk.time=y quiet init=/sbin/bootchartd ...
update-grubを実行すると、次のエラーメッセージが表示されます。
/usr/sbin/grub-mkconfig: 12: /etc/default/grub: initcall_debug: not found
このタイプの問題は、デバッグが難しい場合があります。手始めに、ネットワークまたはHDDアクセスの問題のいずれかにそれを分離することは役に立ちます。
これは、犯人が残るまで潜在的な原因を排除することによって行われます。
始める前に、インストールが必要になる可能性のあるいくつかのアプリケーションを利用します。これを行う方法については詳しく説明しません。アプリケーションのインストール方法を知っていることを前提としており、特定の手順を実行する必要がある場合にインストールします。
また、システムのコンソールを利用します。アクセスするには、次のようにします。 Ctrl + Alt + F2。同様のキーボードコンボを使用して、グラフィカルデスクトップがあるプライマリディスプレイに戻すことができます。それがこの重要な組み合わせです。 Ctrl + Alt + F1。
アプリnethogs
を使用することから始めるのが良いでしょう。ネットワークにアクセスしようとしているアプリケーションが表示されるので、私はそれを使用するのが好きです。おそらく、これらのアプリケーションの1つがハングを引き起こしています。
nethogs
を使用する前に、システムで使用されているネットワークインターフェイスを特定する必要があります。これが私のラップトップにあるものです:
$ ip -o link show | cut -d" " -f2
lo:
em1:
wlp3s0:
virbr0:
virbr0-nic:
vboxnet0:
私のワイヤレスはwplp3s0
。イーサネットはem1
。 WiFiから始めましょう。
$ Sudo nethogs wlp3s0
このタイプの出力になります。
NetHogs version 0.8.0
PID USER PROGRAM DEV SENT RECEIVED
979 saml ../bin/google-chrome-stable wlp3s0 1.943 2.547 KB/sec
2376 saml /usr/bin/Pidgin wlp3s0 0.000 0.000 KB/sec
21789 saml ssh wlp3s0 0.000 0.000 KB/sec
9618 saml ssh wlp3s0 0.000 0.000 KB/sec
10267 saml ssh wlp3s0 0.000 0.000 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 1.943 2.547 KB/sec
データを受信せずに大量のSENT
データを持っていることに偏っているように見えるいくつかのPIDに問題を切り分けたら、さらに深く掘り下げてstrace
を使用する必要があります。このネットワークアクセスのどの側面がハングアップしているかを確認してください。これを実現するには、次のようにstrace
を使用できます。
$ strace -s 2000 -o somepid.log -p <PID>
どこ <PID>
は、nethogs
から識別されるプロセスIDの1つです。
問題がネットワークにあるのではないと判断した場合、次に調査する場所は、プロセスでHDDへのアクセスに問題があり、何らかの方法でブロックされているかどうかを確認することです。
これはデバッグが難しい場合がありますが、lsof
、strace
、fatrace
などのツールを使用して検索をさらに絞り込むことができます。
何かが疑わしいかどうかをかなり迅速に判断できる場所の1つは、ログイン時にアプリケーションの起動を無効にすることです。これをGNOMEで行うには、次のダイアログを起動します。gnome-session-properties
。
このダイアログ内で、疑わしいと思われるすべてのアプリケーションを無効にし、再起動を開始して問題が解決するかどうかを確認します。