多くの人々が、すべてのUEFIガベージのために、Windows 8マシンでLinuxをデュアルブートする問題を抱えていることを知っています。実際、昨年も同様の問題がありました。
buntuの横にWindows 8をインストールした後、8しか起動できません
そのリンクは、私が問題をどのように修正したかを示しています。これが私の問題です。私はOSを台無しにして、すべてをゼロから再びロードすることにしました。 Windows 8を再インストールし、Ubuntu 14.04のコピーを取得しました(以前は12.04を使用していました)。 Windows 8が強制的に起動するのと同じ問題を抱えていますが、以前は問題が解決していませんでした。ライブCDから次のコマンドを実行しました。
Sudo add-apt-repository ppa:yannubuntu/boot-repair && Sudo apt-get update
Sudo apt-get install -y boot-repair && (boot-repair &)
ブート修復が有効なコマンドではないことに関するあらゆる種類のエラーが表示されます。私はこれを使用して最終的にブート修復を実行することができました:
Sudo add-apt-repository -y ppa:yannubuntu/boot-repair
Sudo sed 's/trusty/saucy/g' -i /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list
Sudo apt-get update
Sudo apt-get install -y boot-repair && boot-repair
UEFIがオンになっているという警告が表示され(無効になっていることを確認する方法をすべて理解した後)、ブート修復エラーが発生します。生成されるメッセージは次のとおりです。
http://paste.ubuntu.com/7852448/
通常のブートプロセスを停止し、ブートメニューからubuntuを選択すると、Ubuntuを起動できることに気づきましたが、それが最高です。
また、Windowsからこのコマンドを実行してみました。
bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi
私はここで死にかけています。皆さんが提供できるヘルプはどれもすばらしいでしょう。ありがとう!
さて、それを信じるかどうか、私はそれを修正しました。実際に機能するまで何度かboot-repairを再実行しました... boot-repairでコピーと貼り付けを行う行がいくつかあり、そのうちの1行が失敗していました。コマンドをつなぎ合わせるのではなく、個々の行に分けたので、エラーが少なくなりました...そして、Grubはうまくロードされました...
すべての助けてくれてありがとう!
HPラップトップをWindows 8/8.1とUbuntu 14.04.02の間でデュアルブートするための重要な手順と情報を次に示します。このラップトップは非常にモダンなPavilion g7-2215dxです。
このラップトップ(およびおそらく最新のHPラップトップのほとんど)のBIOSにはUEFIブートメニューがあり、そのメニューが表示されたらESCを押してからF9を押すとアクセスできます。このメニューは、スタンザがEFIパーティションで適切にセットアップされ、ディスクが適切にレイアウトされている場合に適切に機能します。 (つまり、UbuntuがEFIパーティションに正しい変更をロードすることを許可した場合、またはブート修復を実行した場合、およびパーティションが適切な場所にある場合)残念ながら、Ubuntuインストーラーは、UEFIが存在する場合、システムには単一のWindowsパーティションがあり、ブートメニューはありません。現実には、これらのHPマシンにはUEFIブートストアにリストされている隠しリカバリパーティションがあり、Windowsブートメニューが表示されない理由は、HPがブートメニューのタイムアウトを0に工場で設定しているためです。 Ubuntuインストーラーは、既に存在するマルチブート構成を理解していないようであるため、エントリが適切に作成されません。
このBIOSは、ブート時に{fwbootmgr}の代わりに{bootmgr}にショートカットします。ただし、F9コマンドは{fwbootmgr}に正しく移動します。これが、{bootmgr}を変更する一般的なハックが機能する理由です。
HPはセキュアなgrubブートローダーがBIOSで動作できるようにするキーを配置したため、セキュアなブートをオンのままにしてUbuntuをインストールできます。残念ながら、grubのバグのため、セキュアブートをオンにしてデュアルブートのままにすることはできません。セキュアブートモードでは、grubがWindowsブートローダーに制御を移すと、ローダーのキーが一致しないように見えるためです。セキュアブートをオンのままにして、Ubuntuのみをインストールできます。 ORセキュアブートをオンのままにして、F9キーを使用して手動でgrubまたはWindowsを選択し、grubで直接起動することを忘れることができます。
Ubuntuのデフォルトインストーラーがgrubを/ dev/sdaにインストールすることを許可しないでください。また、ブートローダーを/ dev/sda2(またはEFIパーティション)にインストールする必要があります。Ubuntuのインストールでは、プライマリパーティションではなく論理パーティションを作成することもお勧めします。
もう1つのキーは、何かの起動優先度を変更すると、起動に干渉することです。つまり、インストール前にUSBキーまたはCDROMから起動するようにBIOSを変更してからインストールすると、UbuntuがUEFIエントリを作成するときに、その起動順序に基づいて実行されます。インストールを完了してからBIOSを変更してハードディスクから起動すると、混乱してしまいます。 BIOSのブート順序を変更すると、BIOSはEFIパーティション上のUEFIブートストアを変更します。通常、これらの変更は正しくありません。
Ubuntuのインストールが完了し、ラップトップがWindowsに再起動したら、管理コマンドプロンプトに移動してコマンドを実行します。
bcdedit /set {bootmgr} path \EFI\Ubuntu\shimx64.efi
bcdedit /set {bootmgr} displaybootmenu no
EasyBCD 2.2はこれらのマシンのEFIパーティションで壊れています-作成者またはEasyBCDにはテストするマシンがなく、彼のソフトウェアはいくつかの誤った仮定を行っており、EFIパーティション上のUEFIストアを正しく解釈できません。このユーティリティを使用して、テスト中にデュアルブートディスクを複数回完全にスコッチしました。どのような状況でも使用することはお勧めしません!!!また、EFIパーティションがスコッチになった場合、WindowsリカバリDVDはデュアルブートUEFIシステムを修正しません-再フォーマットする必要があります-それらはそのパーティションに触れないでください!!!! Windowsバックアップもそうだとは思いません。ブロックバックアップユーティリティはMacrium Reflectを好むかもしれません。
これまでに私が見つけたEFIパーティションをいじるのに最適なツールは、Windowsでのbcdeditです。 bcdedit /?を実行しますおよびbcdedit/enum ALL/vおよびbcdedit/enum /?など-基本的に/を実行しますか? bcdeditのすべてのオプションをオフにすると、ブートの仕組みについて多くのことを学ぶことができます。
後でWindowsアップグレードをロードする(つまり、Windows 8からWindows 8.1に移行する)場合、新しいWindowsインストーラーはEFIをいじり、デュアルブートを再び無効にします。デュアルブートバックを取得できない場合があります。これを行った後に得た1つのエラーは、grubがディスクの先頭から離れすぎていると言ったブート修復からでした。どうやら、Windows 8.1更新プログラムはEFIパーティションを移動しました。再フォーマットするまで、そのマシンをgrubで起動することはできませんでした。
これらのマシンには「スマート」BIOSが搭載されていますが、どのようにスマートになっていますか? EFIストアを読み取り、ブートメニューを実行しようとし、失敗した場合はWindowsをブートするようにハードコードされているため、スマートです。そのため、EFIストアでミスを犯しても有用なエラーメッセージ(間違った名前のファイルなどが見つからないなど)が表示されず、Windowsが起動します。 PCを台無しにするユーザーからのサポートコールを減らすように設計されています。そして、EFIストアで誤ったエントリであると思われるものを検出した場合、POST中にそれを消去し、正しいエントリであると考えるものに置き換えることがあります。
ちなみに、工場出荷時のリカバリDVDでは、デュアルブート用にディスクをすべてパーティション分割する機会が与えられない場合があります。通常、パーティションの場所をハードコーディングします。
要約すると、EFIパーティションは、以前のブートスキームよりも大幅に進歩しており、今後使用されるため、慣れて、学習することができます。すべてのHPマシンには、FキーとWindows 8以降の選択のさまざまな組み合わせでアクセスされるHPリカバリパーティションとWindowsリカバリパーティションがあり、これはすべてのPCメーカーにマシンにはリカバリCDを提供しないでください。 (主に著作権保護対策として)これらのブート可能パーティションはすべてEFIパーティションに適切にセットアップされており、問題はマシンのBIOSがすべてEFI、および多くのユーティリティプログラム(EasyBCD、 Ubuntuインストーラー自体、およびHP BIOS)は、EFIでのマルチブートセットアップを適切に解釈せず、変更を加えると事態が混乱します。ただし、通常はWindowsでbcdeditを使用して問題を修正できますが、EFIを理解する必要があるため、必要な読み取りを行ってください。
試してくださいブート修復ここから入手できます- http://sourceforge.net/projects/boot-repair-cd/files / にインストールしますCD/DVD/USBブートし、32/64ビットセッションを要求するときに32ビットを選択した場合64ビットが64ビットを選択している場合、PCは32ビットであり、更新を要求する場合は[いいえ]をクリックし、スキャンが終了したら推奨修復
ブート修復の出力、特に表示されるefibootmgr
出力に基づいて、shouldは現在動作しています。 (1つの警告:ESPにEFIブートローダーの証拠はありませんが、Windowsが起動しているという事実は、これがブート修復の省略に違いないことを意味するため、その証拠を無視しています。)ファームウェアがひどく壊れています。以前の質問では、HPラップトップを持っていると述べており、多くのHPがこのようなひどく壊れたEFIを持っていることが知られています。したがって、私の最初の提案は、HPにファームウェアの更新があるかどうかを確認することです。ある場合は、それを適用して、Windowsのbcdedit
コマンドで再試行します。それが最も効果的です。
また、セキュアブートを無効にした場合は、bcdedit
でgrubx64.efi
を指定するのが適切です。セキュアブートがアクティブな場合、mustshimx64.efi
ではなくgrubx64.efi
を指定する必要があります。 shimx64.efi
の指定は、ファイルがインストールされている場合、通常は非セキュアブートシステムでもそうであるため、セキュアブートが非アクティブの場合にも機能します。
もう1つのポイント:まだ行っていない場合は、must(Windows高速起動機能。説明は こちら (他の場所の中でも)。その機能を有効のままにすると、ブートローダーが存在するESPを含む共有パーティションでファイルが破損する可能性があります。これが、ブート修復がブートローダーを検出しなかった理由です。 ESP、そしてそれはあなたの問題に貢献していると考えられます。
このアドバイスに従わない場合は、2つの選択肢があります。
EFI\ubuntu\grubx64.efi
またはEFI\ubuntu\shimx64.efi
の名前を変更します。または、 別のEFIブートローダー に適切に名前を変更して、Microsoftのブートローダー(EFI\Microsoft\Boot\bootmgfw.efi
)ブートローダーの構成を調整します。これはGRUBを使用して手動で行うのは難しいですが、ブート修復にはジョブを実行するオプションがあります。これは高度なオプションの1つであり、「EFIブートローダーファイルのバックアップと置換」などと呼ばれています。 (正確な言葉遣いは思い出せません。)これは1〜2年前のデフォルトでしたが、ほとんどの場合は過剰であり、壊れていないEFIを搭載したコンピューターで多くの新しい問題を引き起こす可能性があるため、もはやデフォルトではありません。あなたはそれを使用して、結果に応じて生きるか、この方法で他のブートローダーをインストールする必要があるかもしれません。