C'è un modo per avviare Windows 7/8 utilizzando il BIOS su GPT?


21

Mi piacerebbe sapere se esiste un metodo per ottenere Windows 7 o Windows 8 Developer Preview da installare su un disco GPT sul mio tradizionale setup del BIOS del PC IBM. Windows 7, ovviamente, rifiuta la mia partizione GPT, perché non ho UEFI. Bene, Debian e Grub 2 sembrano funzionare bene ... Quindi voglio sapere se c'è un modo per forzare anche Windows a funzionare.

Mi piacerebbe seriamente preferisco evitare ibrido MBR / GPT, perché è abbastanza fragile e si sente hacker, ma lo fa di lavoro. Suppongo che il blocco principale sia che Microsoft non sta semplicemente aggiungendo supporto nel proprio bootloader BIOS per GPT, il che è comprensibile, suppongo. C'è qualche ricorso?

A mio modo di vedere, ci sono alcune potenziali soluzioni:

  1. Avere un bootloader alternativo per il kernel di Windows. NON un caricatore di catene. Per quanto ne so, nessuno esiste. È un peccato.
  2. Memorizzare il meno possibile su un disco alternativo basato su MBR. Non mi piace questa idea, ma è fattibile. Non sono sicuro che lo definirei una soluzione al problema tanto quanto una soluzione alternativa.
  3. Emulando EFI abbastanza da far funzionare il bootloader EFI ... Ricordo di aver sentito un po 'parlare di un emulatore UEFI su BIOS, ma non riesco a trovare nulla al riguardo ora. Suppongo sia fattibile, ma probabilmente non c'è ancora molta richiesta, e probabilmente non è affatto divertente da configurare. GRUB 2 sembra essere in grado di avviare un hackintosh con la necessaria emulazione EFI, ma suppongo che non ci sia interesse / UEFI 2 è più difficile da avvicinare (e suppongo che altri emulatori EFI usati per hackintosh siano sulla stessa barca.)
  4. Coreboot con TainoCore. Coreboot non funziona sulla mia scheda madre (per quanto ne so) e sono abbastanza sicuro che l'ultimo tentativo di farlo durante GSoC sia stato un fallimento. Adoro questa soluzione, comunque, se funzionasse.

Mi sto perdendo qualcosa?


1
Non proprio. So che può essere eseguito su MBR / GPT ibrido e non ho paura di usarlo. Inoltre, non sono soddisfatto di questa soluzione e voglio sapere se esiste un altro modo migliore. Sto ancora lavorando su questo problema, e potrei trovare la mia soluzione.
John Chadwick,

1
Sono abbastanza sicuro che questa domanda sia un duplicato di questa, vista la disparità di 2 anni. Oltre a ciò, non c'è davvero nessuna risposta alla domanda lì, o almeno non una diretta, mentre questa domanda ha una risposta diretta.
John Chadwick,

Hai controllato la mia risposta? È nuovo e nessun altro l'ha fatto in questo modo. Vorrei alcuni test su di esso. Non hacky garantito.
Milind R

In realtà non funzionerà su un laptop, però. Ma ancora una volta, trovo terribilmente strano contrassegnare questa domanda come duplicata dopo che è stata sufficientemente risposta quasi 2 anni prima ancora che fosse posta la domanda. Non trovo che eseguire un'implementazione UEFI sia un hacker; semplicemente stravagante, ma ha il vantaggio di non richiedere unità disco aggiuntive.
John Chadwick,

C'è un'implementazione di un singolo disco in lavorazione, verrà aggiornata quando viene testata ... Inoltre, è un hack nel senso che stai mentendo a Windows sul sistema: in MBR ibrido, mentendo sul tipo di partizione, in DUET, mentendo sul firmware.
Milind R

Risposte:


8

Bene, le cose sono cambiate da quando ho posto questa domanda per la prima volta. Per uno, il mio PC è ora basato su UEFI, quindi non ho più questo problema. Beh, in un certo senso. Avevo interesse a eseguire una configurazione simile sul mio laptop (partizioni GPT, ecc.) Sono finalmente riuscito a ottenere una configurazione UEFI DUET Tianocore funzionante, ed era dolorosamente semplice come sembra!

Questo presuppone che tu voglia tutte le nuove configurazioni brillanti. Se vuoi effettivamente convertire la tua vecchia configurazione, buona fortuna . In realtà, buona fortuna in entrambi i casi, poiché si tratta di un'operazione discutibile in qualsiasi situazione.

Una parola di avvertimento: Se sei un fan di tempi di avvio rapidi, si potrebbe voler ripensare questa decisione. Non che UEFI DUET sia lento, ma aggiunge un'altra fase al processo di avvio, quindi se il BIOS / POST non è veloce, potrebbe non piacerti.

Senza ulteriori indugi:

  1. Avrai bisogno di una configurazione Linux. Ho usato Fedora 16 su una chiavetta USB (con UNetBootin) e lo consiglio vivamente perché funziona praticamente fuori dalla scatola. Hai comunque bisogno di un'unità USB, quindi non pensare di continuare senza di essa.

  2. Prendi alcune build DUFI UEFI. Senza dubbio, il posto migliore per ottenerlo è qui . I tarball di build effettivi si trovano sotto il ramo master del primo repository, qui . Dagli il vecchio tar -xf.

  3. Imposta le tue partizioni. Dovresti riservare 200 MB da qualche parte sul disco (molto preferibilmente l'inizio e la prima partizione). Puoi formattarlo con FAT32, ma lo riformatteremo in seguito. Assicurati solo che venga visualizzato come una partizione. Dovresti usare GPT qui.

  4. Ora installa qualsiasi software aggiuntivo di cui potresti aver bisogno. Sulla distribuzione Fedora Live, ho scoperto che ne avevo bisogno yum install gdisk. Penso che sia stato.

  5. Ora vai nella directory build estratta. chmod +x ./duet-installe ./duet-install -64 -F -m /dev/sda1(dove si /dev/sda1trova la partizione di sistema EFI desiderata.)

  6. Incrocia le dita e riavvia. Con un po 'di fortuna, vedrai il logo TianoCore in pochi istanti. Se è così, probabilmente sei bravo! Dovrai configurare i file di installazione del tuo sistema operativo su un'unità USB: Tianocore non supporta unità CD-ROM / DVD-ROM pronte all'uso (e non conosco alcun driver per questo.)

Potresti anche voler giocare con alcuni binari della shell UEFI. Ne ho trovati alcuni qui . Tuttavia, non ho ancora testato con Tianocore.

Comunque, grazie per tutti coloro che hanno cercato di aiutare.


Funziona con le installazioni di Windows?
Moab,

Lo usavo con successo con Windows 8 nel 2012. Non ne ho più bisogno perché tutto ciò che è stato realizzato negli ultimi anni utilizza UEFI, perché Windows 8+ richiede ai produttori di hardware di supportarlo. Probabilmente funzionerebbe ancora oggi, ma non so se lo consiglierei.
John Chadwick,

2
Il collegamento DUFI UEFI ora dovrebbe essere qui , ma non è più mantenuto; il sito dice invece di usare Clover EFI .
Kirbyfan64sos,

1
e puoi installare Clover su HDD per rimuovere la necessità di un'unità separata
phuclv,

6

Sono riuscito ad avviare Windows 8.1 su un disco GPT con una configurazione del BIOS SENZA un secondo disco MBR.

La storia era: il mio laptop era sotto una configurazione BIOS + GPT, con solo Arch Linux installato. Di recente ho bisogno di eseguire alcune attività in Windows (che le macchine virtuali non possono), quindi faccio fatica ad installare Windows con la mia configurazione BIOS + GPT esistente. Secondo la risposta di Milind , sono riuscito a installare i file di avvio di Windows (Boot, bootmgr, ecc.) Su una (piccola) unità USB MBR. E ogni volta che accendo il mio laptop con quell'unità USB collegata, posso avviare Windows 8.1, dopodiché l'unità può essere scollegata in modo sicuro.

Lo svantaggio è ovvio: ho bisogno di portare con me un'unità USB per avviare Windows. Quindi ho sempre cercato di liberarmene.

Dopo aver provato con metodi diversi, ho finalmente trovato il modulo memdisk del progetto syslinux funzionante.

  • Devi abbandonare il boot manager di Windows.
  • Non è necessario installare syslinux. È necessario solo il modulo memdisk (un file da 26 kB).
  • È possibile utilizzare molti bootloader per caricare questo modulo, nel mio caso, il mio bootloader preferito GRUB (versione 2).

Ecco lo schema di come fare:

  • Partiziona il tuo disco GPT per soddisfare le esigenze di GRUB, vale a dire una piccola partizione per incorporare core.img. Link dettagliato
  • Installa GRUB su quella piccola partizione.
  • Installa Windows con imagex.E utilizzare bootsecte bcdbootper installare i file di avvio di Windows in un piccolo disco USB MBR..
  • Usa ddo dd_rescueper clonare il tuo piccolo disco USB in un'immagine disco. (Il disco USB ha terminato il suo lavoro.) L'immagine potrebbe essere troppo grande per essere caricata con memdisk, è possibile montarla e ridurne il file system / la partizione.
  • Secondo il mio test, non è necessario un disco MBR fisico per installare i file di avvio di Windows. È possibile creare un file VHD e trattarlo come un disco fisico.Dopo aver installato i file di avvio di Windows nel VHD, è possibile convertirlo in un'immagine del disco non elaborata (stile dd) utilizzando gli strumenti forniti da VirtualBox o QEUM.Se creato con type=fixed, il file vhd è solo una normale immagine del disco grezzo (stile dd) con piè di pagina da 512 byte. Il piè di pagina verrà riconosciuto come "spazio non partizionato" e verrà ignorato, quindi un type=fixedfile VHD può essere inviato direttamente a MEMDISK senza convertire e quindi avviare Windows.
  • Configurare GRUB per utilizzare memdisk per caricare questa immagine disco.
  • Windows si avvierà.

Un how-to dettagliato può essere trovato nella mia risposta reboot.pro al thread di Milind.


1
@wzboy Sto usando Arch Linux e sono riuscito a ottenere il punto di installare Windows (con wimlib-imagex). Ora non sono sicuro di come continuare. Saresti in grado di elaborare come creare il file VHD da una distribuzione Linux?
Mihai Bişog,

@ MihaiBişog Hai bisogno di un Windows PE per creare quel disco rigido virtuale. Esistono molti modi per avviare Windows PE. GRUB e syslinux possono avviare file ISO, ad esempio.
Zhuoyun Wei,

Questo non romperà gli aggiornamenti di Windows? Voglio dire, se Microsoft rilascerà l'aggiornamento che dovrebbe modificare questi file boot / bootmgr che metti nell'immagine del disco virtuale - non verranno aggiornati e non ti accorgerai nemmeno di questo. Suppongo anche che ciò possa interrompere alcune operazioni di riparazione di Windows. Ci sono altri aspetti negativi?
Powerman,

In realtà, BCD / Bootmgr non verrà mai trovato da Windows, poiché risiede all'interno di un'immagine floppy / disco. Quindi non si tratta di aggiornarlo automaticamente. La riparazione automatica non funzionerà. Qualsiasi cosa relativa agli strumenti di Microsoft relativi al tuo avvio probabilmente non funzionerà.
Milind R

1
Sì, tutto ciò che riguarda bootmgr non funzionerà, poiché sono "spariti" dopo aver aiutato l'avvio di Windows. In effetti, quando esegui "bcdedit" in cmd.exe ti dirà che non riesce a trovare i file di avvio. :-)
Zhuoyun Wei,

5

Se hai anche una piccola unità di riserva, puoi avviare Windows (a 32 o 64 bit) da GPT sul BIOS. Un floppy lo farà.

Avviare nel disco di installazione / riparazione di Windows.

Creare l'unità di sistema sul piccolo disco / floppy e utilizzare bcdbootper posizionare i file di avvio sull'unità appena creata sul piccolo disco. Aggiungi un bootsector con bootsect. Cambia {bootmgr} devicein boot. Avvio da un piccolo disco.

I passaggi sono dettagliati qui .


2
Ho provato quello e ha funzionato. Ora ho un Windows 8.1 funzionante su un disco GPT con una configurazione del BIOS. Tutto quello che devo fare è inserire la mia chiavetta USB per avviarla. Dopo il processo di avvio, è possibile rimuovere l'unità USB. Proprio come ai vecchi tempi, intendo floppy MS-DOS ...
Zhuoyun Wei

Lol. Sto lavorando a una soluzione che non richiede un altro disco. Puoi dirmi quanto è lento / veloce?
Milind R

1
Penso che mettere bootmgr su un altro disco non prolunghi l'avvio di Windows, almeno non lo sento.
Zhuoyun Wei,

2
OHHHH SÌ. Mi scuso per essere troppo eccitato. Ho trascorso un intero pomeriggio e finalmente sono riuscito ad avviare Windows 8.1 su un disco GPT sotto un setupt BIOS SENZA un secondo (piccolo) disco MBR - usando il modulo memdisk syslinux che è in grado di caricare l'immagine del disco rigido.
Zhuoyun Wei,

1
Ecco il mio post: reboot.pro/topic/…
Zhuoyun Wei,

3

Grazie mille a Wzyboy.

Ho riscontrato questo problema quando ho tentato di installare Windows 2012 su Dell PowerEdge 2950 con RAID da 6 TB. Non ha UEFI.

Ho effettuato alcuni esperimenti. Per prima cosa ho creato un HDD virtuale da 32 Mb, come diceva Wzyboy, e ho semplicemente copiato tutte le cose dalla partizione riservata di Microsoft. Windows è stato avviato normalmente. Ma con questa soluzione, il servizio Hyper-V non può essere avviato.

Come dice wiki memdisk, decide automaticamente in base alla dimensione dell'immagine, che tipo di media deve emulare. Quindi, ho creato il floppy 720K virtuale in ambiente WMware e ho copiato bootmgr, BCD e bootstat.dat in esso (per ogni evenienza, il sottomenu memtest eliminato dall'archivio BCD). Dimensione floppy Ho scelto il più piccolo possibile, quindi potrebbe essere più grande o anche più piccolo, non ho provato.

Ora si avvia dall'unità GPT e Hyper-V funziona bene.

PS può essere di aiuto per software di terze parti. Qualcuno ha usato qualcosa del genere? https://www.terabyteunlimited.com/bootit-bare-metal.htm


Ultimamente, dopo aver trascorso molte ore in trucchi per le immagini, ho scoperto che il controller RAID Perc5-i era in grado di suddividere l'array più piccolo della capacità del disco rigido fisico. Quindi, su hardware professionale l'avvio da GPT non è un problema.
Nikolai Vakulenko,

Puoi per favore raccontare il tuo scenario e la tua correzione, in questo thread di sviluppo ? Sto cercando di mantenere tutti i dettagli insieme.
Milind R

2

L'articolo Una trasformazione da BIOS a UEFI descrive in dettaglio come utilizzare TainoCore UEFI DUET.

Capisco che hai avuto problemi con TainoCore, ma forse questo articolo funzionerà per te.

L'articolo dice:

Alcuni computer non funzionano con UEFI DUET. Ancora più importante, è davvero utile solo su computer x86-64 a 64 bit, specialmente in forma binaria. In effetti, non si avvia correttamente nemmeno su alcuni computer x86-64. Nei test su cinque sistemi x86-64, sono riuscito a far funzionare una o entrambe le versioni su solo tre computer: un tasso di successo piuttosto triste, davvero. Potrebbe essere solo una coincidenza, ma i due computer che hanno funzionato meglio per me hanno utilizzato CPU Intel, mentre i due che hanno funzionato peggio e quello che ha funzionato con la versione 2.1 ma non con la versione 2.3 avevano tutti CPU AMD.

Ciò sembra implicare che si dovrebbero provare diverse versioni di UEFI DUET prima di arrendersi.

Aiuterebbe a conoscere il modello del tuo computer.


Dall'ultimo aggiornamento di questa domanda, ho effettivamente ottenuto UEFI DUET per l'avvio corretto sul mio computer. Purtroppo, la mancanza di un driver DVD-ROM mi ha ucciso, poiché non avevo alcuna unità USB su cui archiviare Windows. Dopo che il mio hard disk primario si è rotto in modo casuale, ho deciso di riposare e usare il partizionamento del BIOS su un pezzo di ricambio. Tuttavia, questo articolo è sicuramente utile, e sono ancora interessato a farlo funzionare da solo. Proverò a ricordare di prendere presto un flash drive.
John Chadwick,

@JohnChadwick puoi usare Clover e installarlo su HDD in modo da non aver più bisogno di un'unità di avvio separata
phuclv,

@phuclv: Hai notato che il commento di John Chadwick è del 2011 e che ha dato la sua risposta a questo post?
harrymc,

@harrymc ovviamente lo so. Questa informazione è per i futuri lettori
phuclv,

0

Le persone devono tenere presente che non tutti i firmware di BIOS sono in grado di gestire un'unità GPT. Ho un'unità USB Seagate da 4 TB che era GPT dalla fabbrica e nessuno dei miei due computer si avviava con l'unità collegata alla porta USB.

Le macchine si bloccheranno nella schermata del menu F2 Enter Setup F10 Boot e l'unica cosa che si può fare a quel punto è spegnere e riaccendere.

Una volta convertita l'unità in MBR che uccide circa 2 Tb di spazio sull'unità, entrambi i sistemi si avviano e si avviano nel sistema operativo normalmente con l'unità connessa.

Sto cercando una patch del BIOS per correggere questo problema.


Il BIOS non sa nulla sull'unità , sia GPT o MBR, né etichetta BSD o APM ... Carica solo il primo settore (ad es. MBR) e lo esegue. A quel punto il lavoro del BIOS può essere considerato "finito". Se l'unità non si avvia, significa solo che non esiste un settore di avvio valido sull'unità
phuclv,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.