Czy jest jakiś sposób na uruchomienie Windows 7/8 przy użyciu BIOS-u na GPT?

21

Chciałbym wiedzieć, czy istnieje metoda na zainstalowanie Windows 7 lub Windows 8 Developer Preview na dysku GPT w mojej tradycyjnej konfiguracji BIOS komputera IBM. Windows 7 oczywiście odrzuca moją partycję GPT, ponieważ nie mam UEFI. Cóż, Debian i Grub 2 wydają się działać dobrze ... Więc chcę wiedzieć, czy istnieje sposób, aby zmusić system Windows do działania.

Chciałbym poważnie wolą unikać hybrydowy MBR / GPT, ponieważ jest dość krucha i czuje hackish, ale nie pracę. Zakładam, że głównym blokerem jest to, że Microsoft po prostu nie dodaje obsługi w bootloaderze BIOS-u dla GPT, co, jak sądzę, jest zrozumiałe. Czy jest jakaś reguła?

Z mojego punktu widzenia istnieje kilka potencjalnych rozwiązań:

  1. Posiadanie alternatywnego programu ładującego jądro systemu Windows. NIE ładowarka łańcuchowa. O ile mi wiadomo, żaden nie istnieje. Jaka szkoda.
  2. Przechowywanie jak najmniejszej ilości na alternatywnym dysku opartym na MBR. Nie podoba mi się ten pomysł, ale jest wykonalny. Nie jestem pewien, czy nazwałbym to rozwiązaniem problemu, a nawet obejściem problemu.
  3. Emulowanie EFI na tyle, aby bootloader EFI działał ... Pamiętam trochę o emulatorze UEFI na BIOSie, ale teraz nie mogę nic na ten temat znaleźć. Zakładam, że jest to wykonalne, ale prawdopodobnie nie ma jeszcze na to dużego popytu, a konfiguracja prawdopodobnie nie sprawia żadnej przyjemności. GRUB 2 wydaje się być w stanie uruchomić hackintosha z niezbędną emulacją EFI, ale myślę, że nie ma zainteresowania / UEFI 2 jest trudniejszy do osiągnięcia (i przypuszczam, że inne emulatory EFI używane dla hackintosha są na tej samej łodzi).
  4. Coreboot z TainoCore. Coreboot nie działa na mojej płycie głównej (o ile mi wiadomo) i jestem całkiem pewien, że ostatnim wysiłkiem, aby to zrobić podczas GSoC, był błąd. Absolutnie pokochałbym to rozwiązanie, gdyby zadziałało.

Czy coś mi brakuje?

John Chadwick
źródło
1
Nie do końca. Wiem, że może działać na hybrydowym MBR / GPT i nie boję się go używać. Co więcej, jestem niezadowolony z tego rozwiązania i chcę wiedzieć, czy istnieje inny, lepszy sposób. Nadal jednak pracuję nad tym problemem i mogę znaleźć własne rozwiązanie.
John Chadwick
1
Jestem prawie pewien, że pytanie to jest duplikatem tego, biorąc pod uwagę dwuletnią różnicę. Poza tym tak naprawdę nie ma tam odpowiedzi na pytanie, a przynajmniej nie jest to odpowiedź bezpośrednia, podczas gdy na pytanie to jest bezpośrednia odpowiedź.
John Chadwick
Sprawdziłeś moją odpowiedź? Jest nowy i nikt inny nie zrobił tego w ten sposób. Chciałbym na nim przetestować. Gwarantujemy, że nie jest hacky.
Milind R
Jednak tak naprawdę nie działa na laptopie. Ponownie uważam, że okropnie dziwne jest oflagowanie tego pytania jako duplikatu po tym, jak na wystarczającą odpowiedź udzielono go prawie 2 lata przed tym pytaniem. Nie uważam, aby uruchamianie implementacji UEFI było hackerskie; po prostu dziwaczny, ale ma tę zaletę, że nie wymaga dodatkowych napędów dyskowych.
John Chadwick,
W pracach jest implementacja pojedynczego dysku, zaktualizuje się, gdy zostanie przetestowany ... Jest to również hack w tym sensie, że kłamiesz oknom na temat systemu: w hybrydowym MBR, leżącym na temat typu partycji, w DUET, kłamać na temat oprogramowania układowego.
Milind R

Odpowiedzi:

8

Cóż, rzeczy się zmieniły, odkąd po raz pierwszy zadałem to pytanie. Po pierwsze, mój komputer jest teraz oparty na UEFI, więc nie mam już tego problemu. Cóż, w pewnym sensie. Chciałem pobrać podobną konfigurację na moim laptopie (partycje GPT itp.) W końcu udało mi się uzyskać działającą konfigurację Tianocore UEFI DUET i było to tak bolesnie proste, jak to możliwe!

Zakłada się, że chcesz mieć wszystkie błyszczące, nowe konfiguracje. Jeśli chcesz przekonwertować starą konfigurację, powodzenia . W każdym razie powodzenia, ponieważ w każdej sytuacji jest to operacja nierówna.

Słowo ostrzeżenia: jeśli jesteś fanem szybkich czasów startowych, to może chcemy przemyśleć tę decyzję. Nie chodzi o to, że UEFI DUET jest powolny, ale dodaje kolejny etap do procesu rozruchu, więc jeśli BIOS / POST nie jest szybki, może ci się to nie podobać.

Bez ceregieli:

  1. Będziesz potrzebował konfiguracji Linuksa. Użyłem Fedory 16 z pamięci USB (z UNetBootin) i gorąco polecam, ponieważ praktycznie działa po wyjęciu z pudełka. W każdym razie potrzebujesz dysku USB, więc nie planuj kontynuować bez niego.

  2. Pobierz niektóre kompilacje UEFI DUET. Bez wątpienia najlepsze miejsce na to jest tutaj . Rzeczywiste tarballi kompilacji są w gałęzi głównej pierwszego repozytorium tutaj . Daj to stare tar -xf.

  3. Skonfiguruj swoje partycje. Powinieneś zarezerwować gdzieś 200 MB na dysku (najlepiej na początku i na pierwszej partycji). Możesz sformatować go za pomocą FAT32, ale formatujemy go później. Tylko upewnij się, że pojawi się jako partycja. Tutaj powinieneś użyć GPT.

  4. Teraz zainstaluj dodatkowe oprogramowanie, które może być potrzebne. W dystrybucji Fedora Live znalazłem, że potrzebuję yum install gdisk. Myślę, że to było to.

  5. Teraz przejdź do wyodrębnionego katalogu kompilacji. chmod +x ./duet-installi ./duet-install -64 -F -m /dev/sda1(gdzie /dev/sda1jest twoja pożądana partycja systemowa EFI).

  6. Trzymaj kciuki i uruchom ponownie. Przy odrobinie szczęścia zobaczysz logo TianoCore za kilka chwil. Jeśli tak, to prawdopodobnie jesteś dobry! Musisz zainstalować pliki instalacyjne systemu operacyjnego na napędzie USB - Tianocore nie obsługuje napędów CD-ROM / DVD-ROM po wyjęciu z pudełka (i nie znam żadnych sterowników).

Możesz także chcieć grać z niektórymi plikami binarnymi powłoki UEFI. Znalazłem tu trochę . Jednak nie testowałem jeszcze z Tianocore.

W każdym razie dziękuję wszystkim, którzy próbowali pomóc.

John Chadwick
źródło
Działa to z instalacjami Windows?
Moab
Korzystałem z niego z powodzeniem w systemie Windows 8 w 2012 roku. Już go nie potrzebuję, ponieważ wszystko, co powstało w ciągu ostatnich kilku lat, korzysta z UEFI, ponieważ system Windows 8+ wymaga od producentów sprzętu obsługi tego systemu. Prawdopodobnie nadal działałby dzisiaj, ale nie wiem, czy poleciłbym to.
John Chadwick,
2
Link UEFI DUET powinien już być tutaj , ale nie jest już utrzymywany; strona mówi zamiast tego używać Clover EFI .
kirbyfan64sos
1
i możesz zainstalować Clover na HDD, aby usunąć potrzebę oddzielnego napędu
phuclv
6

Udało mi się uruchomić system Windows 8.1 na dysku GPT w konfiguracji BIOS-u BEZ drugiego dysku MBR.

Historia była następująca: Mój laptop był w konfiguracji BIOS + GPT, z zainstalowanym tylko Arch Linux. Niedawno muszę wykonać niektóre zadania w systemie Windows (których maszyny wirtualne nie mogą), dlatego staram się zainstalować system Windows w ramach mojej istniejącej konfiguracji BIOS + GPT. Zgodnie z odpowiedzią Milinda udało mi się zainstalować pliki rozruchowe systemu Windows (Boot, bootmgr itp.) Na (małym) dysku USB MBR. I za każdym razem, gdy włączam laptopa z podłączonym dyskiem USB, mogę uruchomić system Windows 8.1, po czym dysk można bezpiecznie odłączyć.

Wada jest oczywista: muszę zabrać ze sobą dysk USB, aby uruchomić system Windows. Więc zawsze starałem się tego pozbyć.

Po wypróbowaniu różnych metod w końcu odkryłem, że moduł memdisk projektu syslinux działa.

  • Musisz zrezygnować z menedżera rozruchu systemu Windows.
  • Nie musisz instalować syslinux. Potrzebny jest tylko moduł memdisk (plik 26 kB).
  • Do załadowania tego modułu można użyć wielu programów ładujących, w moim przypadku mojego ulubionego programu ładującego GRUB (wersja 2).

Oto zarys poradników:

  • Podziel dysk GPT na partycje, aby spełnić potrzeby GRUB-a, to znaczy małą partycję do osadzenia core.img. Szczegółowy link
  • Zainstaluj GRUB na tej małej partycji.
  • Zainstaluj system Windows za pomocą imagex.I użyj bootsecti, bcdbootaby zainstalować pliki rozruchowe systemu Windows na małym dysku USB MBR..
  • Użyj ddlub, dd_rescueaby sklonować mały dysk USB na obraz dysku. (Twój dysk USB zakończył pracę.) Obraz może być za duży, aby go załadować, możesz go zamontować i zmniejszyć w nim system plików / partycję.
  • Według mojego testu nie potrzebujesz fizycznego dysku MBR, aby zainstalować pliki rozruchowe systemu Windows. Możesz utworzyć plik vhd i traktować go jak dysk fizyczny.Po zainstalowaniu plików rozruchowych systemu Windows na dysku vhd możesz przekonwertować go na obraz dysku w stylu raw (dd) za pomocą narzędzi dostarczonych przez VirtualBox lub QEUM.Po utworzeniu za type=fixedpomocą pliku vhd jest to zwykły zwykły obraz dysku (w stylu dd) ze stopką 512 bajtów. Stopka zostanie rozpoznana jako „niepartycjonowane miejsce” i zostanie zignorowana, więc type=fixedplik vhd może być bezpośrednio przekazany do MEMDISK bez konwersji i w ten sposób uruchomi system Windows.
  • Skonfiguruj GRUB, aby używał memdisk do ładowania tego obrazu dysku.
  • System Windows uruchomi się.

Szczegółowe instrukcje można znaleźć w odpowiedzi na mój reboot.pro w wątku Milinda.

Zhuoyun Wei
źródło
1
@wzboy Korzystam z Arch Linuxa i udało mi się zdobyć po instalacji systemu Windows (z wimlib-imagex). Teraz nie jestem pewien, jak kontynuować. Czy byłbyś w stanie opracować sposób tworzenia pliku vhd z poziomu dystrybucji linux?
Mihai Bişog
@ MihaiBişog Potrzebujesz Windows PE, aby utworzyć ten vhd. Istnieje wiele sposobów uruchamiania systemu Windows PE. GRUB i syslinux mogą na przykład uruchamiać się do plików ISO.
Zhuoyun Wei,
Czy to nie zepsuje aktualizacji systemu Windows? Mam na myśli, że jeśli Microsoft wyda aktualizację, która powinna zmodyfikować te pliki boot / bootmgr, które umieścisz w obrazie dysku wirtualnego - nie zostaną one zaktualizowane i nawet tego nie zauważysz. Przypuszczam, że może to zepsuć niektóre operacje naprawy systemu Windows. Czy są jeszcze jakieś wady?
Powerman
W rzeczywistości BCD / Bootmgr nigdy nie zostanie znaleziony przez system Windows, ponieważ znajduje się w obrazie dyskietki / dysku. Więc nie ma mowy o automatycznej aktualizacji. Automatyczna naprawa nie będzie działać. Wszystko, co jest związane z narzędziami Microsoft do uruchamiania, prawdopodobnie nie będzie działać.
Milind R
1
Tak, wszystko, co jest związane z bootmgr, nie będzie działać, ponieważ „zniknęły” po uruchomieniu systemu Windows. W rzeczywistości, gdy uruchomisz „bcdedit” w cmd.exe, powie ci, że nie może znaleźć plików rozruchowych. :-)
Zhuoyun Wei
5

Jeśli masz nawet mały dysk zapasowy, możesz uruchomić system Windows (32- lub 64-bitowy) z GPT w systemie BIOS. Dyskietka wystarczy.

Uruchom komputer z dysku instalacyjnego / naprawczego systemu Windows.

Utwórz dysk systemowy na małym dysku / dyskietce i użyj, bcdbootaby umieścić pliki rozruchowe na nowo utworzonym dysku na małym dysku. Dodaj sektor rozruchowy za pomocą bootsect. Zmień {bootmgr} deviceTO boot. Uruchom z małego dysku.

Kroki są wyszczególnione tutaj .

Milind R.
źródło
2
Próbowałem tego i zadziałało. Teraz mam działający system Windows 8.1 na dysku GPT w konfiguracji systemu BIOS. Wszystko, co muszę zrobić, to włożyć dysk flash USB, aby go uruchomić. Po uruchomieniu komputera dysk USB można usunąć. Podobnie jak w dawnych czasach, to znaczy MS-DOS dyskietki ...
Zhuoyun Wei
Lol. Pracuję nad rozwiązaniem, które nie wymaga innego dysku. Czy możesz mi powiedzieć, jak wolno / szybko?
Milind R
1
Myślę, że umieszczenie bootmgr na innym dysku nie powoduje dłuższego uruchamiania systemu Windows, przynajmniej go nie czuję.
Zhuoyun Wei,
2
OHHHH TAK. Przepraszamy za zbyt podekscytowanie. Spędziłem całe popołudnie i wreszcie udało mi się uruchomić system Windows 8.1 na dysku GPT w konfiguracji BIOS-u BEZ drugiego (małego) dysku MBR - za pomocą modułu pamięci syslinux, który jest w stanie załadować obraz dysku twardego.
Zhuoyun Wei,
1
Oto mój post: reboot.pro/topic/…
Zhuoyun Wei
3

Wielkie dzięki dla wzyboy.

Napotkałem ten problem, gdy próbowałem zainstalować system Windows 2012 do Dell PowerEdge 2950 z macierzą RAID 6 TB. Nie ma UEFI.

Przeprowadziłem kilka eksperymentów. Najpierw stworzyłem wirtualny dysk twardy 32Mb, jak powiedział wzyboy, i po prostu skopiowałem wszystkie rzeczy z zarezerwowanej partycji Microsoft. Windows został uruchomiony normalnie. Ale dzięki temu rozwiązaniu usługa Hyper-V nie może zostać uruchomiona.

Jak mówi wiki memdisk, automatycznie decyduje według rozmiaru obrazu, jakiego rodzaju media musi emulować. Stworzyłem więc wirtualną dyskietkę 720K w środowisku WMware i skopiowałem do niej bootmgr, BCD i bootstat.dat (na wszelki wypadek usunąłem podmenu memtest ze sklepu BCD). Rozmiar dyskietki wybrałem tak mały, jak to możliwe, więc może być większy lub nawet mniejszy, nie próbowałem.

Teraz uruchamia się z dysku GPT, a Hyper-V działa dobrze.

PS może być oprogramowaniem stron trzecich. Czy ktoś użył czegoś takiego? https://www.terabyteunlimited.com/bootit-bare-metal.htm

Nikołaj Vakulenko
źródło
Ostatnio, po spędzeniu wielu godzin na robieniu zdjęć, znalazłem kontroler RAID Perc5-i, który jest w stanie pokroić macierz mniejszą niż pojemność fizycznego dysku twardego. Tak więc na profesjonalnym sprzęcie GPT nie jest problemem.
Nikolai Vakulenko
Czy możesz opisać swój scenariusz i jego naprawę w tym wątku deweloperskim ? Staram się zachować wszystkie szczegóły razem.
Milind R
2

W artykule A BIOS to UEFI Transformation szczegółowo opisano, jak korzystać z TainoCore UEFI DUET.

Rozumiem, że miałeś problemy z używaniem TainoCore, ale być może ten artykuł będzie dla ciebie odpowiedni.

Artykuł mówi:

Niektóre komputery nie współpracują z UEFI DUET. Co najważniejsze, jest to naprawdę przydatne tylko na 64-bitowych komputerach x86-64, szczególnie w formie binarnej. W rzeczywistości nie uruchamia się poprawnie nawet na niektórych komputerach z procesorem x86-64. W testach na pięciu systemach x86-64 udało mi się sprawić, że jedna lub obie wersje działały tylko na trzech komputerach - naprawdę fatalny wskaźnik sukcesu. Może to tylko zbieg okoliczności, ale dwa komputery, które działały najlepiej dla mnie, używały procesorów Intel, podczas gdy dwa, które działały gorzej i ten, który działał z wersją 2.1, ale nie wersją 2.3, wszystkie miały procesory AMD.

Wydaje się to sugerować, że przed poddaniem się należy wypróbować kilka wersji UEFI DUET.

Pomoże to poznać model komputera.

harrymc
źródło
Od czasu ostatniej aktualizacji tego pytania faktycznie udało mi się uruchomić system UEFI DUET na moim komputerze. Niestety zabił mnie brak sterownika DVD-ROM, ponieważ nie miałem żadnych napędów USB do przechowywania systemu Windows. Po tym, jak mój główny dysk twardy losowo zawiódł, postanowiłem go odpocząć i użyć zapasowego partycjonowania BIOS. Jednak ten artykuł jest zdecydowanie pomocny i nadal jestem zainteresowany samodzielnym działaniem. Niedługo postaram się pamiętać, żeby wziąć dysk flash.
John Chadwick,
@JohnChadwick możesz użyć Clover i zainstalować go na dysku twardym , abyś nie potrzebował już osobnego napędu rozruchowego
phuclv
@phuclv: Czy zauważyłeś, że komentarz Johna Chadwicka pochodzi z 2011 roku i że on sam udzielił odpowiedzi na ten post?
harrymc
@harrymc oczywiście wiem. Ta informacja jest dla przyszłych czytelników
phuclv
0

Ludzie muszą pamiętać, że nie wszystkie oprogramowanie biosowe jest w stanie poradzić sobie z dyskiem GPT. Mam dysk USB Seagate 4 Tb, który był fabrycznie GPT i żaden z moich dwóch komputerów nie uruchamiałby się z dyskiem podłączonym do portu USB.

Maszyny zostaną zamrożone na ekranie menu F2 Enter Setup F10 Boot, a jedyne, co można w tym momencie zrobić, to wyłączyć zasilanie i włączyć je ponownie.

Po przekonwertowaniu dysku na MBR, który zabija około 2 TB miejsca na dysku, oba systemy uruchomią się i uruchomią w systemie operacyjnym w normalny sposób z podłączonym dyskiem.

Szukam poprawki systemu BIOS, aby rozwiązać ten problem.

Scott Tovey
źródło
BIOS nie wie nic o napędzie , czy to GPT, MBR, a nawet etykiecie BSD czy APM ... Po prostu ładuje pierwszy sektor (tj. MBR) i uruchamia go. W tym momencie zadanie systemu BIOS można uznać za „zakończone”. Jeśli twój dysk nie uruchamia się, oznacza to po prostu, że nie ma prawidłowego sektora rozruchowego na dysku
phuclv