GRUB 부팅 메뉴에서 두 개의 메뉴 항목을 제거하고 싶으므로 파일에서 해당 항목을 주석 처리합니다 /boot/grub/grub.cfg
.
menuentry 'Windows Boot Manager (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-FCD5-F73E' {
...
}
# menuentry 'Ubuntu 16.04.3 LTS (16.04) (on /dev/sdb1)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-844ea196-bb78-4f18-b7fd-58be4c491e92' {
# ...
# }
# submenu 'Advanced options for Ubuntu 16.04.3 LTS (16.04) (on /dev/sdb1)' $menuentry_id_option 'osprober-gnulinux-advanced-844ea196-bb78-4f18-b7fd-58be4c491e92' {
# menuentry 'Ubuntu (on /dev/sdb1)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-4.10.0-37-generic.efi.signed--844ea196-bb78-4f18-b7fd-58be4c491e92' {
# ...
# }
# ...
# }
그런 다음 sudo update-grub
평소처럼 달렸습니다. 그러나 그렇게 하면 grub.cfg
파일에서 주석 처리가 해제되지 않은 메뉴 항목이 반환됩니다.
update-grub
실행 후 메뉴 항목이 시작 옵션에 표시되지 않도록 주석 처리된 상태로 유지하려면 어떻게 해야 합니까 ? 실행하지 않으면 메뉴 항목이 제외된다는 것을 알고 있지만 이 명령을 실행할 때마다 메뉴 항목을 수동으로 주석 처리할 필요가 없도록 update-grub
원치 않는 동작을 제거하고 싶습니다 .update-grub
노트:
- 둘 다 원치 않는 메뉴 항목을 다시 가져옵니다
update-grub
.update-grub2
- 불필요한 메뉴 항목은 중복됩니다. 이미 Ubuntu용 메뉴 항목이 있습니다.
답변1
위에서 언급했듯이 편집은 /boot/grub/grub.cfg
이를 달성하는 좋은 방법이 아닙니다. 손상될 가능성이 높으며, 그렇지 않더라도 나중에 시스템 업데이트가 출시되면 복원된 것을 발견하게 될 것입니다.
GRUB_OS_PROBER_SKIP_LIST
값을 명시적으로 추가하는 것도 /etc/default/grub
좋은 해결책이 아닙니다. UUID
컴퓨터에 연결될 수 있는 모든 부팅 가능한 디스크를 수동으로 찾아서 차단해야 하기 때문입니다. 또한 파일 편집이 /etc/default
Linux 배포판의 동작을 사용자 정의하는 데 선호되는 방법인지 확실하지 않습니다 .
/usr/bin/os-prober
다른 프로그램이 다른 목적으로 사용할 수 있으므로 완전히 비활성화하는 것도 반드시 좋은 생각은 아닙니다 .
grub
글쎄요, 가장 좋은 해결책은 아마도 수동 사용자 정의에 속하고 이에 전념하는 프로필에서 작업하는 것입니다.
켜 Debian
거나 끌 때 Ubuntu
자동으로 생성된 부팅 항목은 에서 처리되는 것으로 보입니다 /etc/grub.d/30_os-prober
.
파일을 삭제하거나 실행 권한을 비활성화하고 grub
구성을 다시 생성하여 자동으로 추가된 항목을 제거하기만 하면 됩니다.이것은 내 컴퓨터에서 작동합니다.
sudo chmod -x /etc/grub.d/30_os-prober
sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo update-grub
구성에 의해 생성된 출력을 관찰하고 /boot/grub/grub.cfg
다시 시작하기 전에 불필요한 항목이 제거되었는지 확인할 수 있습니다.
답변2
/boot/grub/grub.cfg
#
이 파일을 편집하지 마세요
#
템플릿을 사용하여 grub-mkconfig에 의해 자동으로 생성됩니다.
/etc/grub.d 및 /etc/default/grub의 설정
#
Grub 항목을 편집하는 올바른 방법은 /etc/default/grub
및 를 사용하는 것입니다 /etc/grub.d/
.
답변3
이 항목은 os-prober에서 생성됩니다. 운영 체제 감지기:
설명: 드라이브 세트에서 다른 운영 체제를 감지하는 유틸리티입니다. 이 패키지는 시스템에서 사용 가능한 다른 운영 체제를 감지하고 결과를 기계가 읽을 수 있는 일반적인 형식으로 출력합니다.
/usr/bin에 os-prober 패키지의 쉘 스크립트가 있는지 확인하십시오.
skript에서 실행 가능 플래그를 제거하거나 os-prober를 제거할 수 있습니다.
편집: 내가 잘못한 것은 /usr/bin/os-prober를 의미했습니다. /etc/grub.d에 없음
답변4
다음으로 삭제할 수 있었습니다.운영 체제 감지기다음 Grub 구성을 사용하십시오.
1. 다음 명령을 사용하여 디스크의 UUID를 확인합니다.
sudo blkid
2.업데이트/etc/default/grub파일에 다음 줄을 추가합니다.
GRUB_OS_PROBER_SKIP_LIST="UUID_OF_DISK_YOU_DONT_WANT_SCAN1 UUID_OF_DISK_YOU_DONT_WANT_SCAN2"
3. Grub 구성을 재생성합니다.
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
노트:grub2-mkconfig어떤 이유로 무시된 디스크에 대한 정보가 계속 표시되지만 끝까지 생성되지 않습니다./boot/grub2/grub.cfg문서.