0

私はLinuxとbashを初めて使用するので、何が間違っているのかわかりません。grubを表示しないように設定し、Shiftキーを3秒間押した後に表示します。これはうまくいきました。次に、ここで読んだように、「shift」を含む30_os-proberの行を「F11」に変更しました:http ://www.gnu.org/software/grub/manual/grub.html (13.3 .33)。F11を押しても何も起こらず、Shiftキーを押すと、「Grubがロードされています」と表示され、デフォルトのOS(Ubuntu)がGrubメニューを表示せずにロードされます。

これは私の/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"

これは(IMHO)重要な部分です。/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
}

ありがとうございました。

4

1 に答える 1

0

あなたが提供したリンクのkeystatusドキュメント(および私が見つけた他のkeystatusドキュメント)は、キー固有のパラメーターとして--shift--ctrlまたは--altのみを受け入れることを示しています。おそらく、F11などの他のキーでは機能しません。

もう1つ注意すべき点は、keystatusがすべてのプラットフォームで機能するとは限らないことです。その場合、最初のkeystatus呼び出しはfalseを返し、残りのkeystatus条件付きロジックはスキップされます。

于 2011-03-01T08:15:22.467 に答える