web-dev-qa-db-ja.com

Grub2からリカバリパーティションを非表示にする方法

友人のPCにLinuxディストリビューションをインストールしました。彼はLinuxやWindowsの使い方をよく知らないので、できるだけ簡単にしたいと思います。 GRUBをインストールすると、HPがインストールしたリカバリパーティションと、リストの最初のWindowsが検出されました。

Grubのマニュアルファイルと設定ファイルをグーグルで調べた後でも、GRUBからパーティションを非表示にする方法がわかりません。私は見た 30_osproberが、OSを除外する明確な方法が見つかりませんでした。

GRUBメニューからOS /パーティションを除外するための正しい方向を誰かに教えてもらえますか?

1
Nostradamnit

//編集//編集により変更されました(入力中に変更されたことを誓います)

汚い解決策はgrub.cfgを編集することですが、これはカーネルのアップグレードが行われるたびに行う必要があります。

Grub v2の場合:(これに注意IS非推奨)

vim /boot/grub/grub.cfg

これを実現する正しい方法は、/ etc/grub.d/30_os-prober(前述のとおり)を編集して、特定のパーティションを無視するように指示することです。適切なガイドがここにあります ここ

汚い解決策#2は、バディのgrub.cfgからその行をコメントアウトするスクリプトを実行することです。

1
Dan M.

この投稿 (6セクション)のガイドラインに従いました

GRUB 2は、Windows(Vista)リカバリパーティションのメニューエントリを見つけて作成します。少なくともVistaでは、メニュー名は通常のVistaオペレーティングパーティションと同じですが、唯一の違いはパーティションの指定です。メニューからリカバリパーティションエントリを削除するには:

  • 既存の/etc/grub.d/30_os-proberファイルをバックアップし、更新中に実行されないようにバックアップから実行可能ビットを削除し、編集のためにオリジナルを開きます(セクションは134行目から始まります)。

    Sudo cp /etc/grub.d/30_os-prober /etc/grub.d/30_os-prober.original  && Sudo chmod -x
    

    /etc/grub.d/30_os-prober.original

    gksu gedit +83 /etc/grub.d/30_os-prober &
    
  • 正確なタイトルとWindowsリカバリパーティションを決定します。これらは/boot/grub/grub.cfg fileにあります。以下のエントリを追加します。この例では、menuentryは「WindowsVista(ローダー)(/ dev/sda1上)」として表示されています。タイトルは通常のタイトルとリカバリのタイトルで同じである可能性があるため、正しいパーティションを選択していることを確認してください。 $LONGNAME${DEVICE}の内容は、リカバリパーティションのmenuentryの引用符の間の正確な内容である必要があります。

    for OS in ${OSPROBED} ; do
    DEVICE="`echo ${OS} | cut -d ':' -f 1`"
    LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`"
    LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '^' ' '`"
    BOOT="`echo ${OS} | cut -d ':' -f 4`"
    
    if [ -z "${LONGNAME}" ] ; then
     LONGNAME="${LABEL}"
    fi
    
    # Added to remove Windows Recovery
    if [ "$LONGNAME" = "Windows Vista (loader)" ] && [ "${DEVICE}" = "/dev/sda1" ] ; then
    continue
    fi
    # End Added
    

ファイルを保存してから、次のコマンドを実行します。

Sudo update-grub

Vistaの代わりに、Windows 7(方法は同じ)を考えなければならず、すべてが機能しました。

5
Fabrizio C

ファイル/ etc/default/grubに追加できます

GRUB_OS_PROBER_SKIP_LISTとスペースで区切られたUUIDs @ path_to_deviceのリスト

例:GRUB_OS_PROBER_SKIP_LIST = 12345 @/dev/sda1

oS_PROBERにこれらのファイルシステムをスキップさせる。

Lsblk-fsからUUIDのリストを取得できます

詳細は GRUB_OS_PROBER_SKIP_LIST です。

3
user948930