GRUB nie wykrywa systemu Windows

66

W końcu zainstalowałem Ubuntu na drugim dysku. Kiedy uruchamiam komputer, GRUB oferuje mi tylko uruchomienie Ubuntu, a nie Windows 7. Co należy zrobić, aby móc wybrać pomiędzy Ubuntu i Windows w GRUB?

Kiedy naciskam klawisz F12, aby wyświetlić menu rozruchu podczas uruchamiania i wybieram opcję Windows Boot Manageruruchamiania z systemu Windows 7.


Uruchomiłem polecenie sudo fdisk -li oto log ( 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.
HyperX
źródło
Podaj adres URL informacji rozruchowych . Zapewni to odpowiednie informacje, które mogą Ci pomóc.
LovinBuntu,

Odpowiedzi:

100
  1. Uruchom Ubuntu i zamontuj partycję Windows (po prostu otwórz dysk na Nautilus)

  2. Uruchom następujące polecenie w wierszu polecenia ( Ctrl+ Alt+ t):

    sudo os-prober
    
  3. Jeśli znaleziono instalację systemu Windows, możesz uruchomić:

    sudo update-grub
    

Pamiętaj, że krok 2 jest tylko dla twojej wygody. Możesz po prostu zamontować partycję Windows 7, a następnie uruchomić update-grub.

Powiązane pytanie

Hermes
źródło
Mam 2 partycje z instalacją 2 okien, wykrywa tylko moją instalację na innej partycji, ale nie nowe zainstalowane okna (na dysku SSD)! nawet zamontował ... pomysł?
Philippe Gachoud
Dzięki. Ciekawe, że os-prober wydaje się potrzebować kroku 1. Bardzo ważne, w przeciwnym razie Windows nie będzie działać.
Widok eliptyczny
mount -t ntfs-3g -o ro /dev/sda4 /media/windowszamontować partycję Windows
Yuvaraj Loganathan
doskonały! wykonanie obu poleceń
załatwiło sprawę
pracował! Dziękuję Ci!
DigaoParceiro
10

Jeśli os-proberpowyższa metoda nie działa, spróbuj dodać niestandardową pozycję menu grub. Udokumentowane tutaj .

Pierwsze dwa kroki dotyczą znalezienia twojego <UUID>.

  1. Uruchom lsblki znajdź nazwę wiersza za pomocą/boot/efi

Przykładowe dane wyjściowe (tutaj odpowiedź to 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. Uruchom, sudo blkid /dev/sdaXgdzie sdaXjest odpowiedź z poprzedniego kroku ( sda2w moim przypadku) .

Przykładowe dane wyjściowe (tutaj odpowiedź to 58E4-427D) :

/dev/sda2: UUID="58E4-427D" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b81727be-ba90-5f8c-ab98-d3ec67778b7d"
  1. Dodaj następujące na końcu pliku /etc/grub.d/40_custom:
menuentry "Windows 7" {  
     insmod ntfs  
     set root='(hd0,1)'  
     search --no-floppy --fs-uuid --set <UUID>
     chainloader +1  
}
  1. Uruchom sudo update-grubi uruchom ponownie.
Philippe Gachoud
źródło
Podziękowania dla @Christopher Markieta za wszystkie szczegóły w innej odpowiedzi. Dodałem je również do tego (nawet jeśli specyfikacja niestandardowego wpisu jest inna.
Carolus
9

Miałem system Windows 10, a następnie spróbowałem podwójnego rozruchu. Po zainstalowaniu Ubuntu Win 10 nie pojawiał się w moim module ładującym GRUB. Próbowałem następujące -

Przede wszystkim wyłączyłem Bezpieczny rozruch w Win10. Następnie uruchomiłem poniższe polecenia w Ubuntu:

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

Wyszło całkiem nieźle. Po tym był w stanie znaleźć zarówno system Windows, jak i Ubuntu w GRUB.

Karthik Ubaradka
źródło
Czy ta umowa PPA nadal istnieje? Nie mogłem go dodać i twierdziło, że nie istnieje z dysku rozruchowego Ubuntu 18.04
jocull
Właśnie otrzymałem 404 Not Foundbłąd na Debianie
winklerrr
5

Rozwiązałem podobny problem, wykonując kroki naprawy rozruchu

Zainstaluj naprawę rozruchu

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

Naciśnij „Zalecana naprawa” i umieść w terminalu niektóre polecenia, jak to sugeruje.

Myślę, że mój Grub nie rozpoznaje okien z powodu złego wyłączenia i rozwiązał problem.

Rutrus
źródło
3

Jeśli wcześniej zainstalowano macierz RAID, która może powodować problemy. W moim przypadku zbudowałem pulpit w 2010 roku i zainstalowałem dwa dyski 1,5 TB z RAID w paski. Użytkownik gracemercy54 wspomina tutaj, że są to metadane z poprzedniej konfiguracji RAID.

Kiedy początkowo próbowałem wykonać kroki Hermesa, wystąpił błąd określający „nieprawidłową liczbę urządzeń w zestawie RAID”. Jeśli tak się stanie, otwórz terminal i uruchom:

   sudo dmraid -rE
   sudo os-prober
   sudo update-grub

To naprawiło to dla mnie.

Adam Drewery
źródło
Myślę, że mój również spowodowany nalotem. Ale sudo dmraid -rEnie działa dla mnie. W końcu udało mi się to przełączyć na AHCIBIOS w trybie tymczasowym, następnie uruchomić system Ubuntu i uruchomić sudo update-grub, a następnie przełączyć z RAID ONpowrotem.
realhu
1
OSTRZEŻENIE : spowoduje to zniszczenie macierzy RAID, jeśli nadal z niej korzystasz.
Christopher Markieta
3

Nieco inna metoda, gdy skopiowałem z działającego przykładu na innym komputerze, publikując własne rekordy.

Dołącz następujące elementy do /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
}

gdzie <boot_efi_uuid>jest UUID twojej /boot/efipartycji. Aby to znaleźć:

$ 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>

Oczywiście po zapisaniu pliku uruchom:

sudo update-grub

Uruchom ponownie, powinieneś teraz być w stanie pomyślnie uruchomić system Windows.

Christopher Markieta
źródło
2

Miałem ten sam problem z Windows 10. Zainstalowałem Linux Mint 18.1 Cinnamon 64-bit na moim laptopie dla podwójnego rozruchu z WIN10. Po instalacji GRUB zaoferował jedynie uruchomienie Linuksa, ale nie Windows.

Znalazłem brak rozwiązania wideo dla systemu Windows 10 w menu Grub i wątku forum Grub, który nie rozpoznaje Win10 po aktualizacji / naprawie , ale niestety nie działał dla mnie, więc użyłem kombinacji tych dwóch, aby rozwiązać mój problem.

Otwórz terminal i postępuj zgodnie z następującymi poleceniami i otwórz plik o nazwie 40_custom:

sudo gedit /etc/grub.d/40_custom

Dodaj te linie na końcu pliku, a następnie zapisz i wyjdź:

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

Po zapisaniu pliku zaktualizuj GRUB za pomocą tego polecenia:

sudo update-grub

Następnie uruchom ponownie komputer, aby zobaczyć, czy działa.

Mam nadzieję, że to zadziała także dla innych!

Lahiru
źródło
Uważam, że ta poprawna odpowiedź jest w dużej mierze kopią odpowiedzi przesłanej 29 maja 2015 r.
Charles Green
1

Miałem ten sam problem i spędziłem 2 dni zastanawiając się nad tym. Ale dziś rano miałem ten nagły pomysł i się udało.

Powinieneś przejrzeć swoje ustawienia bios / uefi. W moim przypadku musiałem najpierw uruchomić Uefi. W przeciwnym razie nie byłem w stanie wykryć systemu Windows z Ubuntu. To, co musiałem ustawić, to Ubuntu> Windows Boot Manager> DISK1> DISK2> DISK3. Insted DISK1> ubuntu> Windows Boot Manager> DISK3.

Miałem 2 instalacje Ubuntu, jedną na dysku twardym, a drugą na ssd. Najwyraźniej instalacja ssd nie była wyświetlana jako UEFI przez jakiś czas, ale chciałem najpierw uruchomić szybszy dysk.

Nie spodziewałem się, że kolejność rozruchu może wpływać na grub w wykrywaniu systemów. Warto więc to przejrzeć.

Bartosz Dąbrowski
źródło
1

Miałem takie problemy jak powyżej i rozwiązaniem było dodanie ręcznego wpisu, jak poniżej:

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
}

gdzie powyższy UUID (688E ...) został pobrany z dysku systemu Windows za pośrednictwem blkid /dev/sdb1.

UWAGA: dodatkowa linia

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

odnosi się do tego, sdaco jest widoczne w Ubuntu, ponieważ /dev/sdbnawet w rzeczywistości jest to pierwszy dysk w magistrali Sata, podczas gdy /dev/sdaw rzeczywistości jest to drugi dysk zamontowany jako root /.

Być może dlatego skrypty grub nie mogły działać poprawnie. Nie miałem czasu na zmianę fizycznej kolejności dysków, ale jest całkiem możliwe, że pomogłoby to również rozwiązać problem.

Łukasz
źródło