Linux 부팅을 BIOS 오류로 수정하는 방법

게시 됨: 2022-09-28
Linux 명령 프롬프트를 보여주는 파란색 배경의 노트북.
Fatmawati achmad zaenuri/Shutterstock.com

GRUB 업데이트로 인해 Linux 컴퓨터가 BIOS 또는 UEFI 설정으로 부팅되는 것으로 알려져 있습니다. 이에 대한 수정은 사용자가 실제로 알아야 하는 유용한 시스템 복구 트릭을 활용합니다.

사례 연구: GRUB 2:2.06.r322

2022년 여름 Arch 및 Arch 기반 Linux 배포판에 대한 시스템 업데이트에는 새 버전의 GRUB가 포함되었습니다. GRUBgr 및 통합 부트 로더를 나타냅니다.

부트로더는 컴퓨터가 켜져 있을 때 부팅 프로세스를 시작하는 응용 프로그램입니다. 몇 가지 소프트웨어 도구와 유틸리티를 올바른 파티션에서 올바른 순서로 실행해야 최종적으로 운영되고 액세스 가능한 운영 체제가 됩니다. GRUB는 일련의 이벤트를 시작합니다.

컴퓨터에 둘 이상의 운영 체제가 설치된 경우 GRUB은 사용할 운영 체제를 선택할 수 있는 메뉴를 제공합니다. GRUB 2:2.06.r322에 대한 코드 변경 사항 중 하나는 새로운 GRUB 옵션인 --is --is-supported 에 대한 지원을 추가했습니다. 이 옵션은 펌웨어로의 부팅 기능이 있는지 여부를 나타내는 데 사용됩니다. 그렇다면 GRUB는 EUFI 설정으로 부팅할 수 있도록 부팅 메뉴에 항목을 추가합니다.

새 옵션은 "30_uefi-firmware.in"이라는 스크립트에서 참조되었습니다. 이 파일에 대한 diff는 if 문이 제거되고 두 줄이 추가되었음을 보여줍니다.

새로운 라인 중 하나는 if 문을 대체하는 것이었습니다. 다른 새 줄에는 fwsetup --is-supported 가 포함되어 있습니다. "fwsetup"의 "fw"는 펌웨어를 나타냅니다. 그러나 그 줄은 새로운 if위에 있기 때문에 항상 실행됩니다. if if 테스트가 true로 확인될 때만 실행됩니다.

UEFI란 무엇이며 BIOS와 어떻게 다릅니까?
관련 UEFI란 무엇이며 BIOS와 어떻게 다릅니까?

이로 인해 모든 UEFI 컴퓨터는 아니지만 많은 UEFI 컴퓨터에서 문제가 발생했습니다. 이미 설치한 GRUB 버전이 이 명령을 지원하는지 여부에 따라 다릅니다. 영향을 받는 기계는 두 가지 중 하나를 수행합니다. 부팅 프로세스가 완료되지 않았지만 계속해서 다시 시작되는 부팅 루프로 이동하거나 컴퓨터가 UEFI 펌웨어 설정으로 바로 부팅됩니다. 어느 쪽이든 컴퓨터를 Linux로 강제 부팅할 방법은 없었습니다.

이와 같은 상황에 직면했을 때 항상 완전한 재설치를 수행하는 핵 옵션이 있습니다. 그것은 작동하지만 최근 백업 없이 하드 드라이브가 파티션된 방식에 따라 데이터가 손실될 수 있습니다.

영향이 적은 방법은 chroot 와 Live USB 또는 Live CD/DVD를 사용합니다. 이것은 Linux 컴퓨터로 부팅하거나 로그인할 수 없을 때 모든 종류의 시스템 오류를 이해하고 대비할 수 있는 좋은 기술입니다.

우리가 사용할 기술

이 기술을 사용하려면 라이브 Linux 인스턴스로 부팅되는 부팅 가능한 USB 또는 Linux 배포판이 포함된 CD/DVD가 있어야 합니다. 일반적으로 라이브 USB 또는 라이브 CD/DVD라고 합니다. 모든 주요 배포판은 이 기능을 지원합니다.

영구 저장소로 라이브 Ubuntu USB 드라이브를 만드는 방법
관련 영구 저장소로 라이브 Ubuntu USB 드라이브를 만드는 방법

우리는 아무 것도 설치하지 않을 것이므로 라이브 미디어가 컴퓨터에 설치한 것과 동일한 배포판일 필요는 없습니다. 예를 들어 Ubuntu USB를 사용하여 EndeavourOS 컴퓨터를 수리할 수 있습니다. 라이브 미디어에 액세스할 수 없는 경우 다른 컴퓨터를 사용하여 이미지를 다운로드하고 USB 메모리 스틱이나 CD/DVD에 기록해야 합니다.

라이브 미디어에서 부팅하면 기존 파일 시스템을 마운트하고 액세스할 수 있습니다. 설치된 파일 시스템은 라이브 미디어에서 부팅된 Linux 파일 시스템의 일부로 나타납니다. 대단해. 접근할 수 있다면 수리할 기회가 있습니다. 하지만 문제를 제기합니다.

Linux에서 chroot 명령을 사용하는 방법
관련 Linux에서 chroot 명령을 사용하는 방법

이 하이브리드 파일 시스템의 루트는 설치된 파일 시스템의 루트가 아니라 라이브 미디어 파일 시스템의 루트입니다. Linux 시스템에 구성된 파일 경로가 올바른 대상 위치를 참조하게 하려면 라이브 Linux의 루트에 상대적인 위치가 아니라 파일 시스템 내부의 어딘가에 chroot 를 사용하여 루트를 가리키는 새 루트를 설정해야 합니다. 설치된 파일 시스템. 즉, "/"로 시작하는 경로는 파일 시스템의 루트를 시작점으로 사용합니다.

이를 위해 사용한 테스트 컴퓨터는 ext4 파일 시스템을 사용하지만 다른 파일 시스템에서도 이 기술을 사용할 수 있습니다. 마운트해야 하는 파티션이나 볼륨과 이를 마운트할 위치를 식별하기만 하면 됩니다. 원칙은 동일합니다.

실천하기

부팅 가능한 USB 드라이브를 만들고 이 드라이브에서 손상된 컴퓨터를 부팅했습니다. 우리가 사용한 배포판은 EndeavourOS입니다. EndeavourOS 라이브 미디어는 XFCE 4 데스크탑 환경으로 부팅됩니다.

XFCE 데스크탑 환경으로 부팅된 EndeavourOS 라이브 미디어

파일 시스템의 루트를 보유하고 있는 파티션과 부트 파티션을 식별하려면 터미널 창을 열고 fdisk 명령을 사용하십시오. -l (파티션 나열) 옵션을 사용하고 있습니다. sudo 도 사용해야 합니다.

 sudo fdisk -l 

sudo fdisk -l 명령을 사용하여 파티션 및 장치 나열

"EFI 시스템" 및 "Linux 파일 시스템"이라는 항목이 표시될 때까지 출력을 스크롤합니다.

부팅 및 루트 파티션이 강조 표시된 sudo fdisk -l 명령의 출력

이 컴퓨터에서는 둘 다 sda 하드 드라이브에 있습니다. 파티션 레이블 /dev/sda1/dev/sda2 로 표시된 대로 파티션 1과 2에 있습니다.

컴퓨터에서는 다른 하드 드라이브와 파티션에 있을 수 있습니다. 그들이 있는 파티션을 기록해 두십시오. 다음 명령에서 이를 사용해야 합니다.

라이브 파일 시스템에 연결하여 이러한 파티션에 파일 시스템을 마운트해야 합니다. mount 명령이 우리를 위해 그렇게 할 것입니다. 파티션 레이블이 다를 수 있으므로 fdisk 명령의 결과에 있는 레이블을 사용해야 합니다.

 sudo 마운트 /dev/sda2 /mnt
 sudo 마운트 /dev/sda1 /mnt/boot/efi 

부트 및 파일 시스템 루트 파일 시스템 마운트

파일 시스템의 유효 루트가 실제 설치된 파일 시스템의 루트에서 시작하도록 하기 위해 chroot 를 사용하여 루트를 "/mnt" 마운트 지점으로 설정합니다. 이것은 설치된 파일 시스템의 루트가 라이브 파일 시스템에 접목되는 곳입니다.

 sudo chroot /mnt 

chroot 명령을 사용하여 새 유효 루트 만들기

명령 프롬프트가 변경되어 이제 루트로 효과적으로 로그인되었으며 현재 컴퓨터 파일 시스템의 루트 디렉토리 "/"에 있습니다.

"/home" 디렉토리로 변경하고 그 안에 어떤 디렉토리가 있는지 확인하여 이를 쉽게 테스트할 수 있습니다.

 CD / 홈

ls를 사용하여 사용자 계정 나열

자신의 사용자 계정에 대한 디렉토리를 포함하여 컴퓨터에 구성된 각 사용자에 대한 디렉토리가 표시되어야 합니다. 이 컴퓨터에는 "dave"라는 단일 사용자가 있습니다. chroot 명령을 사용하기 전에 cd /home 을 사용했다면 라이브 파일 시스템의 "/home" 디렉토리에 들어갔을 것입니다.

분명히 하자면, 이제 루트 사용자로 실제 파일 시스템 에 액세스하고 있으므로 주의하십시오.

GRUB 2:2.06.r322의 문제를 해결하려면 grub-install 명령을 실행하기만 하면 됩니다.

 그럽 설치 

grub-install 명령을 실행하여 GRUB 부팅에서 BIOS 오류 수정

이와 같이 맹목적으로 grub-install 실행하는 것은 일반적으로 권장되지 않습니다. 이 경우에 필요한 것입니다.

수리 또는 교체

다른 문제를 해결하려는 경우 문제에 대한 적절한 수정 사항에 대해 배포판의 포럼을 확인해야 합니다. 그것이 광범위한 불만이라면 곧 해결책을 찾을 수 있을 것입니다.

최소한 파일 시스템에 액세스할 수 있으므로 데이터를 일부 이동식 미디어에 복사할 수 있습니다. 전체 재설치를 결정하면 데이터가 손실되지 않습니다.

관련: Linux에서 "install" 명령을 사용하여 파일을 복사하는 방법