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


25

したがって、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を使用していますが、注意する必要があります)では、この問題については何も言及していません。そこに私がしてはいけないことはありますか?


この回答を読んで、あなたを助けることがあります。askubuntu.com/questions/84501/...
NickTux

回答:


17

まず、fdisk -l出力は問題ではありません。GUIDパーティションテーブル(GPT)パーティションシステムを使用しているディスクを識別するだけです。あなたのパーティションを表示するには、代わりのような、GPT対応のツールを使用する必要がありますgdiskpartedではなく、fdiskGPTを理解しません、。

第二に、あなたはに、適切なエントリを追加することにより、チェーンロードWindowsにGRUBを取得することができるかもしれない/etc/grub.d/40_customし、次にやってsudo update-grub。エントリは次のようになります。

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

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

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

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のタイムアウト値を減らして、デフォルトでメニューを表示しないように設定できます。


1
まず、うわー、私はあなたがrEFIndのメンテナーであることを知りませんでした。次に、GRUBメニュー項目について...私はそれを試しましたが、うまくいきません。他の暗闇の中では、ESPパーティションを設定しようとしましたが、役に立ちませんでした。グラフィカルなGRUBエディターの1つを使用してみました(名前を忘れました)。最後に、rEFIndに関しては、報告しているエラーは重要ではありません(私の投稿を編集して、それを書き留めます)---起動時に、特定の.efiが見つからないことを教えてくれます。どこから来たのかわかりません。
スカイトレーダー

ESPで指定されたファイルの存在を確認します。また、ファイル名の大文字小文字が正しいことを確認してください。(それは問題ではありませんが、1つのバグのあるEFIがどこで機能するかを知っています!)それが役に立たない場合、このエントリを介してWindowsを起動しようとすると、GRUBはどのエラーメッセージを返しますか?
ロッドスミス

8

CDを使用してのUbuntuへのブートは、
「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を示します。


7

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

GRUBの起動時:プロンプトでc コマンドlsを与えるを押します。
あなたは(HD0、gpt1)などのようなのハードディスク上のパーティションのリストを取得する
タイプls(HD0、gpt1)などを試してみてください。
ラベルを見て、それがEFIと表示されている場合、ヒットしていることがわかります。

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


6

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

それが失敗した場合、/etc/default/grubここでファイルを共有してください、私たちは見ていきます。


1
こんにちは。sudo update-grubトリックをしませんでした。私は質問を編集して自分の質問を含めました/etc/default/grub。一方、私はNikThがリンクした答えを研究しています。
スカイトレーダー

3

/etc/grub.d/30_windowsこれを含むというファイルを作成してみてください:

#! /bin/bash
cat << EOF
menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
次に、実行sudo update-grubして再起動します。

完全なチュートリアル


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

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

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

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


0

私の究極の回避策

(* Tomは機能しなかったため、NikThのリンクは複雑すぎます。しかし、ちょっとお邪魔してくれてありがとう!)

rEFIndをインストールします。


誰かが可能性のある欠陥とその修正を指摘するか、問題に対処するまで、自分の答えを受け入れます(残念ながら、「Windows 8をGRUBに簡単に入れるにはどうすればよいですか?」

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

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

要約すれば...

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

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


Windowsを介した以前のrEFIndのインストールで、見つからなかったファイルに関するエラーが発生せず、Linuxからの現在のインストールで発生する場合、次の2つのことが進行中です。1)マザーボードが搭載されている大文字と小文字を区別するバグ。この場合、ファイルまたはディレクトリの大文字と小文字をいじることで問題が改善する場合があります。または2)ESPに奇妙な点があります(たとえば、FAT16とFAT32、またはいくつかの小さなファイルシステムの損傷)。一部のEFIは、ESPのファイルシステムについて非常にうるさいようです。正確なファイル名は、問題を絞り込むのに役立つ場合があります。
ロッド・スミス

OK。私の悪い。特定のefisを見つけることができないと言っているのではなく、特定のefisでアクセスが拒否されているというだけです(したがって、このefisが存在するので、アクセスできないだけですか?)。それらがどこから来たのかまだわかりませんが、私はこれらのファイルに注意しました。
スカイトレーダー

私の経験では、「アクセス拒否」はEFIの異常なエラーです。私の知る限り、EFIはLinuxのように所有権や許可をサポートしていないため、ディスク読み取りエラーがなければ意味がありません。EFIの下で、次の再起動時に蒸発する奇妙なディスク書き込みエラーを見てきました。この問題が引き続き発生する場合は、ハードウェア障害が発生した場合にディスクでSMARTテストを実行し、dosfsckで修復できない奇妙なファイルシステムの損傷がある場合にESPをバックアップおよび再書き込みすることを検討してください。それ以外に、どのファイルが問題を引き起こしているかを報告することは有用かもしれません。
ロッド・スミス

1
「アクセス拒否」メッセージは、ほぼ確実にセキュアブートに関連しています。このようなメッセージは、セキュアブートモードでrEFIndが未署名のEFIバイナリをロードしようとした場合に発生します。これについて困惑しているのは、rEFInd自体に署名されていないため、rEFIndをまったく起動できないことです。私の予感は、あなたのファームウェアにある種の奇妙なバグのある半活性化されたセキュアブート設定があるということです。現時点で最も簡単な解決策は、セキュアブートを完全に無効にすることですが、他にもあります。詳細については、rodsbooks.com / efi-bootloaders / secureboot.htmlの Webページを参照してください。
ロッドスミス

hpラップトップでは、f9を押してからgrubを起動する必要があります。また、私はそれを使用することはありませんが、Windowsをgrubから起動するオプションもあります。Windowsに飽き飽きしている場合は、電源を入れてWindowsを待ちます。Ubuntuを起動する場合は、電源を入れたらすぐにf9を押します。
geoffmcc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.