Windows 10を外部USB 3.0 HDDにインストールしました。現在、起動できる唯一の方法は、BIOS起動オプションに移動してリストから選択することです。
Ubuntu 16.04を内部M.2 SSDにインストールしましたが、Ubuntuインストーラーは、期待どおりに外部ドライブを起動するGRUB2のオプションを自動的に追加しませんでした。
Windows 10がインストールされている外部ドライブから起動するようgrubに指示するメニューエントリを追加する方法がわかりません。外付けドライブのuuidで検索コマンドを使用してルート変数を設定できることは知っていますが、その後ブートコマンドを使用する方法や、ブートオプションを追加するために編集するファイルはわかりません。
[〜#〜] update [〜#〜]:受け入れられた答えのようなことをすることになりましたが、もっと簡単です
menuentry "Windows 10" {
set root=(hd0,msdos1)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
通常、Grubはos-prober
をmountedパーティションで実行し、エントリを自動的に追加します。
カスタムメニューエントリの場合は、/etc/grub.d/40_custom
に独自の構成を追加できます。 os-proberに依存するには、Grubの設定が更新されるたびに他のOSのパーティションが常にマウントされる必要があるため、このオプションをお勧めします。これは、アップデートマネージャーが新しいLinuxカーネルをインストールするか、grubパッケージ自体を更新する場合(例:セキュリティアップデート)。
次の手順では、UbuntuがUEFIで起動し、Windows 10も同じことを行うと仮定します。そうでない場合は、 こちら または Arch wikiの記事 から次のコードを借りました:
menuentry "Microsoft Windows Vista/7/8/8.1 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root $hints_string $fs_uuid
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
これを40_customに配置し、$hints_string
および$fs_uuid
変数をgrub-probe
コマンドからの出力に置き換えます。これを行うには、Windows To GoドライブのEFIシステムパーティション([〜#〜] esp [〜#〜]の略)をマウントする必要があります。最も簡単な方法は、gnome-disks
を起動し、ドライブとパーティションを選択してから、再生ボタン(‣)をクリックし、ドライブをマウントした場所(通常は/ media/your_username)をメモし、$esp
次のコマンドの文字列(必要に応じて引用符を追加):
# fs_uuid
grub-probe --target=fs_uuid $esp/EFI/Microsoft/Boot/bootmgfw.efi
# hints_string
grub-probe --target=hints_string $esp/EFI/Microsoft/Boot/bootmgfw.efi
GRUB=と指定して、他のOSの検出を試みてください。
ターミナル(CTRL+ALT+T)、次のコマンドを実行します:
Sudo update-grub
それでもうまくいかない場合は、ライブDVD/USBから起動して、ターミナルから次のコマンドを実行してみてください。
Sudo grub-install /dev/sda #Replace block accordingly