2011-01-06 3 views
0

저는 리눅스와 bash를 처음 사용하기 때문에 잘못된 것을 알지 못합니다. 나는 보여주지 않는 땅벌레를 세우고, 3 초 동안 교대조를 한 후에 보여줍니다. 이것은 잘 동작했다. 그런 다음 여기를 읽으면서 'shift'가 'F11'인 30_os-prober (아래에서 볼 수 있듯이)를 변경했습니다 : http://www.gnu.org/software/grub/manual/grub.html (13.3.33). 이제 F11 키를 눌러도 아무 일도 일어나지 않습니다. Shift 키를 누르면 'GRUB로드 중입니다.'라는 메시지가 표시되고 기본 OS (Ubuntu)가 GRUB 메뉴를 표시하지 않고로드됩니다.Grub 2, 시프트 버튼 변경

이 내을/etc/기본/애벌레 내용의 일부입니다

# If you change this file, run 'update-grub' afterwards to update 
# /boot/grub/grub.cfg. 

GRUB_DEFAULT="Custom Menu" 
GRUB_HIDDEN_TIMEOUT=1 
GRUB_HIDDEN_TIMEOUT_QUIET=true 
GRUB_TIMEOUT=0 
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` 
GRUB_CMDLINE_LINUX_DEFAULT="splash" 
GRUB_CMDLINE_LINUX=" splash vga=799 quiet" 

이것은 /etc/grub.d/30_os-prober에서 (IMHO) 중요한 부분입니다 :

adjust_timeout() { 
    #if [ "x${found_other_os}" = "x" ] ; then 
    if [ "x${GRUB_HIDDEN_TIMEOUT}" != "x" ] ; then 
     if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then 
    verbose= 
     else 
    verbose=" --verbose" 
     fi 

     if [ "x${GRUB_HIDDEN_TIMEOUT}" = "x0" ] ; then 
    cat <<EOF 
if [ \${timeout} != -1 ]; then 
    if keystatus; then 
    if keystatus --F11; then << There I changed shift to F11 
     set timeout=-1 
    else 
     set timeout=0 
    fi 
    else 
    if sleep$verbose --interruptible 3 ; then 
     set timeout=0 
    fi 
    fi 
fi 
EOF 
     else 
    cat << EOF 
if [ \${timeout} != -1 ]; then 
    if sleep$verbose --interruptible ${GRUB_HIDDEN_TIMEOUT} ; then 
    set timeout=0 
    fi 
fi 
EOF 
     fi 
    fi 
    #fi 
} 

감사합니다.

답변

0

제공된 링크의 keystatus 문서 (및 필자가 만났던 다른 keystatus 문서)는 키 특정 매개 변수로 --shift --ctrl 또는 --alt만을 허용 함을 나타냅니다. 아마도 F11과 같은 다른 키에는 작동하지 않을 수도 있습니다.

주의해야 할 또 다른 점은 keystatus가 모든 플랫폼에서 작동하지 않는 것 같습니다. 이 경우 첫 번째 keystatus 호출은 false를 반환하고 나머지 keystatus 조건부 논리는 건너 뜁니다.