web-dev-qa-db-ja.com

デュアルブート後、GrubにWindows 8オプションが表示されない

そのため、Windows 8マシンをUbuntu 12.04で正常にデュアルブートしました。ただし、ブート時に読み込むOSを選択する便利な方法はまだありません。

Ubuntuをインストールしても、コンピューターはWindows 8を直接読み込みます。次に、grubx64.efiをブートローダーのホワイトリストに追加しました。しかし、その後、私のマシンはGRUBの影さえ現れずにUbuntuを直接ロードします!

ブート修復を使用して、このpaste.ubuntu URLを取得しました: paste.ubuntu.com/1326074 。ブート修復を実行した後(およびgrubx64.efiファイルのリストを再作成)、GRUBが表示されますが、Windows 8オプションはありません!

最後に、Sudo fdisk -lを実行しましたが、次のことがわかりました。

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6396389f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

私の問題は上のfdiskからの警告と関係があると推測していますが、どうすればいいのかわかりません。今、どうすればいいですか?

編集

私のetc/default/grubは次のとおりです。

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

また、記録のために、 これは私が従ったことです デュアルブートのインストール中です。チュートリアル(これは11.10を使用しています。注意する必要があります)では、この問題については何も言及していません。そこに私がやるべきではないことはありますか?

25
skytreader

まず、fdisk -l出力は問題ではありません。これは GUID Partition Table(GPT) パーティションシステムを使用しているとディスクを識別するだけです。パーティションを表示するには、GPTを認識しないgdiskではなく、partedfdiskなどのGPT対応ツールを使用する必要があります。

2番目に、適切なエントリを/etc/grub.d/40_customに追加してからSudo update-grubを実行することにより、GRUBを取得してWindowsをチェーンロードできます。エントリは次のようになります。

menuentry "Windows 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/BOOT/bootmgfw.efi
}

ただし、詳細はインストールによって異なる場合があります。

3番目に、rEFIndがいと考える場合は、rEFIndのドキュメントで説明されているように 、別のrEFIndテーマをいつでも試すか、独自のテーマを作成できます。 あるいは、テキストモードのブートローダー、refind.conftextonlyオプションを設定できます。 gummiboot。 に切り替えると、同様の目的を達成できます。

第4に、rEFIndが定期的にエラーを報告している場合、それらを書き留めるか、デジタルカメラで画面の写真を撮って報告してください。 (私はrEFIndのメンテナーです。)誰も報告していないバグは修正できません。または、rEFIndのバグでない場合、メッセージは問題の解決方法に関する手がかりを提供する場合があります。

最後に、GRUBを使用せずにrEFInd(またはgummiboot)経由でLinuxを起動することができます。別のEFIブートローダーが必要なだけです。私の個人的な好みは、Linuxカーネル EFIスタブローダーです。 これは3.3.0以降のカーネルでのみ利用可能です。 Ubuntu 12.04には3.2.0カーネルが付属しているため、Ubuntu 12.04用のビルド済みの3.3.0を見つける必要があります(そのようなことは聞いたことがありますが、便利なリンクはありません)。ソースコードから所有します。 (適切なカーネルに同梱されているUbuntu 12.10をインストールすることもできますが、おそらくLTSリリースが必要なため、これは最適ではない可能性があります。)Linuxのブートに関するrEFIndドキュメントの ページ を参照してくださいこれを設定する方法に関する追加の詳細。 ELILOまたはGRUB Legacyを使用することもできます。単純に遅延に反対する場合は、GRUB 2タイムアウト値を減らし、デフォルトでメニューを表示しないように設定できます。

17
Rod Smith

CDを使用してUbuntuを起動し、
「Try Ubuntu」を選択し、
インターネットに接続し、
を使用してターミナルウィンドウを開きます Ctrl-Alt-t そして、実行します:boot-repair

ブート修復が見つからない場合は、インストールします:

Sudo add-apt-repository ppa:yannubuntu/boot-repair &&
Sudo apt-get update &&
Sudo apt-get install -y boot-repair &&
boot-repair

推奨修復をクリックします。表示される新しいURLを紙に書きます。 PCを再起動すると、UbuntuとWindowsの両方にアクセスできるGRUBメニューが表示されます。問題がある場合は、新しいURLを示します。

8
Scott Stensland

両方とも/EFI/Microsoft/Boot/bootmgfw.efiで答えます。しかし、set root='(hd0,gpt1)'の正しい設定を取得するために、私は地獄のようにハッキングしました。あなたはそれが非常に簡単だと知っていれば

GRUBが開始したら:を押します c プロンプトでlsコマンドを指定します。
(hd0、gpt1)などのハードディスク上のパーティションのリストを取得します。
ls(hd0、gpt1)と入力して、他を試してください。
ラベルを見て、EFIと表示されていれば、ヒットしていることがわかります。

警告:Ubuntuのインストール方法によっては、EFIのラベルが付けられたパーティションがさらに存在する可能性があります。それらをすべて試してください。

7
Jørgen

Sudo update-grubを実行してみてください。これにより、Windows 8が自動的に認識され、GRUBに追加され、メニューが再構成されます。

それが失敗した場合は、/etc/default/grubファイルをここで共有してください。ご覧ください。

6
Tom Klino
  1. Super Grubをダウンロードして、その指示に従ってください。私はそれなしで家を出ることはありません。 GRUBメニューが表示されない場合に非常に役立ちます。

  2. Cdにロードして起動する必要があります。付属の指示に​​従ってください。

  3. また、ウィンドウの修正にも使用できます。 Windows 8でしか起動できないため、Linuxの修正プログラムを選択します。

これで遊んでくださいが、指示を読んでください。しばらくすると専門家のように感じるでしょう。 RS

1
Fox

私の究極の回避策

(* Tomは機能しなかったため、NikThのリンクは複雑すぎます。しかし、わざわざわざわざありがとう!)

インストール rEFInd


誰かが可能性のある欠陥とその修正を指摘するか、私の問題に対処するまで、私は自分の答えを受け入れます(残念ながら、「Windows 8をGRUB] _ easily ? ")。

Edit 8/6/17:最終的にこの問題を解決するためにrEFIndを使用しました(上記の承認済みの回答を参照)。

完全なソリューションとはほど遠い、rEFIndの使用は非常にハッキングの仕事のようです。 1つは、い(rEFIndでごめんなさい)であり、特定の.efi({ext2_x64、hfs_x64、iso9660_x64、reiserfs_x64} .efi)でアクセスが拒否されたことを通知します。押す*。そして最後に、Ubuntu efiを選択すると、GRUBがロードされます。これは、少なくとも複数のカーネルバージョンを保持する必要がないため、まったく不要な手順です。

要約すれば...

長所:私のシステムは、UEFI以前のデュアルブートとほぼ同じように機能するようになりました。短所:見苦しいだけでなく、起動時間が長くなります。

*このrEFIndは、Ubuntuパーティションでinstall.shを介してインストールされたことに注意する必要があります。 rEFIndの以前の経験(Windowsを介したセットアップ)には、この問題はありませんでした。

0
skytreader