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

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

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する前に、不要な項目が削除されていることを確認できます。

答え2

/boot/grub/grub.cfg

#

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

#

テンプレートを使用して grub-mkconfig によって自動的に生成されます。

/etc/grub.d および /etc/default/grub の設定

#

Grubエントリを編集する正しい方法は、および/etc/default/grubを使用することです/etc/grub.d/

答え3

このエントリは os-prober で作成されます。オペレーティングシステム検出器:

説明: ドライブ・セット内の他のオペレーティング・システムを検出するユーティリティーです。このパッケージは、システムで利用可能な他のオペレーティングシステムを検出し、結果をマシンが読み取り可能な一般的な形式で出力します。

/usr/bin に os-prober パッケージのシェルスクリプトがあることを確認します。

skriptから実行可能フラグを削除するか、os-proberを削除できます。

編集:私が間違ったことは/usr/bin/os-proberを意味しました。 /etc/grub.dにはありません

答え4

次に削除できました。オペレーティングシステム検出器次のGrub構成を使用します。

1. 次のコマンドを使用してディスクの UUID を確認します。

sudo blkid

2.アップデート/etc/default/grubファイルに次の行を追加します。

GRUB_OS_PROBER_SKIP_LIST="UUID_OF_DISK_YOU_DONT_WANT_SCAN1 UUID_OF_DISK_YOU_DONT_WANT_SCAN2"

3. Grub 構成を再生成します。

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

メモ:grub2-mkconfig何らかの理由で無視されたディスクに関する情報は引き続き表示されますが、最後まで作成されません。/boot/grub2/grub.cfg文書。

関連情報