ラップトップにプレインストールされたWindows 8およびLinux UEFIデュアルブート


10

Windows 8とArch Linuxを、Windows 8がプリインストールされた新しいSony Vaio E14にセットアップしようとしています。

これまでのところ:

  • リカバリメディアを使用して、W8を新しいSSD(元のHDDに切り替え)にインストールしました
  • W8パーティションの縮小、リカバリパーティションの削除、スワップの無効化
  • W8の起動がうまくいくことを確認した

アーチへ:

  • BIOSでセキュアブートを無効化
  • W8の起動がうまくいくことを確認した
  • ArchをCDから起動し、すべてを4番目と5番目のパーティションにインストールしました
  • EFIstubカーネルブートローダー用のrEFIndを設定する

その後、悪化しました。私はWindows 8以外は起動できませんでした(ただし、少なくとも問題なく動作していることをうれしく思います)。

試した:

  • EFI \ refind \を作成し、そこに.efiを配置する(Archのマニュアルに従って)
  • EFI \ boot \ bootx64.efiの上書き
  • EFI \ Microsoft \ Boot \ bootmgr.efiの上書き
  • EFI \ Microsoft \ Boot \ bootmgfw.efiの上書き--- YAY rEFIndが表示されました!

ここまでは順調ですね。私はW8 Boot \ディレクトリ全体をEFI \ windows8に保持し、そこにブートメニューエントリを設定しました。そしてそれはうまく起動しました。

しかし、再起動時にすべてが間違っていました-ブートローダー(refindまたはw8)ではなく、「オペレーティングシステムが見つかりません」。

EFIパーティションに誤ったFATテーブルがあったことを確認するために、ライブCDを使用してArchを起動しました。fsck.vfatで修正されました。EFI\ Microsoft \ Bootが元の状態に戻っていることがわかりました(すべての参照ファイルが削除され、W8ブートローダーに置き換えられました)。私はそれらを再度上書きし、rEFIndに戻って正しく表示され、Archは完全に起動可能です。

その後、私はEFI \ Microsoft \ Boot \ bootmgfw.efiの名前をbootmgfw.001.efiに変更するだけを試みました(その後、refindの.efiをbootmgfw.efiにコピーし、他のすべてのファイルをそのままにしました)。まったく同じ結果が得られました。GPT EFIパーティションを読み取り専用としてマークしようとしましたが、同じ結果です。

今はちょっと運が悪いです。Archは正常に起動しますが、W8も正常に起動しますが、その過程でEFIパーティションが破壊されます。

何かアイデアをありがとう、グーグルは私をここまで連れて行ってくれました。

PS-Windows 8はシャットダウン時にパーティションを破壊する可能性があります-W8でシャットダウンを注文すると、異常に長くかかります(約5秒ではなく約30分)。理論的には、通常のシャットダウンの代わりにラップトップをハードリセットすることでこれを解決することができますが、それは良くありません。


私はここで助けることができないと思います、私はものをテストするためのUEFIマシンを持っていません。それが最も望ましい方法ではないかもしれませんが、LinuxエントリをWindowsブートローダーに追加してそこから起動することもできますが、UEFIマシンではこれを試していません。手順についてはこちらを参照してください:superuser.com/a/499652/18050また、私は常にArchbootを使用してArchをインストールしています。公式のイメージを使用している場合は、UEFIシステムが考慮されるため、試してみてください
Xandy

これは、Arch LinuxとWindows 8の競合のようです。問題があるArch Linuxだけを支配する別のディストリビューションを試しましたか?
ラムハウンド

easyBCDの提案に感謝します。ぜひ試してみます。どのブートマネージャーが使用されているかは気にしないので、Windowsがそれを実行できれば、私はとても幸せになります。仕事から再び何かを台無しにする自由な時間があるときに明日結果を投稿します:) @Ramhoundそれは今のところちょっと痛いでしょう、そしてそれはArchに関連しているとは思いません-rEFIndは別のプロジェクトであり、私はすべて手作業でインストールしました(男性に続いて)。
itchy355

回答:


5

Windowsでコールドシャットダウン(電源ボタンを押す)を実行して、後でテストできるかどうかを確認するだけの価値があります。もちろん、これを定期的に実行することは望ましくありませんが、Windowsが更新されたESPデータを上書きしていることを確認すると役立つ場合があります。Windowsシャットダウン時に実際にファイルシステムに損傷を与えている場合、これはMicrosoftに報告する必要があるWindowsバグのように聞こえます。それが単にbootmgfw.efiファイルを置き換えるだけの場合、それは技術的にはMicrosoftの追求の範囲内であるため、実際にはバグではありません。

しかし、もっと広く言えば、linuxのefibootmgrプログラムを使用して、rEFIndを独自の名前で(たとえば、EFI/refindESPで)EFIに登録しようとしましたか?これは、rEFIndのドキュメントのLinuxの手動インストールに関するセクションで説明されています。または、install.shスクリプトを使用してインストールすることもできます。どちらの方法でもEFIモードのブートが成功する必要がありますが、rEFInd CDを使用してこれを実行するか、EFIモードで緊急ディスクからブートすることができます。

efibootmgr動作しない場合はbcfgこのArch wikiページで説明されているように、EFIシェルプログラムで使用してみてください。

これらの手順が機能しない場合は、efibootmgrまたはbcfgを使用してNVRAMからのエントリを削除してbootmgfw.efiから、rEFIndをとしてインストールしてくださいEFI/BOOT/bootx64.efi。理論的には、コンピュータはrEFIndを起動する可能性があります。これは正常に動作し、どちらのOSの起動も有効にするはずです。ファームウェアが好むかもしれません。けれども二つの潜在的な落とし穴がありますEFI/Microsoft/boot/bootmgfw.efiオーバーEFI/BOOT/bootx64.efi。Windowsは起動オプションをチェックし、起動時に独自のブートローダーをNVRAMに追加します。それでも、この方法は試してみる価値があります。

EFI仕様では、コンピューターがNVRAM設定(efibootmgrLinux、bcfgEFIシェル、または同様のプログラムによって管理される)を遵守する必要があるため、これらのユーティリティが機能しない場合、ファームウェアが壊れているため、別のモデルのコンピュータ。(ただし、返却する場合はなぜコンピューターを返却したのかを必ずソニーに伝えてください!)この種の問題は実際にはかなり一般的です。たとえば、NVRAMの設定を忘れてしまう「ハイブリッドEFI」を搭載したギガバイトのボードがあります。ただし、少なくともこのボードでは、選択したブートマネージャー/ローダーに名前を付けることで問題を回避できEFI/BOOT/bootx64.efiます。

それを機能させることができず、コンピュータを交換したくない、または交換できない場合は、回避策として他に2つの提案があります。

  • ブート可能なCDまたはUSBフラッシュドライブをrEFIndを手元に置いておき、Linuxをブートするときに使用できます。ただし、起動するたびに、ハードディスクからではなくリムーバブルメディアから起動するようにファンクションキーを使用する必要がある場合があります。
  • ディスクからパーティションをワイプし、MBRを使用してパーティションを再作成し、EFIモードではなくBIOSモードで両方のOSを再インストールできます。これにより、画像からEFIの乱れがなくなり、BIOSモードのGRUBをブートローダーとして使用できるようになります。ただし、これにはおそらくWindows 8インストーラの製品版が必要です。少なくともWindows 7では、OEMコピーはインストールモード(BIOS対EFI)に柔軟性がありませんでした。または、再インストールせずにEFIモードブートからBIOSモードブートに変換することもできます。反対の切り替えが可能です(説明のあるサイトへのリンクを投稿しようとしていましたが、このサイトでは2つを超えるリンクを投稿することはできません。申し訳ありません)。 BIOSへの変換はどこかにありますが、便利なURLがありません。グーグル検索は何かを変えるかもしれません。

最初の回答を投稿した後、このページを偶然見つけましたが、問題の少なくとも一部に別の原因が考えられます。Windows8は、ディスクへのサスペンド操作に似たシャットダウンメソッドを使用しているようです。その結果、WindowsをシャットダウンしてLinuxを起動すると、マウントされたパーティションが破損する可能性があります。ESPは通常Windows 7にマウントされていませんが、Windows 8の動作が異なっているか、ESP Windows 7にマウントされていて非表示になっている可能性があります。いずれにしても、管理者のコマンドプロンプトウィンドウで次のコマンドを入力することにより、Windows 8のこの機能を無効にできます。

powercfg /h off

確かに、Windows 8はコールドシャットダウン時に何も壊しません。私はエラーを投稿したくありません。結局のところ、私がブートローダーをめちゃくちゃにしてしまうからです:)
itchy355

私はをいじってみましたefibootmgr; これは、異常に多数のブートマネージャ(予想よりも3つ多い)が存在することを示しており、ディスクをより適切に調べるようになりました。そして、私は実際に2つの EFIパーティションを持っていることがわかりました:-x 2番目のパーティション(/ dev / sda2)だけがEFI system partitionGDiskにとして表示されたので、それが正しいパーティションだと思いました。もう1つは、同じサイズで標準のEFIファイル構造を持つFATパーティション(sda1)です。
itchy355

ブート順序を変更して、最初にrEFIndをロードし、次に ``、sony original ''をロードし、次に他のものをロードする場合、それはそれ自体をデフォルトに上書きします(windows、sony original、その他(refind))PS; すべてのビーイングは,,ウィンドウは「」私の上書きされることを考慮すると言ったbootmgfw.efi
itchy355

1
その間、私はpowercfg /h offw8で試してみましたが、W8がEFIパーティションを壊すのを修正しました。それは私が探していた聖杯です。
itchy355

powercfg /h off主な問題が修正されてうれしいです。一部のUEFI実装が「Windowsブートマネージャー」と呼ばれるブートローダーをリストの一番上に移動するようにコード化されているようだという情報を目にしたことがあります。したがって、使用するブートローダーの名前を変更するとefibootmgr、より適切なファイル名でrEFInd(または好きなもの)をインストールできるようになります。
Rod Smith、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.