Efivar는 청소가 필요하지만 어떻게?

Efivar는 청소가 필요하지만 어떻게?

여러 버전의 Linux, Windows 10 및 Chrome OS를 사용하여 Acer Aspire CloudBook을 재부팅했습니다. 문제가 있기 때문에 계속 왔다 갔다 하세요. 이제 USB로는 부팅할 수 없고 Linux Mint만 부팅할 수 있습니다. 원인 efi 파티션이 가득 찼습니다. Efivars에는 96개의 프로젝트(/sys/firmware/efi/efivars)가 포함되어 있습니다. 시스템을 차단하지 않고 efi 파티션을 재설정하는 방법은 무엇입니까?

답변1

본질적으로 서로 다른 두 가지 질문이 있을 수 있습니다.

  • 일부 오래된 부팅 변수/sys/firmware/efi/efivars
  • 오래된 부트 로더로 채워진 EFI 시스템 파티션(줄여서 ESP)입니다.

더 이상 사용되지 않는 EFI 부팅 변수를 제어된 방식으로 정리하려면 이 efibootmgr명령을 사용하십시오.

처음에는 sudo efibootmgr -v모든 부팅 변수와 해당 내용을 나열하고 필요하지 않은 변수를 식별하는 데 사용됩니다. 부팅 항목은 BootXXXXXXXX로 16진수로 식별됩니다. BootCurrent시스템에서 현재 시작한 시작 항목을 식별하려면 이 변수를 살펴보세요 .

그런 다음 sudo efibootmgr -b XXXX -B더 이상 필요하지 않은 시작 항목 삭제를 사용하세요.


ESP가 설치되었거나 제거되었을 수 있습니다. 배포판마다 ESP를 다르게 처리합니다 /boot/efi. /bootESP가 여러 개인 경우 식별을 통해 식별할 수 있습니다.파티션 UUID. 를 실행하면 sudo efibootmgr -v각 파티션 항목에 UUID(또는 GUID)라는 긴 16진수 문자열이 포함됩니다. sudo blkid, 또는 를 사용하면 lsblk -o +PARTUUID파티션의 UUID를 나열하고 UUID와 일치하는 부팅 항목에서 ESP를 찾을 수 있습니다.

아직 설치되지 않은 경우 설치한 다음 일반 파일 시스템으로 액세스하고 오래된 부트로더를 정리합니다.

ESP에는 표준화된 디렉터리 레이아웃이 있습니다. ESP의 최상위 수준에는 이라는 디렉터리가 있어야 하며 EFI, 그 아래에 각 OS 공급업체는 자체 디렉터리를 생성하여 부트 로더/부팅 관리자를 배치할 수 있습니다. Windows의 부팅 콘텐츠는 Microsoft하위 디렉터리에 있으며, 각 Linux 배포판에는 일반적으로 해당 이름과 일치하는 디렉터리가 있습니다. 더 이상 설치되지 않는 운영 체제 디렉터리를 삭제하면 됩니다.

답변2

EFI 시스템은 단지 파일 시스템일 뿐입니다. 어떤 데이터가 자신에게 중요한지 결정해야 합니다.

Efivar에는 UEFI에서 사용하고 NVRam(아마도 EEPROM)에 저장되는 변수가 포함되어 있지만 96개 항목은 비정상적으로 큰 숫자는 아닙니다.

EFI 시스템 파티션을 확인하고 어떤 파일이 중요한지 결정해야 합니다. 아마도 다양한 배포판 부트로더가 많이 있을 것입니다. 일반적으로 각 배포 이름은 ESP의 하위 디렉터리가 되며 배포가 더 이상 사용되지 않으면 이러한 하위 폴더를 삭제할 수 있습니다.

EFI-Stub을 사용하는 경우 커널 복사본이 ESP에 있을 수 있으며 이전 커널 버전이 많이 있을 수 있습니다. rEFInd 또는 GRUB와 같은 부트로더를 사용하는 경우 ESP에 일부 리소스 파일을 저장하지만 일반적으로 실제로 필요한 파일만 저장합니다.

일반 부트로더와 리소스가 이를 채울 수 있도록 매우 작은 ESP(50MB 미만)를 가질 수도 있습니다.

관련 정보