Ubuntu 22.04에서 Grub Customizer를 제거한 후 원래 grub 구성을 복원하는 방법은 무엇입니까?

Ubuntu 22.04에서 Grub Customizer를 제거한 후 원래 grub 구성을 복원하는 방법은 무엇입니까?

그래서 Grub Customizer를 사용하는 실수를 한 다음 의 지침에 따라 이전 구성을 복원하려고 시도하는 동안 다른 작업을 수행하여 /etc/grub.d/backup/RESTORE_INSTRUCTIONSgrub 구성 파일이 손상되었습니다.

sudo update-grup이제 내가 달리 려고 하면

Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.

결과 grub.cfg.new는 비어 있습니다(생성되는 내용에 대한 초기 설명만 포함되어 있음).

나는 다음에 따라 grub을 다시 설치하려고했습니다.이 답변~에 의해

sudo apt-get purge grub-pc grub-common

하지만 더 이상 작동하지 않습니다. 먼저 apt충족되지 않은 종속성에 대해 불평했고 제거할 목록에 추가했을 때 grub2-common grub-pc-bin대신 이를 설치해야 한다고 말했습니다.

... grub-common:i386 grub-efi-amd64 grub2-common:i386 ...

약간의 망설임 끝에 이를 수락하고 나중에 다시 교체할 의도로 해당 패키지를 설치하게 했지만 설치 중에 이 문제가 다시 발생했습니다.

Script `/boot/grub/grub.cfg.new' contains no commands and will do nothing
...
dpkg: error processing package grub-pc (--configure):
 installed grub-pc package post-installation script subprocess returned error exit status 1

따라서 이는 update-group이제 설치 후 스크립트의 일부이며, 실패하면 패키지 설치에 실패합니다. 이제 저는 두 가지 방법 모두에서 종속성이 손상되고 grub 버전 중 어느 것도 제대로 설치되지 않아 수정할 수 없는 상태에 있습니다.

제거 중에 grub( /etc/default/grub및 )의 구성 파일이 제거되거나 덮어쓰여지지 않았습니다. /etc/grub.d/*그리고 수동으로 삭제하면 다시는 설치되지 않습니다.

지금 설치한 OS를 저장하기 위해 할 수 있는 일이 있나요?

답변1

apt purge이런 종류의 상황에서는 거의 항상 잘못된 해결책입니다. 해당 경로는 중요한 항목을 제거할 가능성이 높으며, 항목을 충분히 제거하면 문제를 해결하기 위해 다시 설치해야 하는 상황으로 되돌아갈 수 있습니다. 패키지 제거가 도움이 되는 유일한 경우는 다시 설치하려는 다른 패키지를 교체한 경우입니다.

dpkg -V대신 손상된 파일과 권한을 찾는 데 사용하고 apt install --reinstall손상된 패키지를 다시 설치하는 데 사용하는 것이 좋습니다 . 이는 손상된 핵심 파일을 대체하지만 구성 파일은 손상된 상태로 남을 수 있습니다. 하지만 이제 시작이다.

손상된 구성 파일을 찾으면 해당 파일을 수정하거나 이름을 바꾸고 dpkg --reconfigure관련 패키지를 사용하여 구성 파일을 다시 빌드해 볼 수 있습니다. dpkg --configure구성이 완전히 엉망이거나 삭제된 경우 도움이 될 수 있습니다.

또 다른 가능성은 다음과 같습니다.추가의구성을 손상시킨 구성 디렉토리의 파일. 다시 말하지만, 적절한 제거는 해당 항목을 제거하지 않으며 아무것도 수정하지 않습니다. 이러한 추가 파일을 찾는 것은 제거 프로세스를 통해 수행되어야 하지만 불가능하지는 않습니다.

답변2

문제는 권한, 누락/손상된 파일 또는 잘못된 구문이 아니라 잘못된 권한이었습니다. Grub Customizer가 생성한 백업 파일에는 /etc/grub.d/backup/etc_grub_d실행 플래그가 없습니다. 이것이 빈 grub.cfg가 생성된 이유입니다. 그리고 오류 메시지가 update-grub오해의 소지가 있기 때문에 나는 그것을 볼 수 없었습니다.

RESTORE_INSTRUCTIONS따라서 단지 따라 가서 다시 /etc/grub.d/backup/복사하는 것만 으로는 충분하지 않습니다 . 당신도해야합니다/etc/grub.d/backup/etc_grub_d/etc/grub.d

sudo chmod +x 0* 1* 2* 3* 4*

하지만 나는 이것이 패키지 관리자에게 문제로 보고되어야 한다고 생각합니다. 패키지를 성공적으로 설치하려면 깨지기 쉬운 사용자 구성에 의존하는 스크립트를 실행해야 하는 것은 좋지 않습니다. 그리고 해당 패키지를 일시적으로 제거했다가 다시 설치하려고 하면 i386 하위 시스템이 설치되는 것은 좋지 않습니다.

도와주신 모든 분들에게 감사 인사를 마치겠습니다.

관련 정보