私のコンピュータには、sdaにデュアルオペレーティングシステム(debian --buster + win10)がインストールされ、sdbに単一のオペレーティングシステム(debian Buster)がインストールされている2つのディスクがあります。
コンピュータを再起動するたびに、グラブメニューが次のように表示されます。
Debian GNU/Linux
Advanced option for Debian GNU/Linux
Windows Boot Manager(on /dev/sda2)
Debian GNU/Linux 10(buster) on /dev/sda6
Advanced options for Debian GNU/Linux 10(buster) (on /dev/sda6)
System setup
Debian GNU/Linux
最初の入力を選択すると
df /boot/grub/grub.cfg
/dev/sdb1
/boot/grub/grub.cfg
としてアップロードしましたがhttps://www.dropbox.com/s/9qjmk178jlj2gha/grub.cfg-sdb1?dl=0
、
Debian GNU/Linux 10(buster) on /dev/sda6
最初の入力を選択すると
df /boot/grub/grub.cfg
/dev/sda1
私がアップロードした/boot/grub/grub.cfg
のはhttps://www.dropbox.com/s/kf94rbc9g1xpx8e/grub.cfg-sda1?dl=0
。
私の期待:コンピュータを再起動するたびに、次のようにgrubメニューの順序を変更します。
Debian GNU/Linux 10(buster) on /dev/sda6
Advanced options for Debian GNU/Linux 10(buster) (on /dev/sda6)
Debian GNU/Linux
Advanced option for Debian GNU/Linux
Windows Boot Manager(on /dev/sda2)
System setup
私は次のように調整します。
sudo mount /dev/sda2 /mnt
sudo grub-install --efi-directory=/mnt
sudo grub-mkconfig -o /boot/grub/grub.cfg
再起動してgrubメニューを見てください。
メニューにカーソルがある理由
Advanced options for Debian GNU/Linux 10(buster) (on /dev/sdb1)
最初のメニューの代わりに?
コンピュータを起動するたびにカーソルが最初のメニューにあるように、次のグラップメニューを作成する方法は?
答え1
簡単に使えますgrub-customizer
(https://packages.debian.org/buster/grub-customizer)公式のDebianリポジトリのgrubファイルを操作することなく、必要な作業を完全に実行します。
synaptic
標準のDebianインストールに付属のGUIを使用してインストールできます。
また、変更をに保存することを忘れないでくださいgrub-customizer
。
答え2
関連質問:Grubの起動順序を変更する方法
引用:
- https://olinux.net/change-grub-boot-order-linux/
- https://askubuntu.com/questions/100232/how-do-i-change-the-grub-boot-order
- https://wiki.debian.org/GrubConfiguration
- https://www.linuxquestions.org/questions/debian-26/grub2-debian-squeeze-change-boot-order-906606/
私には役に立つような答えを書いています。
sudo gedit /etc/grub.d/10_linux
使用または慣れることができvi
ますnano
。このセクションのファイルを確認してください。
linux_entry ()
{
os="$1"
version="$2"
recovery="$3"
args="$4"
if ${recovery} ; then
title="$(gettext_quoted "%s, with Linux %s (recovery mode)")"
else
title="$(gettext_quoted "%s, with Linux %s")"
fi
printf "menuentry '${title}' ${CLASS} {\n" "${os}" "${version}"
if ! ${recovery} ; then
save_default_entry | sed -e "s/^/\t/"
fi
私の投稿のこの文は次のように見えますが、
linux_entry ()
{
os="$1"
version="$2"
type="$3"
args="$4"
if [ -z "$boot_device_id" ]; then
boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")"
fi
if [ x$type != xsimple ] ; then
case $type in
recovery)
title="$(gettext_printf "%s (Kernel: %s - recovery mode)" "${os}" "${version}")" ;;
fallback)
title="$(gettext_printf "%s (Kernel: %s - fallback initramfs)" "${os}" "${version}")" ;;
*)
title="$(gettext_printf "%s (Kernel: %s)" "${os}" "${version}")" ;;
esac
if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then
replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')"
quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)"
title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;"
grub_warn "$(gettext_printf "Please don't use old title \`%s' for GRUB_DEFAULT, use \`%s' (for versions before 2.00) or \`%s' (for 2.00 or later)" "$GRUB_ACTUAL_DEFAULT" "$replacement_title" "gnulinux-advanced-$boot_device_id>gnulinux-$version-$type-$boot_device_id")"
fi
echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
else
echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/"
fi
if [ x$type != xrecovery ] && [ x$type != xfallback ] ; then
save_default_entry | grub_add_tab
fi
私はシェルを初めて使用します。だから私は何もしません。
デフォルトパーティション以外のパーティションのカーネルタイトルを変更するには、以下を編集する必要があります。
/etc/grub.d/30_os-prober
文書
このセクションの:
linux)
LINUXPROBED="`linux-boot-prober ${DEVICE} 2> /dev/null | tr ' ' '^' | paste -s -d ' '`"
prepare_boot_cache=
for LINUX in ${LINUXPROBED} ; do
LROOT="`echo ${LINUX} | cut -d ':' -f 1`"
LBOOT="`echo ${LINUX} | cut -d ':' -f 2`"
LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '^' ' '`"
LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`"
LINITRD="`echo ${LINUX} | cut -d ':' -f 5`"
LPARAMS="`echo ${LINUX} | cut -d ':' -f 6- | tr '^' ' '`"
if [ -z "${LLABEL}" ] ; then
LLABEL="${LONGNAME}"
fi
if [ "${LROOT}" != "${LBOOT}" ]; then
LKERNEL="${LKERNEL#/boot}"
LINITRD="${LINITRD#/boot}"
fi
cat << EOF
menuentry "${LLABEL} (on ${DEVICE})" --class gnu-linux --class gnu --class os {
EOF
これは回答リンク。
答え3
とにかくライブスタートに適したソリューションは次のとおりです。 (私はリアルタイムモードでのみ作業します)。
あなたはまだこれに興味があるかどうかはわかりませんが、誰かが恩恵を受けると確信しています。 grubフォルダの下のconfigフォルダに入ると、bootmenu.cfgファイルがあります。ファイルで最後の段落の程度があなたが探しているものです。
このスニペットは「set_default_entry」で始まります。本当に情熱ですね。ここでは、最初のifステートメントのデフォルトの「言語_キーボード_タイムゾーン」を変更したいと思います。
set_default_entry
if is_enabled l10n_menu; then
if [ -z "$lopts" ]; then
set default="language_keyboard_timezone"
set timeout=-1
else
set default="linux"
set timeout=60
fi
fi
Linuxオペレーティングシステムの起動項目に変更したい場合は、このメニューの名前を知る必要があります。これは grub フォルダーの grub.cfg ファイルにあります。 「デフォルト設定」を参照してください。
set default=linux
menuentry " MX-21.3 x64 (January 15, 2023)" "$kernel" "$initrd" "$kopts" --id=linux {
kernel="$2"
initrd="$3"
shift 3
linux /antiX/${kernel} quiet splasht nosplash $@
initrd /antiX/${initrd}.gz
}
この場合は「Linux」です。確認のために、その下に私のディストリビューション名MX-21.3 x64が表示されます。この基本項目「linux」も、最初のコードスニペットのelse文で設定されたものと同じです。