GRUB OSリストにWindows 10を追加します


29

私は最近、学校からコンピューターを受け取りました。Windows 8.1がインストールされています。次に、Windows 8.1の別のコピーをインストールし(組み込みのWindows Proライセンスを使用します)、それをWindows 10にアップグレードしました。次に、Windows 8と10の両方にUbuntuをインストールしました。

/ boot用に別の255MB ext2パーティションを作成したことに注意してください。

さて、コンピューターを起動すると、最初にWindows 8とUbuntuのオプションでGRUBプロンプトが表示されます(grubプロンプトは既に非表示になっています)。ただし、Windows 10オプションはありません。Ubuntuを選択すると、コンピューターがUbuntuで起動します。ただし、Windows 8オプションを選択すると、Windowsブートローダーに送信され、Windows 8またはWindows 10のいずれかを起動するオプションが提供されます(ただし、この時点で、コンピューターは既にカーネルとどうやらMicrosoftはブートローダーの概念を誤解しており、それが「実際にブートローダーを表示する前にシステム全体を実際にブートする」ことを意味すると判断したようです。

Windowsブートローダーを無効にし、Windows 10オプションをGRUBに追加するにはどうすればよいですか?編集:Windowsブートローダーを無効にするように言われた人がいます。ただし、WindowsをGRUB OSリストに追加する方法はまだわかりません。誰でもこれを助けることができますか?

編集2:Windows 10をEasyBCDを使用してWindowsブートローダーから削除した後、数回再起動した後、Windows 10が自動的に再表示され、Windows 10が再表示されるように見えました。ただし、その後msconfigのOSのリストからWindows 10を削除しましたが、削除されたままになっているようです。

ただし、Windows 10をGRUBに表示することはできませんでした。GRUBが単にそれを検出しないかのようです。

また、私はこれを質問に入れて人々がそれを見るようにします-私はを使用してみboot-repairましたが、何の助けにもなりませんでした。


1
@ daltonfury42耳を傾けない場合、またはOPの要件が理解できない場合は、信じないでください!特別な要件のある典型的でない UEFIインストールのために、典型的なレガシーブートセットアップの一般的な問題にほとんど対処するツールを推奨することは、誤解を招き、逆効果です。
LiveWireBT

2
@LiveWireBTすみません。あなたの答えを見ました。コメントを削除しました(そして:Pを信じなくなりました)。ありがとう!
-daltonfury42

1
とにかく、Windows 10パーティション全体を削除してVMに移動するだけだと思います。
Hitechcomputergeek

なぜ人々がまだこれを支持しているのか、正直にわかりません。IMOは大きな問題ではないからです。ただし、今年は別の方法でこれを解決しました。MBRからGPTおよびUEFIブートに変換することです。基本的に、パーティションスキームをGPTに変換し、Windowsパーティションのサイズを変更し、EFIシステムパーティションを追加してrEFIndを追加し、Windowsインストールディスクを使用してWindows BCDを作成しました。これで、システムはUEFIブートを使用してブートし、OSでのプレイが簡単になりました。インターネットによると、WindowsのインストールをBIOSからUEFIに変換するのはそれほど難しくありませんでしたが、簡単でもありませんでした。
Hitechcomputergeek

1
このようなことをしたい、BIOSに固執したい将来のために-答えはWindows BCDにあると思います。Windows 10のインストールには適切なブートローダーやBCDなどがないため、実際には独立して起動することはできません。適切に行われれば、GRUBがWindows 10パーティションの自動検出を開始するという予感がします。
Hitechcomputergeek

回答:


25

つかいます:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

Ubuntuのターミナルのコマンド、おそらくそれはあなたの問題を解決します。

このコマンドにより、システムはWindowsインストールを自動的に検出し、GRUBリストに追加します。


2
これは残念ながら機能しませんでした。Windows 10パーティションを検出していないようです。
Hitechcomputergeek

1
実際、システムに同じ問題があります(windows 10とubuntu 14.04があります)。そして、このコマンドで解決しました。
ニールシャー

どのコマンドがそれを解決しましたupdate-grubgrub-install?また、別の/ bootパーティションがありますか?事は、私はそれが実際にsda6だと思う上に別のブートパーティションを持っています
Hitechcomputergeek

これらの2つのコマンドを(明らかに)実行しても解決しませんでした。
Hitechcomputergeek

7
sudo update-grubそれをやった。
thameera

21

時々os-proberが間違っています。

たとえば、Windows 10パーティションのUUIDを確認します。

sudo blkid /dev/sda2

次に、を編集し/etc/grub.d/40_custom、ファイルの最後に次を追加します。

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

UUIDを変更することを忘れないでください。

最後に、grub構成ファイルを更新します。

sudo update-grub

ソース


2
Windows 10の場合、通常、最初のパーティションはWindowsシステムのものではありません(つまり、sdb2が正しく、sdb1が正しくない)。これは、インストール中にWindows 10がディスクに保存される方法と、システム予約パーティションまたはシステムの修復が常に最初です)。ディスク上の最初のパーティションがすでに起動可能なものを提供している場合、Grubはしばしば2番目のパーティションを見つけることができません。正しいUUIDを見つける最も簡単な方法は、経由sudo fdisk -lで最大のパーティションを見つけ、それをblkidの結果と照合することです。
-janmyszkier

9

このソリューションは、grub2メニューに適切なエントリを提供し、BIOSを参照せずにWindows 10に直接チェーンロードします。それはhttps://ihaveabackup.net/article/grub2-entry-for-windows-10-uefiから来ているので、私は信用を主張しません。実用的なソリューションを見つけることができてとても安心

簡単に言うと、/ etc / grub.d / 40_customを編集して追加します:

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

--set = root行のUUID(例ではCC66-4B02)を見つけるには、sudo fdisk -lを使用してEFIパーティションを特定し、sudo blkid / dev / sda1(または何でも)を使用してEFIパーティションのUUIDを見つけます。Windowsパーティションではなく、必要なEFIパーティションであることに注意してください。編集を保存したら、sudo update-grubを実行して/boot/grub/menu.cfgファイルを生成し、テストのために再起動します。


sudo / dev / sda1コマンドはsudo blkid / dev / sda1
makapuf

@makapuf-あなたは絶対に正しい、ありがとう。修正しました。
ペテルテビサー

その正確なチュートリアルに従っていますが、エントリを起動しようとすると「エラー:パーティションが見つかりません」というメッセージが表示されます。パーティションをマウントすると、「EFI / Microsoft / Boot / bootmgfw.efi」がそのパーティションに存在しないようです。
ゼロス

8

Windows用のこのアプリEasyBCDを使用してくださいhttp://neosmart.net/EasyBCD/無料版をダウンロードしてインストールしてください。

開くと、Windows 8のエントリとWindows 10のエントリが表示されます。

Windows 8のエントリを削除すると、準備が整います。

上記の手順を実行した後、Ubuntuに戻って更新します。

ctrl+ alt+を押してターミナルを開きますT

このコマンドを次々にコピーして、

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

これにより、boot-repairと呼ばれるツールをインストールします。

ダッシュからブート修復を開くと、このウィンドウが表示されます

ここに画像の説明を入力してください

推奨される修復を選択し、手順に従います。

ブート修復を使用するときは、インターネットに接続する必要があることに注意してください。


1
@Hitechcomputergeekヘルプが必要な場合は、Windowsを起動してスクリーンショットを作成することをお知らせください。
ロニードロイド

それはWindows 10をGRUBに追加しますか?(推測させてください:いいえ)GRUBから3つすべてのOSにアクセスできるようにしたいのですが、それは問題の一部しか解決しません。
Hitechcomputergeek

GRUB OSリストにWindows 10を追加する方法を尋ねる質問を更新しました。問題の一部を修正したため、あなたの答えを支持しましたが、Windows 10をGRUBに追加する必要があるため、まだ答えを受け入れていません。
Hitechcomputergeek

2
また、ダッシュからブート修復を開くように言っていることに気づきましたが、ラインsudo apt-get install -y boot-repair && boot-repairはすでにそれを開いていたでしょう。
Hitechcomputergeek

1
このツールは、「ubuntuのテストモード(ライブcdモード)」isoでも使用できます。このツールでは、インターネットまたは妻に接続した後にインストール、実行、使用できます。
アラムジットシン

4

あなたの質問を理解している限り、1つ以上のハードドライブに2つの異なるWindowsインストールがあり、Windowsローダーが邪魔をしたり、両方のWindowsインストールを管理したりすることは望ましくありません。レガシセットアップでWindowsカーネルをGrubから直接起動することは可能だったことを思い出します(ここでは間違っているかもしれません)が、UEFIセットアップではこれを行うことができませんでした。Grubから独立して呼び出すことができる2つの独立したWindowsブートローダー構成は、探しているものに非常に近いはずです。

Windows 8.1がインストールされています。

これはUEFI対応のコンピューターであると想定します。

  1. コンピューターが実際にUEFI対応であることを確認し(そうでない場合は回答を削除します)、BIOSとUEFIの違いを理解してください(異なるブートモード、efibootmgr、異なるパーティションテーブル、EFIシステムパーティション(ESP)、EFIローダー…)。
  2. 次に、すべてのOSがUEFIモードでインストールされていることを確認し、GPTパーティションテーブルがあることを確認します。Windowsを使用dismして、パーティションを新しいパーティションテーブルレイアウトにバックアップおよび復元し、最新のWindowsインストールメディアのコマンドプロンプトを使用してブートローダーを再インストールできます。これについては次のポイントで詳しく説明します。
    • 問題に対処しない他のさまざまなツールを試してみることをお勧めしているため、これらの変更を元の状態に戻す必要があります。そうしないと、ますます混乱を招きます。ごめんなさい :(
  3. GRUBを介してUEFIモードでレガシーMBRパーティションからWindows 8を起動する方法の回答を使用できますか?
    • この回答はbcdboot、Grubが呼び出す別の場所に、独立したWindowsブートローダー構成をインストールします。便宜上、Windowsルートパーティションを選択しました。すべての Windowsインストールにこれを行う必要があります。そのため、すべてのWindowsインストールには独自のものがあり、それ自体が起動するだけです(個々のWindowsブートメニューを他のエントリから消去します)。
    • 起動するWindowsインストールごとに個別のエントリを作成し、/etc/grub.d/40_customUUID、パーティション、パーティションテーブルに関する指示と説明に従う必要があることに注意してください。
    • おそらく、GrubのOSプローブ(GRUB_DISABLE_OS_PROBER)などのさまざまなOSを検出するセミスマート機能をすべて無効にするか、Windowsまたはブート修復でのブート問題のトラブルシューティング(または手動でクリーンアップ)します。

NB:あなたの要求は、GrubですべてのOSを管理できるようにすることでしたが、UEFIでは、従来の「デュアルブート」という用語はほとんど間違った名前になります。UEFIでは、ESPに複数のブートローダーを共存させることができ、ブートするブートローダーを選択できます(UEFIファームウェアに登録されており、製造元のファームウェアがWindowsのブートのみのように仕様を守っていない場合)。ここで悲しいことは、Windows、Linux、Ubuntuの複数の(独立した)バージョンを1台のコンピューターにインストールすることを考えることができる人はごく少数であることです(または、複数のコンピューターで使用され、各コンピューターで同じOSリリースの異なるインストールを起動するハードドライブ)。このほとんどはすでに可能ですが、WindowsとUbuntu(Fedoraなど)のメカニズムは、1つしか存在できないという誤った仮定の下で、名前空間にあるものを上書きすることを明白に選択します。

1台のコンピューターでWindows8 / 10、Ubuntu、Ubuntu LTS、およびFedoraを起動しますが、異なる要件の下でUEFI起動を数回いじっています。)


1
Windowsは使用していません。しかし、誰かが/ EFI / Windowsを/ EFI / Windows10および/または/ EFI / Windows8にコピーして、各BCDをそのバージョン専用に編集しようとしましたか?そして、UEFIでそれぞれの全体を作成します。UEFIから機能する場合、grubはそれぞれに直接チェーンできます。
オールドフレッド

@oldfredそれは、下のセクションで私が指し示したかったものであり、bcdboot別のターゲットディレクトリを指定するためのパラメータさえあるかもしれませんが、私にはわかりません。1つのESPのみから他のEFIバイナリをチェーンロード40_customすると、エラーが発生しにくくなり、大幅に簡素化されます。マルチハードドライブのシナリオに焦点を合わせすぎていたと思います(その場合、まだhdd1のESPからhdd2のWindowsを起動するようにbcdbootに指示できるはずです)。m(
LiveWireBT

コンピューターはUEFIに対応していますが、正直なところ、wtfが現在パーティションに対応しているかどうかはわかりません。学校にはカスタムのWindows 8イメージがインストールされていて、UEFIとセキュアブートを使用していましたが(BIOSは現在UEFIとレガシーブートの両方を許可するように構成されていると思います;セキュアブートを無効にしたことを覚えています)、ハードディスク自体はMBR。ここにスクリーンショットがあります:imgur.com/1vDS4jf(ええ、まもなく多くのパーティションのサイズを変更する予定です。)また、Ubuntu自体(grepping dmesgから)はEFIモードで起動されていないようですが、 GRUB自体ができるかどうかわかりません
-Hitechcomputergeek

@Hitechcomputergeekこのスクリーンショットは、拡張パーティションがありEFIパーティションがないmsdos / MBRパーティションテーブルを示しています。前述したように、GPTが必要dismであり、Windowsパーティションに使用できます。
LiveWireBT

UEFIとして起動しますが、他のOSは非UEFIまたは何かとして起動します。UEFIはわかりにくいです。編集:GRUBはUEFIとして起動されていません。私は、元のWindowsで何が起こったのかわかりません。実際、考えてみると、そもそもUEFIはUEFIではない可能性があります。Windows 8の休止状態のためにBIOSにアクセスすることは基本的に不可能で、最初に起動してから「再起動」を押してからBIOSにアクセスしようとしたためだと思いました。Ubuntu(およびGRUB)をインストールしてから、再度行う必要はありません。
Hitechcomputergeek

2

Ubuntu OSにログインし、ターミナルを開きます。

sudo update-grub

リブート

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.