먼저 Ubuntu가 Grub2를 구성하는 방법을 이해하십시오.
- /boot/grub/grub.cfg 는 Grub2 메뉴입니다
- 갱신 애벌레 명령 해당 파일을 자동 - 생성
- ... / etc / defaults / grub 에서 기본 설정을 읽음
- ... 그리고 실행 shellscripts /etc/grub.d
따라서 각 커널 업데이트 후 grub.cfg 를 편집하지 않으려면 update-grub 이 실행될 때마다 변경 사항이 적용되도록 /etc/grub.d 에서 스크립트를 조정해야 합니다.
둘째, 첫 번째 질문에 직접 대답하기 위해 특정 부팅 옵션을 보이지 않지만 Grub 메뉴를 통해 여전히 액세스 할 수있는 방법에 익숙하지 않습니다. Grub1에 대해서는 Grub2에서 다시 구현되지 않은 작은 것들이 많이 있으며, 이것이 Grub1에서 그 중 하나라도 놀라지 않을 것입니다.
대신 메뉴 글꼴 색상을 배경 색상과 동일하게 설정하여 모든 메뉴 항목을 보이지 않게 (강조 표시 될 때까지) 만들 수 있습니다. 에서는 /etc/grub.d/05_debian_theme 변경 menu_color_normal은 상기 제 1 색상 (폰트)가 제 2 색상 (배경)을 일치. menu_color_highlight를 다르게 두면 커서 아래의 항목이 표시됩니다.
# example from a likely-tweaked Karmic /etc/grub.d/05_debian_theme
set menu_color_normal=white/black
set menu_color_highlight=black/white
# ...to this
set menu_color_normal=black/black
set menu_color_highlight=black/white
Grub 메뉴로 구분 기호 가져 오기
Grub1에서 이와 같은 새 항목을 삽입합니다. 내가 기억 하듯이, 루트 선언이 유효한 메뉴 항목이 되려면 루트 선언 이 필요 했습니다. 그렇지 않으면 Grub1이 무시했습니다.
# separator
title --------------------
root
나는 Grub2가 비슷하다고 생각합니다. grub.cfg 에서 매우 기본적인 메뉴 항목은 다음과 같습니다 .
# basic example
menuentry "Memory test (memtest86)" {
linux /boot/memtest86+.bin
}
큰 따옴표의 "anything"이 제목으로 표시되므로 구분 기호를 위조 할 수 있습니다. Grub1과 마찬가지로 Grub2는 linux 키워드가 실제 메뉴 항목으로 취급하기를 원하므로 실수로 선택하지 않도록주의하십시오.
# a separator! no, really!
menuentry "....." {
linux /boot/memtest86+.bin
}
불행하게도, "아무것도"하지 의미 하는가 아무것도 ; 이것을 테스트하는 동안 긴 대시 줄 ( "----------------")을 시도했지만 결코 작동하지 않았습니다. 그러나 위에 표시된 짧은 도트 줄을 좋아하므로 사용할 수 있습니다.
.....
이제 하나의 구분 기호를 만드는 방법입니다. 묶음을 만들고 자동으로 원하는 곳에 배치하려면 /etc/grub.d 의 스크립트에 추가해야합니다 .
이 예에서는 grub.cfg 의 여러 섹션 사이에 간단한 구분 기호를 넣습니다 . /etc/grub.d 를 보면 다음 스크립트가 표시됩니다.
- 00_ 헤더
- 05_debian_theme
- 10_linux-우분투 커널 및 복구 항목
- 20_memtest86 +-Memtest86 +에 대한 항목
- 30_os-prober-Windows 및 기타 Linux 배포판 항목
- 40_custom-기본적으로 아무것도 없습니다. 특별한 사용자 항목은 여기에 갈 수 있습니다
새 스크립트 인 separator 를 만들고 다음을 여기에 넣습니다.
#!/bin/sh
# create a separator menu entry
cat << EOF
menuentry "....." {
linux /boot/memtest86+.bin
}
EOF
이제 해당 스크립트를 첫 번째 구분 기호로 옮기고 다른 구분 기호로 연결하십시오. 스크립트는 순서대로 실행되므로 첫 번째 스크립트를 10_linux 앞에 오려면 이름을 09_separator 또는 다른 이름으로 지정하십시오 .
cd /etc/grub.d
# start the editor, paste in the script above, save, and exit
sudo nano separator
# set executable
sudo chmod +x separator
# rename into the first position
mv separator 09_separator
# link into remaining positions (can also use cp)
ln -s 09_separator 19_separator
ln -s 09_separator 29_separator
# not really necessary since 40_custom is empty by default
ln -s 09_separator 39_separator
/ etc / default / grub 에 특정 항목을 기본값으로 설정 한 경우이를 업데이트해야 할 수 있습니다. Grub2는 0에서 메뉴 항목을 세기 시작하고 이러한 "분리 자"는 유효한 항목이므로 계산됩니다. 이전 기본 항목이 0이고 그 앞에 하나의 구분 기호를 추가 한 경우 GRUB_DEFAULT 를 1 로 변경 하십시오.
이제 update-grub을 실행 하고 /boot/grub/grub.cfg를 검사 하십시오. 여기에 구분 기호가 표시됩니다. 만약 그렇다면, 재부팅 후 체크 아웃하십시오.
....
다른 커널 버전 사이에 다른 곳에 구분 기호를 배치하려면 10_linux (또는 다른 스크립트)를 직접 편집 하고 구분 기호를 추가 할 적절한 위치를 찾아야합니다. 위 스크립트에서 줄을 사용할 수 있습니다. 첫 번째 #! / bin / sh 행을 제외한 모든 것을 포함하십시오 .
더 아름다운 것을 원한다면 Grub 스플래시 이미지 또는 테마를 사용하십시오. 이러한 주제에 대해 레인 체크를 해 주어야하지만 아래 리소스를 확인하십시오.
자원:
UbuntuForums에는 두 가지 큰 Grub2 안내서가 있습니다.
GNU Grub 2 는 또 다른 훌륭한 자료입니다. 그는 Karmic의 Grub2를 조정 하는 스크립트 세트를 가지고 있습니다 ( 전체 공개 : 나는 시도하지 않았습니다 ).
Grub Wiki의 테마 형식 페이지는 Grub2 테마를 해킹해야합니다.