このファイルを編集しないでください

このファイルを編集しないでください

GRUBブートメニューから2つのメニュー項目を削除したいので、ファイルからその項目をコメントアウトします/boot/grub/grub.cfg

menuentry 'Windows Boot Manager (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-FCD5-F73E' {
    ...
}
# menuentry 'Ubuntu 16.04.3 LTS (16.04) (on /dev/sdb1)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-844ea196-bb78-4f18-b7fd-58be4c491e92' {
#   ...
# }
# submenu 'Advanced options for Ubuntu 16.04.3 LTS (16.04) (on /dev/sdb1)' $menuentry_id_option 'osprober-gnulinux-advanced-844ea196-bb78-4f18-b7fd-58be4c491e92' {
#   menuentry 'Ubuntu (on /dev/sdb1)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-4.10.0-37-generic.efi.signed--844ea196-bb78-4f18-b7fd-58be4c491e92' {
#       ...
#   }
#   ...
# }

それからいつもsudo update-grubのように走った。ただし、これを行うと、grub.cfgファイルからコメントが解除されていないメニュー項目が返されます。

update-grub実行後にメニュー項目が起動オプションに表示されないようにコメント化されたままにするにはどうすればよいですか?実行しないとメニュー項目が除外されることがわかりますが、このコマンドを実行するたびにメニュー項目を手動でコメントアウトする必要がないように、不要な動作を削除したいとupdate-grub思います。update-grub

メモ:

  • どちらも不要なメニュー項目を再インポートしますupdate-grubupdate-grub2
  • 不要なメニュー項目は重複しています。すでにUbuntu用のメニュー項目があります。

ベストアンサー1

上記のように、編集は/boot/grub/grub.cfgこれを達成する良い方法ではありません。破損する可能性が高く、そうでなくても後でシステムアップデートがリリースされると復元されたことがわかります。

GRUB_OS_PROBER_SKIP_LIST値を明示的に追加することも/etc/default/grub良い解決策ではありません。UUIDこれは、コンピュータに接続できるすべての起動可能なディスクを手動で見つけてブロックする必要があるためです。また、ファイルの編集が/etc/defaultLinuxディストリビューションの動作をカスタマイズするのに好ましい方法であるかどうかはわかりません。

/usr/bin/os-prober他のプログラムが他の目的に使用できるため、完全に無効にすることも必ずしも良い考えではありません。

grubまあ、最善の解決策は、おそらく手動カスタマイズに属し、それに専念するプロファイルで作業することです。

オンDebianまたはオフにしたときにUbuntu自動的に作成されたブートエントリは、で処理されているようです/etc/grub.d/30_os-prober

ファイルを削除するか、実行権限を無効にしてgrub構成を再生成して、自動的に追加されたエントリを削除するだけです。これは私のコンピュータで動作します。

sudo chmod -x /etc/grub.d/30_os-prober

sudo grub-mkconfig -o /boot/grub/grub.cfg sudo update-grub

構成によって生成された出力を観察して再開/boot/grub/grub.cfgする前に、不要な項目が削除されていることを確認できます。

おすすめ記事