본문 바로가기
운영체제 (LNX,WIN)

Linux 부팅 속도 지연 문제 원인 분석 점검 및 최적화 해결 방법

by 날으는물고기 2025. 1. 17.

Linux 부팅 속도 지연 문제 원인 분석 점검 및 최적화 해결 방법

Ubuntu 부팅 시 로고 화면에서 로그인 창이 나타나기까지 시간이 오래 걸리는 문제는 여러 가지 원인으로 인해 발생할 수 있습니다. 일반적으로 이러한 문제는 특정 서비스나 하드웨어 장치가 부팅 과정에서 지연을 일으키는 경우에 발생합니다. 문제를 해결하려면 부팅 로그와 서비스를 확인하여 어떤 부분에서 지연이 발생하는지 조사할 필요가 있습니다.

1. 부팅 로그 확인

부팅 시 어떤 서비스나 장치가 지연을 일으키는지 확인하기 위해 부팅 로그를 확인할 수 있습니다.

journalctl -b

이 명령어는 현재 부팅 과정에서 발생한 모든 로그를 보여줍니다. 로그에서 [FAILED] 또는 [DELAYED] 같은 메시지를 찾아볼 수 있습니다. 특정 서비스가 부팅을 지연시키는 경우에는 그 서비스의 로그를 더 자세히 조사할 수 있습니다.

 

또는 dmesg 명령어를 사용하여 커널 로그에서 부팅 과정을 확인할 수도 있습니다.

dmesg

2. 지연된 서비스 확인

부팅 시간이 오래 걸리는 서비스나 프로세스를 찾기 위해 systemd-analyze 명령어를 사용할 수 있습니다. 이 명령어는 부팅 시간에 대한 정보를 요약해 줍니다.

2.1 부팅 시간 요약 확인

systemd-analyze

이 명령어는 커널과 사용자의 부팅 시간이 얼마나 걸렸는지 요약해줍니다.

2.2 부팅 과정에서 시간이 많이 걸린 서비스 확인

systemd-analyze blame

이 명령어는 부팅 과정에서 시간이 오래 걸린 서비스들을 정렬하여 보여줍니다. 가장 상단에 있는 서비스가 부팅 지연의 원인일 수 있습니다. 지연되는 서비스를 찾았다면, 해당 서비스가 꼭 필요한지 또는 지연을 줄일 수 있는 방법을 고려할 수 있습니다.

3. 특정 서비스 비활성화 또는 재설정

부팅 시 지연되는 서비스가 확인되면 해당 서비스를 비활성화하거나 재설정할 수 있습니다.

3.1 서비스 비활성화

만약 특정 서비스가 부팅에 필요 없거나 수동으로 실행해도 되는 경우, 해당 서비스를 비활성화할 수 있습니다. 예를 들어, network-wait-online 같은 네트워크 관련 서비스가 오래 걸릴 수 있습니다.

sudo systemctl disable 서비스명

3.2 서비스 재설정

해당 서비스가 필요하다면 서비스의 설정을 조정하여 부팅 시 지연을 줄일 수 있습니다.

4. 하드웨어 관련 문제 확인

하드웨어 장치나 드라이버 문제로 인해 부팅 지연이 발생할 수 있습니다. 특히 USB 장치, 네트워크 카드 또는 그래픽 카드가 부팅 시 제대로 초기화되지 않으면 시간이 오래 걸릴 수 있습니다.

4.1 dmesg로 하드웨어 관련 문제 확인

dmesg | grep -i error

이 명령어를 통해 하드웨어 에러가 발생했는지 확인할 수 있습니다. 만약 특정 장치에서 오류가 발생했다면 해당 장치의 드라이버를 업데이트하거나 관련 설정을 수정해야 할 수 있습니다.

4.2 그래픽 드라이버 확인

그래픽 드라이버 문제로 인해 부팅 화면에서 오래 머무를 수 있습니다. 특히 NVIDIA 그래픽 카드나 기타 GPU를 사용하는 경우 적절한 드라이버를 설치했는지 확인하십시오.

sudo ubuntu-drivers devices

이 명령어로 사용 가능한 드라이버를 확인한 후, 권장 드라이버를 설치할 수 있습니다.

sudo ubuntu-drivers autoinstall

5. 부팅 최적화

다음은 전반적인 부팅 속도를 개선하기 위한 몇 가지 방법입니다.

5.1 GRUB_TIMEOUT 설정 변경

부팅 시 GRUB 메뉴에서 지연이 발생하는 경우, GRUB 설정에서 부팅 대기 시간을 줄일 수 있습니다.

sudo nano /etc/default/grub

다음 줄에서 GRUB_TIMEOUT 값을 수정하여 시간을 줄입니다. 예를 들어, 2초로 줄일 수 있습니다.

GRUB_TIMEOUT=2

변경한 후에 GRUB 설정을 다시 적용합니다.

sudo update-grub

5.2 Swap 사용량 확인 및 최적화

과도한 스왑 사용량이 부팅 지연의 원인일 수 있습니다. 스왑 설정을 확인하고 필요에 따라 스왑 파티션이나 파일의 크기를 조정합니다.

swapon --show

위의 과정을 통해 Ubuntu 부팅 시 로고 화면에서 로그인 창으로 넘어가는 데 시간이 오래 걸리는 원인을 확인할 수 있습니다. 부팅 로그와 시스템 분석 도구를 활용해 지연 원인을 찾고, 필요에 따라 비활성화하거나 설정을 조정하면 부팅 시간을 개선할 수 있습니다.

 

부팅 시 시간이 오래 걸리는 원인이 파일 시스템 체크(파일 시스템 검사 또는 fsck)일 가능성도 있습니다. fsck는 파일 시스템의 무결성을 확인하고 오류를 수정하는 유틸리티로, 파일 시스템에 문제가 있거나 오랜 시간 동안 검사가 수행될 경우 부팅 속도가 지연될 수 있습니다.

 

다음은 파일 시스템 체크가 부팅 시간을 지연시키는지 확인하는 방법과 해결 방법입니다.

1. fsck 로그 확인

fsck가 실행 중인지 또는 실행에 시간이 오래 걸리고 있는지 확인하려면 부팅 로그에서 해당 부분을 찾아볼 수 있습니다.

journalctl -b | grep fsck

이 명령어는 최근 부팅 과정에서 fsck 관련 로그만 출력해줍니다. 여기서 파일 시스템 검사에 걸린 시간을 확인할 수 있습니다. fsck가 오래 걸리는 경우 파일 시스템의 문제가 있는지, 또는 파일 시스템 체크가 불필요하게 자주 실행되는지 살펴볼 필요가 있습니다.

2. 파일 시스템 검사 빈도 확인

Linux는 기본적으로 설정된 주기마다 파일 시스템 검사를 수행합니다. 이 주기는 디스크 마운트 횟수나 시간에 따라 결정됩니다. 이 설정을 확인하고 필요하다면 조정할 수 있습니다.

2.1 파일 시스템 검사 주기 확인

sudo tune2fs -l /dev/sdX | grep -i 'mount count\|check interval'

이 명령어에서 /dev/sdX는 파일 시스템이 마운트된 디바이스를 의미합니다. 여기서 Mount countMaximum mount count, 그리고 Check interval 값을 확인할 수 있습니다. 이 값들이 파일 시스템 체크를 자주 유발하는지 확인합니다.

2.2 파일 시스템 검사 주기 조정

검사 주기가 너무 짧아서 자주 발생하는 경우, 파일 시스템 검사 주기를 늘릴 수 있습니다.

sudo tune2fs -c 50 /dev/sdX

위 명령어는 마운트 횟수가 50번이 될 때까지 파일 시스템 체크를 하지 않도록 설정합니다. 기본값은 20회 정도일 수 있습니다.

 

또는 특정 시간 간격마다 체크가 실행되는 경우, 이를 수정할 수 있습니다.

sudo tune2fs -i 6m /dev/sdX

위 명령어는 6개월마다 파일 시스템 체크가 실행되도록 설정합니다.

3. 파일 시스템 문제 확인 및 해결

만약 파일 시스템에 문제가 있어 fsck가 시간이 오래 걸린다면, 해당 파일 시스템을 점검하고 오류를 수정해야 합니다. 이는 다음과 같이 진행할 수 있습니다.

3.1 파일 시스템 체크 실행

부팅을 진행하지 않고 수동으로 파일 시스템을 검사하고 싶다면, 해당 파티션을 언마운트한 후 fsck 명령어를 실행합니다.

sudo umount /dev/sdX
sudo fsck /dev/sdX

fsck가 오류를 찾아내면 이를 자동으로 수정하도록 명령할 수 있습니다.

sudo fsck -y /dev/sdX

4. SSD/HDD 상태 확인

만약 디스크 상태가 좋지 않거나 물리적인 문제가 있는 경우, fsck가 시간을 더 많이 소요할 수 있습니다. 디스크 상태를 확인하기 위해 smartctl 도구를 사용할 수 있습니다.

sudo apt install smartmontools
sudo smartctl -a /dev/sdX

출력된 결과에서 디스크 상태가 양호한지 확인하고, 문제가 있으면 디스크 교체를 고려해야 할 수 있습니다.

5. fsck를 부팅 시 비활성화 (권장하지 않음)

만약 파일 시스템이 문제가 없다고 확신되면 부팅 시 fsck 실행을 비활성화할 수 있습니다. 이는 /etc/fstab 파일을 편집하여 파일 시스템 옵션을 수정하는 방법으로 가능합니다.

sudo nano /etc/fstab

각 파티션의 설정 끝에 0을 추가하여 fsck 체크를 비활성화할 수 있습니다.

 

예시

/dev/sdX  /  ext4  defaults  0  0

주의: 파일 시스템 체크를 비활성화하는 것은 권장되지 않습니다.
나중에 발생할 수 있는 파일 시스템 문제를 미리 방지할 수 없게 되기 때문입니다.

 

부팅 시 시간이 오래 걸리는 원인이 파일 시스템 검사(fsck)일 수 있으며, 이를 확인하기 위해 로그를 분석하고, 파일 시스템 검사 주기를 조정하거나 수동으로 파일 시스템 검사를 수행할 수 있습니다. 파일 시스템에 문제가 있는 경우 fsck를 사용해 해결하고, 필요에 따라 디스크 상태도 점검하는 것이 좋습니다.

 

Plymouth는 리눅스 배포판에서 부팅 중 그래픽 스플래시 화면(예: Ubuntu 로고가 표시되는 화면)을 제공하는 서비스입니다. Plymouth는 부팅 과정에서 커널 메시지와 같은 텍스트 정보를 가리는 대신, 부드럽고 깔끔한 애니메이션 또는 로고 화면을 보여줍니다. 또한, 비정상적인 종료 시 파일 시스템 복구(fsck) 작업이 발생할 때 진행 상황을 그래픽으로 표시해 줍니다.

Plymouth의 주요 역할

  1. 부팅 애니메이션 제공: 부팅 시 애니메이션이나 로고를 표시하여 사용자에게 친숙한 인터페이스를 제공합니다.
  2. 파일 시스템 검사 진행 상황 표시: 파일 시스템 검사가 실행될 때, 진행 상황을 그래픽 화면으로 표시합니다.
  3. 부팅 시 출력 메시지 가림: 커널 메시지나 서비스 로그를 가리는 역할을 하여, 일반 사용자들이 복잡한 부팅 메시지를 보지 않도록 해 줍니다.

Plymouth 비활성화(Disable) 시 변화

Plymouth 서비스를 비활성화하면 다음과 같은 변화가 있을 수 있습니다.

  1. 부팅 시 텍스트 출력 표시: Plymouth가 비활성화되면 부팅 과정에서 애니메이션 대신 텍스트 기반 커널 메시지가 화면에 나타납니다. 즉, 시스템이 어떤 순서로 부팅되고 있으며, 어떤 서비스가 실행되는지 등의 자세한 로그 메시지를 실시간으로 볼 수 있습니다.
  2. 부팅 속도 약간 향상: Plymouth 자체가 부팅 시간을 크게 지연시키지는 않지만, 부팅 과정에서 애니메이션이 로딩되고 실행되는 과정이 빠르게 지나가기 때문에 부팅 속도가 약간 향상될 수 있습니다. 특히, Plymouth가 부팅 중 문제가 있는 경우 비활성화가 부팅 시간을 단축하는 데 도움이 될 수 있습니다.
  3. 파일 시스템 검사 진행 상황 확인 어려움: Plymouth가 비활성화되면, 비정상 종료 후 파일 시스템 검사가 필요할 때 텍스트 메시지로만 검사 진행 상황이 표시됩니다. 이 경우, 그래픽 애니메이션 대신 단순한 텍스트로 파일 시스템 검사(fsck) 결과를 확인해야 합니다.
  4. 그래픽 스플래시가 없어짐: 부팅 시 Ubuntu 로고나 기타 그래픽 화면이 나타나지 않고, 텍스트 모드로 커널과 서비스 관련 메시지가 나열됩니다.

Plymouth 비활성화 방법

Plymouth를 비활성화하려면 다음 명령어를 실행합니다.

sudo systemctl disable plymouth-quit-wait.service
sudo systemctl disable plymouth-start.service

또한, GRUB 부트 옵션에서 quiet splash를 제거하여 부팅 시 텍스트 메시지를 표시하도록 설정할 수 있습니다.

  1. GRUB 설정 수정sudo nano /etc/default/grub
    GRUB_CMDLINE_LINUX_DEFAULT 항목에서 quiet splash 옵션을 제거합니다.
    예: GRUB_CMDLINE_LINUX_DEFAULT=""
  2. GRUB 업데이트sudo update-grub
  3. 시스템 재부팅sudo reboot

Plymouth는 부팅 중 사용자에게 더 깔끔한 그래픽 경험을 제공하는 서비스입니다. 그러나 부팅 속도나 지연 문제를 해결하려고 할 때 Plymouth를 비활성화할 수 있습니다. 비활성화하면 부팅 과정에서 모든 로그와 메시지가 텍스트로 출력되고, 약간의 부팅 속도 향상이 있을 수 있습니다. 그러나 파일 시스템 검사 등에서 그래픽적인 진행 표시가 없어지는 점은 고려해야 합니다.

 

linux-firmware 패키지 이슈로 이전 버전으로 원상복구하는 방법은 다음과 같습니다. 이 과정은 apt 패키지 관리자를 사용하여 진행하며, 원상복구하려는 버전이 패키지 저장소에 남아있을 경우에만 가능합니다.

1. 현재 설치된 linux-firmware 버전 확인

먼저 현재 설치된 linux-firmware 패키지의 버전을 확인합니다.

dpkg -l | grep linux-firmware

이 명령을 실행하면 현재 설치된 linux-firmware 버전 정보를 볼 수 있습니다.

2. 사용 가능한 이전 버전 확인

apt 패키지 관리자에서 사용 가능한 이전 버전을 확인합니다.

apt list -a linux-firmware

이 명령은 현재 설치된 버전과 사용할 수 있는 다른 버전을 모두 표시합니다. 목록에서 이전 버전이 존재하는지 확인하세요.

3. 이전 버전으로 다운그레이드

이전 버전이 목록에 표시되면 해당 버전으로 패키지를 다운그레이드할 수 있습니다. 예를 들어, 현재 설치된 linux-firmware 패키지는 1.187.39 버전이고, 사용 가능한 이전 버전으로 복구는 apt를 사용해 linux-firmware 패키지를 1.187 버전으로 다운그레이드할 수 있습니다.

sudo apt install linux-firmware=1.187

4. 자동 업데이트 방지

원상복구한 후 linux-firmware 패키지가 다시 자동으로 업데이트되는 것을 방지하려면 해당 패키지를 보류 상태로 설정할 수 있습니다.

sudo apt-mark hold linux-firmware

이 명령을 사용하면 linux-firmware가 더 이상 자동 업데이트되지 않습니다.

5. 시스템 재부팅

펌웨어 변경 사항이 적용되도록 시스템을 재부팅합니다.

sudo reboot

6. 문제 해결

시스템이 재부팅되면 네트워크 문제가 해결되었는지 확인합니다.

만약 이전 버전이 더 이상 저장소에 없다면

패키지 저장소에서 이전 버전이 제거된 경우에는 수동으로 linux-firmware의 이전 버전을 다운로드하여 설치할 수 있습니다. 다음과 같은 방법을 사용할 수 있습니다.

  1. Ubuntu 패키지 아카이브에서 원하는 linux-firmware 패키지의 이전 버전을 검색합니다.
  2. .deb 파일을 다운로드하여 수동으로 설치합니다.
    sudo dpkg -i linux-firmware_<version>.deb

이 과정을 통해 linux-firmware를 이전 버전으로 복구할 수 있습니다.

728x90

댓글