2011-01-06 3 views
0

私はLinuxとbashが初めてのので、何が間違っているのか分かりません。私はショーをしないようにし、3秒間シフトを押した後にショーをします。これはうまくいった。次に、ここで読んだ通り、「シフト」を含む「30_os」プローバーの線を「F11」に変更しました:http://www.gnu.org/software/grub/manual/grub.html(13.3.33)。 F11キーを押すと何も起こりません。シフトを押すと「Grub is loading」が表示され、デフォルトのOS(Ubuntu)がgrubメニューを表示せずに読み込まれます。Grub 2、シフトキーを変更する

これは私は、/ etc/default/grubのコンテンツの一部です:

# 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から(私見)重要な一部である:

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コールはfalseを返し、残りのkeystatus条件ロジックはスキップされます。

関連する問題