
Ubuntu 12.10とWindows 8を搭載したノートパソコンがあります。システムにWindows 8を最初にインストールし、次にUbuntuをインストールしました。
Ubuntuのインストール中に、インストーラは既存のパーティションがあることを認識しましたが、そのパーティションのオペレーティングシステムを確認できませんでした。空き領域に別のext4パーティションを作成し、Ubuntuをインストールしました。当初、grubはUbuntu用のエントリのみを追加し、Ubuntuは正常に実行されました。
さて、w8設定をGrubに手動で入力して修正したいと思います。/etc/grub.d/40_custom:
#!/bin/bash
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 8" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
#set root='(hd0,gpt1)'
search --fs_uuid --no-floppy --set=root --hint-bios=hd0,gpt2 --hint efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2
chainloader /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
}
このコマンドを使用して見つかった検索文字列(最後の2番目):sudo grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
grub構成を更新して再起動した後にWindows 8エントリを選択すると、次のエラーが発生します。
error: unspecified search type
error: file '/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi' not found
Press any key to continue
しかし、Ubuntuではそうするならls /boot/efi/EFI/Microsoft/Boot/b*
/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
/boot/efi/EFI/Microsoft/Boot/bootmgr.efi
/boot/efi/EFI/Microsoft/Boot/boot.stl
/boot/efi/EFI/Microsoft/Boot/bg-BG:
bootmgfw.efi.mui
bootmgr.efi.mui
Windows 8のエントリの編集をクリックし、egrub F2Shellを入力することを選択したls /boot/efi
場合、実行しようとしても実際にファイルは表示されません。
興味深いことに、この時点でこれを入力するとexit
Windows 8が起動します。
fdisk -l
認識しているか教えてください。/dev/sda1 as GPT partition
Grubが「メニューから直接」動作するようにするにはどうすればよいのアイデアがありますか?
答え1
見る再検索これは非常に便利で柔軟です(そしてするALT LinuxにUEFIサポートを追加しながら、テストからwin8を起動しました。
これはブートローダーではなくブートマネージャーなので、WBMとGRUBから選択でき、両方とも実際に適切なカーネルにチェーンロードできます。
答え2
検索行(最後)にシステムデバイスのUUIDを指定する必要があります。そしてEFIを使って起動したので、--biosタグを削除してください。
UUIDを見つけるには、次のコマンドを実行します。
sudo grub-probe --target=fs_UUID /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
答え3
問題は、ルートを「(hd0、gpt1)」に設定したことです。私は/boot/efi
grubがある場所(ディレクトリ)を想定しています。
したがって、書き込みは存在しない可能性が高い書き込み/boot/efi/...
に対応します。/boot/efi/boot/efi...
あなたは/boot/efi/EFI/...
に変えなければなりません。/EFI/...
答え4
現在同じ問題に直面していますが、grubコマンドで誤った結果が表示される理由を見つけることができます。実際、間違った.efiファイルパスを渡しています。
ここには2つのディスクがあり、grubはそれをhd1とhd2としてリストします。 grubコマンドを使用してgrub画面で「c」を押してからlsを実行すると、それを見つけることができます。
これにはすべてのgptパーティションとそのディスクがリストされており、両方のディスクに異なるパーティションがあるため、efiファイルの場所を簡単に識別し、grubエントリの場所をefiに変更できます。正しいパーティションはファイルがある場所です。
チェーンローダーのパスは、マウントポイントのないパスと一致する必要があります。 Ubuntuでディスクユーティリティを使用してこれを確認できます!
検索タイプが指定されていないというエラーが発生しますが、起動すると問題なくWindowsローダーが実行されます。
grubを終了するときにWindowsローダーがクリックされる理由に関するあなたの質問は簡単だと思います。 grubをバイパスすると、マザーボードの起動オプションに次のオプションを持つWindows uefiローダがあります。