web-dev-qa-db-ja.com

GRUBはWindowsを検出しません

ようやく2台目のドライブにUbuntuをインストールしました。 コンピューターを起動するとGRUBはWindows 7ではなくUbuntuの起動のみを提供します。できるようにするために必要なことGRUBでUbuntuとWindowsを選択しますか?

起動時にF12を押して起動メニューを表示し、Windows Boot Managerを選択すると、Windows 7が起動します。


コマンドSudo fdisk -lを実行しましたが、ここにログがあります( http://Pastebin.com/Cgv1igHc ):

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


Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 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: 0xc3ffc3ff

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1953525167   976762583+  ee  GPT
Partition 1 does not start on physical sector boundary.
65
HyperX
  1. Ubuntuを起動し、Windowsパーティションをマウントします(Nautilusのディスクを単に開きます)

  2. コマンドラインで次を実行します(Ctrl+Alt+t):

    Sudo os-prober
    
  3. Windowsのインストールが見つかった場合、次を実行できます。

    Sudo update-grub
    

手順2は便宜上のものです。 Windows 7パーティションをマウントして、update-grubを実行するだけです。

関連する質問

99
Hermes

上記のos-proberメソッドが機能しない場合は、カスタムgrubメニューエントリを追加してみてください。文書化された ここ

最初の2つのステップは、<UUID>を見つけるためのものです。

  1. lsblkを実行し、/boot/efiで行の名前を見つけます

出力例(ここでは答えはsda2)

lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0   477G  0 disk 
├─sda1        8:1    0   450M  0 part 
├─sda2        8:2    0   100M  0 part /boot/efi
├─sda3        8:3    0    16M  0 part 
├─sda4        8:4    0    47G  0 part /windows
├─sda5        8:5    0 425,6G  0 part /
└─sda6        8:6    0   3,7G  0 part [SWAP]
mmcblk0     179:0    0  14,9G  0 disk 
└─mmcblk0p1 179:1    0  14,9G  0 part
  1. Sudo blkid /dev/sdaXを実行します。ここで、sdaXは前のステップからの答えです(私の場合はsda2

出力例(ここでは答えは58E4-427D)

/dev/sda2: UUID="58E4-427D" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b81727be-ba90-5f8c-ab98-d3ec67778b7d"
  1. ファイル/etc/grub.d/40_customの最後に次を追加します。
menuentry "Windows 7" {  
     insmod ntfs  
     set root='(hd0,1)'  
     search --no-floppy --fs-uuid --set <UUID>
     chainloader +1  
}
  1. Sudo update-grubを実行して再起動します。
9

Windows 10を実行してから、デュアルブートを試みました。 Ubuntuをインストールすると、GRUBローダーにWin 10が表示されませんでした。私は次を試しました-

まず、Win10でセキュアブートを無効にしました。次に、Ubuntuで以下のコマンドを実行しました。

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

かなりうまくいきました。その後、GRUBでWindowsとUbuntuの両方を見つけることができました。

7

Boot-Repair の手順に従って同様の問題を解決しました

ブート修復をインストールする

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

「推奨される修復」を押して、端末に提案されたいくつかのコマンドを入力します。

私のGrubは、不適切なシャットダウンのためにウィンドウを認識せず、問題を解決したと思います。

4
Rutrus

別のコンピューターで動作する例からコピーして、自分のレコードを投稿するための少し異なる方法。

以下を/etc/grub.d/40_customに追加します:

menuentry "Windows 10" {
        insmod part_gpt
        insmod fat
        search --no-floppy --fs-uuid --set <boot_efi_uuid>
        chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

ここで、<boot_efi_uuid>は、/boot/efiパーティションのUUIDです。これを見つけるには:

$ lsblk
NAME              MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT                                                  
sda                 8:0    0 119.2G  0 disk
└─md126             9:126  0 357.7G  0 raid0
  ├─md126p1       259:0    0   499M  0 md
  ├─md126p2       259:1    0   100M  0 md    /boot/efi                                                   
$ Sudo blkid | grep md126p2 # Replace with your device
/dev/md126p2: UUID=<boot_efi_uuid>

もちろん、ファイルを保存したら、次を実行します。

Sudo update-grub

再起動すると、Windowsを正常に起動できるようになります。

以前にRAIDをインストールしたことがある場合、問題が発生している可能性があります。私の場合、2010年にデスクトップを構築し、2つの1.5 TBをストライプRAIDでインストールしました。 ユーザーgracemercy54は、以前のRAID構成からのメタデータが残っていることをここで述べています。

最初にHermesで手順を試みたときに、「RAIDセット内のデバイスの数が間違っています」というエラーが表示されました。したがって、これが発生した場合は、ターミナルを開いて次を実行します。

   Sudo dmraid -rE
   Sudo os-prober
   Sudo update-grub

それは私のためにこれを修正しました。

3
Adam Drewery

Windows 10でも同じ問題が発生しました。WIN10を使用したデュアルブート用にLinux Mint 18.1 Cinnamon 64-bitをラップトップにインストールしました。インストール後、GRUBはLinuxのブートのみを提供し、Windowsのブートは提供しませんでした。

ビデオを見つけました grubメニューにWindows 10のソリューションがありません とフォーラムスレッド Grubは更新/修復後にWin10を認識しません が、残念ながらどちらも機能しなかったので、私の問題を解決するために、これらの2つのうち。

ターミナルを開き、次のコマンドに従って、40_customという名前のファイルを開きます。

Sudo gedit /etc/grub.d/40_custom

これらの行をファイルの最後に追加し、保存して終了します。

menuentry "Windows 10" {
   set root='{hd0,1}'
   chainloader + 1
}

ファイルを保存したら、次のコマンドでGRUBを更新します。

Sudo update-grub

次に、マシンを再起動して、動作するかどうかを確認します。

これが他の人にも役立つことを願っています!

2
Lahiru

私は同じ問題を抱えていて、それを理解するのに2日間費やしていました。しかし、今日、私は午前中にこの突然のアイデアを思いつき、うまくいきました。

Bios/uefi設定を確認する必要があります。私の場合、最初にUefiを起動する必要がありました。そうしないと、ubuntuからウィンドウを検出できませんでした。設定しなければならなかったのは、ubuntu> Windowsブートマネージャー> DISK1> DISK2> DISK3でした。 Insted DISK1> ubuntu> Windows Boot Manager> DISK3。

私は2つのubuntuをhddとssdにインストールしました。どうやらssdのインストールは何らかの理由でUEFIとして表示されませんでしたが、最初に高速なディスクを起動したかったのです。

ブートの順序がシステムの検出でgrubに影響を与えるとは思っていませんでした。それをレビューする価値があります。

1

上記のような問題がありましたが、解決策は次のように手動で入力するだけでした:

menuentry "WINDOWS10 (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(/dev/sda,msdos1)'
    search --no-floppy --fs-uuid --set=root 688EB92384B85968
    drivemap -s (hd0) ${root}
    chainloader +1
}

上記のUUID(688E ...)は、ブートウィンドウディスクからblkid /dev/sdb1経由で取得されました。

注意:追加の行

set root='(/dev/sda,msdos1)'

ubuntuで/dev/sdbとして表示されるsdaを指します。実際にはsataバスの最初のディスクであり、/dev/sdaは実際にはルート/としてマウントされた2番目のドライブです。

たぶんそれが、grubスクリプトが正しく動作しなかった理由です。ディスクの物理的な順序を変更する時間はありませんでしたが、問題の解決に役立つ可能性は十分にあります。

1
luke