시작 메시지가 나타날 때까지 시작 프로세스가 느립니다.

시작 메시지가 나타날 때까지 시작 프로세스가 느립니다.

두 PC 모두에서 최신 MINT Linux Vanessa(Ubuntu 22.04 LTS)를 실행하고 있는데 부팅 시간도 똑같이 길어졌습니다. 모든 팁과 요령을 따랐지만 아직 해결책을 찾지 못했습니다. 두 설치 모두 BIOS 기반이며 EFI 부트로더가 없습니다.

  • 모든 부팅 메시지를 볼 수 있도록 grub 구성에서 nosplash 및 Quiet을 제거했습니다.
  • 부팅 메뉴에서 옵션을 선택한 후 약 1시간 정도 소요됩니다.20초첫 번째 시작 메시지가 화면에 나타납니다. 이것이 바로 내 문제입니다. 이 단계에서는 무슨 일이 일어나는가?
  • 각 시작 단계에 소요되는 시간을 이해하는 데 유용한 모든 도구는 실제로 도움이 되지 않습니다. systemd-analyze에 따르면 시작하는 데 약 18초가 소요되지만 처음 20초는 포함되지 않은 것 같습니다.
  • 20초 지연은 콜드 스타트 ​​또는 최대 절전 모드 해제와 관련이 없습니다.
  • 부팅 옵션에 pci=noaer,nomsi를 추가하는 것과 같은 몇 가지 팁을 따랐지만 성공하지 못했습니다.

내 질문은: 어떻게 시작 프로세스 속도를 높일 수 있습니까? 현재는 약 45초 정도 소요되지만(별로 눈에 띄지는 않음), 시작하는 동안 실제로 무슨 일이 일어나고 있는지 정확하게 이해하면 18초밖에 걸리지 않을 수도 있습니다.

다음은 몇 가지 정보입니다.

Output of systemd-analyze 
Startup finished in 9.311s (kernel) + 8.854s (userspace) = 18.166s 
graphical.target reached after 8.846s in userspace



Output of systemd-analyze blame
4.211s NetworkManager-wait-online.service
3.463s grub-initrd-fallback.service
2.312s systemd-udev-settle.service
1.103s dev-sda4.device
1.013s [email protected]
 844ms blueman-mechanism.service
 634ms influxdb.service
 570ms cups.service
 501ms networkd-dispatcher.service
 421ms systemd-resolved.service
 374ms udisks2.service
 311ms accounts-daemon.service
 294ms avahi-daemon.service
 288ms ModemManager.service
 277ms bluetooth.service
 251ms ubuntu-system-adjustments.service
 238ms NetworkManager.service
 226ms apparmor.service
 213ms alsa-restore.service
 200ms systemd-timesyncd.service
 199ms systemd-logind.service
 195ms mono-xsp4.service
 188ms zfs-load-module.service

많은 정보가 있지만 아래에 dmesg 출력의 첫 번째 부분을 추가했습니다. 좋은 아이디어를 제공해 주셔서 감사합니다!

[    0.000000] microcode: microcode updated early to revision 0x2f, date = 2019-11-12
[    0.000000] Linux version 5.15.0-56-generic (buildd@lcy02-amd64-004) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #62-Ubuntu SMP Tue Nov 22 19:54:14 UTC 2022 (Ubuntu 5.15.0-56.62-generic 5.15.64)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.15.0-56-generic root=UUID=06c00ee6-9db7-4bac-8bbf-efff4eb6ef97 ro resume=UUID=a542e607-0a04-410f-b47e-47fe4c4ae9bc
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai  
[    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[    0.000000] signal: max sigframe size: 1776
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009c7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009c800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000009cf4afff] usable
[    0.000000] BIOS-e820: [mem 0x000000009cf4b000-0x000000009d41dfff] reserved
[    0.000000] BIOS-e820: [mem 0x000000009d41e000-0x00000000a2284fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a2285000-0x00000000a2342fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a2343000-0x00000000a2368fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000a2369000-0x00000000a2c98fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000a2c99000-0x00000000a2ffefff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000a2fff000-0x00000000a2ffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000a3800000-0x00000000a7ffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000f8000000-0x00000000fbffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed03fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff000000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x0000000456ffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.8 present.
[    0.000000] DMI:  /NUC5i5RYB, BIOS RYBDWi35.86A.0385.2020.0519.1558 05/19/2020
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.000000] tsc: Detected 1596.228 MHz processor
[    0.000858] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000862] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000872] last_pfn = 0x457000 max_arch_pfn = 0x400000000
[    0.001011] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT  
[    0.001996] total RAM covered: 16288M
[    0.002149]  gran_size: 64K  chunk_size: 64K     num_reg: 10     lose cover RAM: 16M
[    0.002153]  gran_size: 64K  chunk_size: 128K    num_reg: 10     lose cover RAM: 16M
[    0.002155]  gran_size: 64K  chunk_size: 256K    num_reg: 10     lose cover RAM: 16M
[    0.002157]  gran_size: 64K  chunk_size: 512K    num_reg: 10     lose cover RAM: 16M
[    0.002159]  gran_size: 64K  chunk_size: 1M  num_reg: 10     lose cover RAM: 16M
[    0.002161]  gran_size: 64K  chunk_size: 2M  num_reg: 10     lose cover RAM: 16M
[    0.002163]  gran_size: 64K  chunk_size: 4M  num_reg: 10     lose cover RAM: 16M
[    0.002165]  gran_size: 64K  chunk_size: 8M  num_reg: 10     lose cover RAM: 16M
[    0.002167]  gran_size: 64K  chunk_size: 16M     num_reg: 10     lose cover RAM: 16M
[    0.002169]  gran_size: 64K  chunk_size: 32M     num_reg: 10     lose cover RAM: 0G
[    0.002171]  gran_size: 64K  chunk_size: 64M     num_reg: 10     lose cover RAM: 0G

답변1

첫 번째 커널 메시지 전에 20초의 지연이 발생하므로 이는 GRUB와 관련이 있거나 커널과 시스템 펌웨어의 초기 상호 작용(커널이 메시지를 수신할 때)과 관련이 있을 수 있음을 나타냅니다.e820 메모리 맵, ACPI 테이블, DMI 정보 및 펌웨어의 기타 콘텐츠).

사용자 정의 커널을 구축하려는 경우 커널 시작의 초기 단계에 대한 더 많은 통찰력을 제공할 수 있는 "early printk"라는 커널 기능이 있습니다.

반면에 20초 지연은 GRUB에서 문제가 될 가능성이 높습니다. GRUB 구성을 인쇄한 다음 GRUB 명령 프롬프트로 이동하여 일반 Linux 부팅 메뉴 항목의 명령을 시도해 볼 수 있습니다. 이렇게 하면 특정 명령이 비정상적으로 오랜 시간이 걸리는지 확인할 수 있습니다.

GRUB의 search명령은 명령이 검색하라는 지시를 받을 때까지 펌웨어에서 제공하는 순서에 관계없이 모든 디스크에 액세스하려고 시도합니다. 모든 관련 search명령을 테스트하여 그 중 하나가 범인인지 확인하는 것이 좋습니다 . 그런 다음 명령을 사용하여 커널 및 initramfs 파일(해당하는 경우)을 로드해 볼 수 있습니다.

GRUB의 TAB 완성을 시도해 볼 수도 있습니다. 를 입력하고 키를 두 번 ls (hd누른 다음 TABGRUB에서 볼 수 있는 디스크 수를 확인하세요. 그런 다음 그들을 식별해 보십시오. 예를 들어, 기존의 느린 디스크가 실제 시스템 디스크보다 먼저 표시되는 경우 가장 빠른 디스크가 먼저 표시되도록 SATA 케이블을 교체해야 할 수 있습니다.

최악의 경우 디스크 회전 속도가 느려지는 것을 발견할 수 있으며 이는 하드웨어 오류가 임박했다는 신호일 수 있습니다.

관련 정보