遅延理由

遅延理由

私は最近、Sony Vaioノートブックの新しい基本オペレーティングシステムとしてLinux Mint(19.3)を追加しました。

時々起動するのに時間がかかることがありますが、次のことがわかりましたjounrnalctl

Feb 11 10:45:11 notebook kernel: microcode: microcode updated early to revision 0x2f, date = 2019-02-17
Feb 11 10:45:11 notebook kernel: Linux version 5.3.0-28-generic (buildd@lcy01-amd64-009) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #30~18.04.1-Ubuntu SMP Fri Jan 17 06:14:09 UT
Feb 11 10:45:11 notebook kernel: Command line: BOOT_IMAGE=/@/boot/vmlinuz-5.3.0-28-generic root=UUID=8d4f6dfa-1d63-4507-b9e1-37d639dca309 ro rootflags=subvol=@ quiet splash vt.handoff=1
[...]
Feb 11 10:45:14 notebook dbus-daemon[1080]: [system] Activating via systemd: service name='org.freedesktop.hostname1' unit='dbus-org.freedesktop.hostname1.service' requested by ':1.12' (
Feb 11 10:45:14 notebook systemd[1]: Starting Hostname Service...
[...]
Feb 11 10:45:18 notebook systemd[1]: Started Update Manager automatic upgrades.
Feb 11 10:45:24 notebook wpa_supplicant[1085]: random: Cannot read from /dev/random: Resource temporarily unavailable
Feb 11 10:45:39 notebook dbus-daemon[1080]: [system] Failed to activate service 'org.freedesktop.hostname1': timed out (service_start_timeout=25000ms)
Feb 11 10:45:39 notebook NetworkManager[1086]: <info>  [1581414339.4088] hostname: hostname: hostnamed not used as proxy creation failed with: Fehler beim Aufruf von StartServiceByName f
Feb 11 10:45:39 notebook NetworkManager[1086]: <info>  [1581414339.4091] hostname: hostname changed from (none) to "notebook"
Feb 11 10:45:39 notebook NetworkManager[1086]: <info>  [1581414339.4104] dns-mgr[0x555fc095e1a0]: init: dns=systemd-resolved, rc-manager=symlink, plugin=systemd-resolved
Feb 11 10:45:39 notebook NetworkManager[1086]: <info>  [1581414339.4143] rfkill0: found WiFi radio killswitch (at /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/SNY5001:00/rfk
Feb 11 10:45:39 notebook NetworkManager[1086]: <info>  [1581414339.4155] rfkill2: found WiFi radio killswitch (at /sys/devices/pci0000:00/0000:00:1c.0/0000:02:00.0/ieee80211/phy0/rfkill2
Feb 11 10:45:39 notebook NetworkManager[1086]: <info>  [1581414339.4199] manager[0x555fc0968060]: rfkill: WiFi hardware radio set enabled
Feb 11 10:45:39 notebook NetworkManager[1086]: <info>  [1581414339.4200] manager[0x555fc0968060]: rfkill: WWAN hardware radio set enabled
Feb 11 10:45:39 notebook systemd[1]: Started Network Manager.
[...]
Feb 11 10:45:44 notebook dbus-daemon[1418]: [session uid=113 pid=1418] Successfully activated service 'ca.desrt.dconf'
Feb 11 10:45:44 notebook wpa_supplicant[1085]: random: Cannot read from /dev/random: Resource temporarily unavailable
Feb 11 10:45:44 notebook wpa_supplicant[1085]: random: Cannot read from /dev/random: Resource temporarily unavailable
Feb 11 10:45:44 notebook wpa_supplicant[1085]: random: Cannot read from /dev/random: Resource temporarily unavailable
Feb 11 10:45:44 notebook wpa_supplicant[1085]: random: Cannot read from /dev/random: Resource temporarily unavailable

...これは1448行から5199行まで続きます!

起動が完了した後、読み込み中にデータを取得できますが、ランダムな/dev/random初期化ははるかに遅れているようです。

Feb 11 10:46:27 notebook kernel: random: crng init done
Feb 11 10:46:27 notebook kernel: random: 7 urandom warning(s) missed due to ratelimiting

そこで何が起こったのか知っていますか?

10:45:14から10:45:39までのログメッセージは2つだけです。これが関連している可能性がありますか?

答え1

World Wide Webには、このトピックに関する多くの記事があります。簡単に言えば、/dev/randomLinuxの機器は他のオペレーティングシステムと比較して多少奇妙で文書化されていません。この問題を解決するために多くの試行錯誤を受けました。 28年のオペレーティングシステムカーネルの最新バージョンはまさに先月

遅延理由

必要な時間1番の種子これ擬似乱数ジェネレータLinuxでは、起動後にカーネルがキーボード、ネットワークインタフェース、ハードウェア乱数ジェネレータなどのソースからハードウェアランダム性をどれだけ吸収できるかによって異なります。 (仮想ハードウェアデバイスは、「外部世界」からのランダムな入力がはるかに少ないため、仮想マシンではこれが非常に難しいと悪名高いです。その後、ハードウェア乱数ジェネレータの可用性と信頼性、およびブートローダを高速化する副作用があります。)

/var/lib/systemd/random-seed/var/lib/urandom/random-seedこれは、以前のシャットダウン(システムオペレーティングシステム)または(システムオペレーティングシステムではなくオペレーティングシステム)からいくつかのシードデータを事前に準備し、起動時にこのデータをロードするユーティリティを介して改善することができます。

ただし、これらのユーティリティを使用するには、ユーティリティの実行中にこれらのシードファイルを含むボリュームに書き込むことができる必要があります。これは、疑似乱数ジェネレータが同じボリュームで再利用されないように、使用後すぐにシードデータを削除/交換することが重要であるためです。データを2回振りかけます。残念ながら、これは起動順序の初期にユーティリティを実行できないことを意味します。

ログメッセージの理由

これはあなたのために約1¼分の時間があることを意味します。

  • 以下を使用して/dev/urandom疑似ランダムデータを取得します。固定された既知のシードから生成された、これはランダム性を作成します。予測可能;
  • /dev/randomブロックモードで使用するとブロックされ、プロセスの実行が停止します。
  • /dev/random非ブロックモードで使用すると、EAGAIN「リソースを一時的に使用できません」という文字列とともにエラーコードが返されます。

wpa_supplicantこのうち3番目の作業をしているようです。どんどん。しかし、ログであまり明白でないのは、カーネルが特定のプログラムを/dev/urandom使用できる前に警告した「urandom warnings」です。だから、システムのいくつかのプログラム予測可能乱数は、これらのプログラムが何であるかに応じて大きな問題になる可能性があります。

状況を改善する

あなたのOS用のLinuxを構築している人(あなたのログによると、これはLinux 5.3.0-28の「共通」構成です)はx86-64プロセッサでより良い人生を作るための設定オプションをオンにすることができます(いくつかの以前のAMDプロセッサにはバグがあることを除く)。基本プロセッサ命令から)。カーネルがプロセッサをハードウェアランダムのソースとして信頼できるようにする構成CONFIG_RANDOM_TRUST_CPUオプションにより、擬似乱数ジェネレータのシーディングを高速化できます。

DebianのLinuxカーネルは、昨年Debian 10でこのオプションを有効にしました。しかし、私はUbuntuとMintのLinuxについてはよくわかりません。

追加読書

関連情報