읽기 전용 EFI 시스템 파티션을 복구하는 방법은 무엇입니까?

읽기 전용 EFI 시스템 파티션을 복구하는 방법은 무엇입니까?

GRUB을 설치하고 문제 없이 efibootmgr을 사용하여 부팅 순서를 변경할 수 있었던 EFI 파티션 /dev/sda1이 있지만, 불행하게도 지금은 grub-install에서 "읽기 전용 파일 시스템" 오류를 얻을 수 없습니다(특히 , /boot/efi 및 efibootmgr에 설치할 때 grub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sda다음을 사용하여 지우려고 했습니다.

sudo mkfs.vfat /dev/sda1

하지만 여전히 이 오류가 발생합니다. 구체적으로 grub-install --target=x86_64-efi --efi-directory=/boot/efi /dev/sda다음과 같습니다.

Installing for x86_64-efi platform.
Could not delete variable: Read-only file system
efibootmgr: ** Warning ** : Boot0002 has same label gentoo
Could not prepare Boot variable: Read-only file system
Installation finished. No error reported.

나는 보았다USB 읽기 전용 파일 시스템 복구wipefs, 그러나 여러 배포판이 설치 및 설정되어 있고 이러한 삭제에서 복구하는 데 시간이 걸리기 때문에 이 디스크를 삭제할 수 없습니다 . 이상한 점은 grub-install이 여전히 /dev/sda1에 파일을 추가한다는 것입니다. 단지 부팅 순서가 변경되지 않는 것 같습니다.

답변1

오류 메시지는 "변수를 삭제할 수 없습니다:읽기 전용 파일 시스템"입니다. 실제로 UEFI 부팅 변수를 조작하려고 시도했지만 실패했습니다.

efivarfs이러한 오류는 실제로 일반적으로 설치되어야 하는 UEFI 부팅 변수에 액세스하는 데 사용되는 파일 시스템을 참조합니다 /sys/firmware/efi/efivars. 에 이전 버전의 UEFI 변수 액세스 메커니즘이 있을 수도 있습니다 /sys/firmware/efi/vars.

CONFIG_EFIVAR_FS 커널 구성 옵션을 놓치면 해당 가상 파일 시스템용 드라이버가 커널(또는 모듈로 컴파일된 경우 해당 이름 efivarfs)에 없을 수 있습니다. 드라이버를 사용할 수 있는 경우 이 파일 시스템이 다음에 나열되어 있는지 확인하십시오 /etc/fstab. 시스템의 부팅 스크립트가 이를 구체적으로 처리하지 않는 경우 /etc/fstab 파일에 다음과 같은 줄을 추가해야 할 수도 있습니다.

efivarfs /sys/firmware/efi/efivars efivarfs defaults 0 0

업데이트: 누군가가 이를 실행하면 원래 구현으로 efivarfs인해 일부 컴퓨터가 작동하지 않을 수 있는 것으로 보입니다 rm -rf /sys/firmware/efi/efivarfs.

이 상황에 대한 보호 기능이 새 커널에 추가되었으며, 안전한 것으로 알려진 항목을 제외한 모든 변수 항목은 efivarfs기본적으로 변경할 수 없으며( 와 유사 chattr +i) 합법적인 UEFI 변수 조작 도구(예: 수정하기 전에 파일 속성 변경)가 있습니다 efibootmgr.

롤링 릴리스 시스템에서는 efivarfs사용자 공간 도구(즉, grub-install처리에 필요한 수정 사항 수신)보다 먼저 커널 업데이트가 수행되어 시스템에 변경 사항이 적용될 수 있습니다. 이 경우 이런 일이 발생할 수 있습니다.

관련 정보