Grub2 MBR vs Windows MBR


4

Ho un sistema HP fornito con Vista installato e anche una partizione di ripristino nascosta. Successivamente ho eseguito l'aggiornamento a Win7 (32 bit) Ultimate e da lì a Win7 Pro. Ora il disco rigido non funziona. Sono riuscito a utilizzare il partimage per afferrare la partizione di ripristino (senza errori) prima di metterlo sul ghiaccio in preparazione per un ripristino basato su congelatore della partizione Win7.

Su un'altra unità ho creato 3 partizioni primarie e una partizione estesa:

  1. Partizione di ripristino (NTFS)
  2. Partizione Win7 (NTFS)
  3. Ubuntu root (ext4)
  4. Ubuntu swap (ext4) (partizione logica)

Successivamente, ho installato Ubuntu 10.4 e ho permesso a grub2 di installare l'MBR. Quindi, ho usato il partimage per popolare la partizione di ripristino con l'immagine che ho estratto dall'unità guasta. Ora, prima di provare a ripristinare la partizione Win7, voglio essere sicuro di poter accedere alla partizione di ripristino esistente. E non posso. Riesco a vedere i file ma non riesco ad avviarlo. Grub lo vede come un partiton di Windows e lo elenca nel menu. Ma quando provo ad avviarlo, guardo uno schermo vuoto con un cursore lampeggiante. Ho provato a bypassare grub usando gparted per rendere attiva la partizione di ripristino e avviare direttamente quella invece di grub, ma continuo comunque ad avviare grub.

Quindi, con quello sfondo, lasciami porre le mie domande.

  1. A quanto ho capito, il codice MBR IBM / Windows standard cerca nella tabella delle partizioni la prima partizione primaria con il flag attivo / di avvio impostato e quindi trasferisce il controllo al codice che trova all'inizio di quella partizione o "avvio partizione" record "(PBR). Il PBR quindi individua NTLDR / BOOTMGR / grub / etc e lo carica. La mia comprensione è corretta?
  2. In quale fase del processo di avvio viene gestita la chiave di interruzione (f11 nel caso di HP) per l'avvio nella partizione di ripristino? MBR? PBR? Boot manager / caricatore?
  3. Quando grub scrive l'MBR sembra anche usare il resto della traccia 0 e il codice MBR esegue questo codice prima di passare a caricare il resto del codice grub in qualunque partizione sia caricata (nel mio caso la partizione 3). In questo senso ignora il flag attivo / avviabile nella tabella delle partizioni. L'ho capito bene?

Mi mancano ovviamente alcuni pezzi qui perché non riesco a caricare la mia partizione di ripristino. Penserei che il comando grub "chainloader" (perché +1?) Eseguirà semplicemente il codice PBR. Se questo è vero, viene cancellato qualcosa nella mia partizione di ripristino.


Penso che se avessi installato grub dopo aver riempito la partizione di ripristino avrebbe elencato il ripristino. In questo caso non ha visto il ripristino perché 1) non hai aggiornato grub o 2) grub non ha eseguito ulteriori scansioni una volta trovata la prima partizione di avvio (ovvero quella di Windows 7 che hai erroneamente indicato come seconda).
Jiggunjer,

Risposte:


3

Sui sistemi con tale partizione di ripristino, in genere la partizione attiva è la partizione di ripristino. La partizione di ripristino visualizza il messaggio "Premere F11" e, se non viene premuto, inoltra alla partizione principale del sistema operativo.

L'MBR è essenzialmente stupido; tutto ciò che fa è scegliere una delle partizioni e inoltrare al VBR di quella partizione.

Se si desidera un doppio avvio di Linux / Windows, la partizione di ripristino dovrebbe essere inoltrata alla partizione GRUB, che consentirebbe quindi le opzioni e inoltrerebbe a Windows se Windows fosse selezionato.

Non perderei tempo con la partizione di ripristino: è possibile ottenere tutti i driver lì dal sito Web di HP, e se ne hai già 7 sulla confezione, penso che entrambi possiamo concordare sul voler tornare a Vista è improbabile.

Quindi, alle tue domande specifiche.

  1. Sì, la tua comprensione è corretta
  2. Risposto sopra
  3. Non sono sicuro di cosa faccia GRUB quando viene installato sull'MBR. A quanto ho capito, in realtà non ha messo lì la logica aziendale, ma potrei sbagliarmi.

Spero che aiuti :)


Grazie Billy. L'unico motivo per cui voglio la partizione di ripristino è per motivi di licenza, poiché il mio Win7 è una copia di aggiornamento e, se devo reinstallare, ho pensato che potrei averne bisogno (anche se ho fatto qualche ulteriore indagine e ho capito che potrei non farlo). Non sono sicuro di quale fosse la partizione attiva sulla build HP originale. La partizione di ripristino era nascosta. Non ha mai mostrato un messaggio sulla pressione di F11, dovevi solo saperlo. Prenderò l'MBR quando lo rimuoverò dalla sua camera criogenica (tra i piselli e i rotoli di pizza).
NetWorker,

Si scopre che la partizione Win7 principale era la prima partizione sul disco ed era attiva. Quindi non si stava avviando nella partizione di ripristino.
NetWorker,

0

Domanda 3: Sì, grub inserisce parte di se stesso nella traccia 0. Personalmente non inserisco mai grub in mbr, utilizzo sempre un mbr "normale" e installo grub in una partizione primaria.

Se l'utilizzo di una parte del disco non contrassegnata come utilizzata causerà un problema dipenderà. Credo che il partizionatore del disco in Windows Vista e 7 si comporti diversamente dalla versione precedente, ma non so se utilizza i pezzi di ricambio della traccia 0.

Di recente ho sentito parlare di persone che hanno problemi perché una versione di prova di un programma (Adobe qualcosa?) Scrive su quell'area del disco sovrascrivendo un po 'di grub (per essere in grado di impedire alle persone di reinstallare la prova più e più volte suppongo). (Ascolta un episodio recente del podcast di Ubuntu UK per i dettagli) La mia opinione è che se scrivi in ​​aree che non ti appartengono, non puoi lamentarti del fatto che altre persone facciano esattamente la stessa cosa.

Il mbr bit di grub scrive l'indirizzo del disco fisico della fase successiva di se stesso nel proprio codice e non si accorge affatto delle partizioni, attive o meno.


Ciao neal Credo che i partizionatori più vecchi abbiano lasciato da solo il primo cilindro da solo, quelli Vista + allineano le partizioni su confini di 1 MB ignorando del tutto la geometria. Quindi c'è un gap MBR minore rispetto a prima. Non capisco ancora perché, quando grub carica la VBR sulla partizione di ripristino, si blocca. E voglio davvero sapere dove viene gestito il bit F11. Mi dà fastidio solo quando non riesco a capire queste cose. Sono diventato ossessionato.
NetWorker,

0

L'MBR (1 settore, 512 byte) contiene il codice di avvio e la tabella delle partizioni. Il codice MBR "predefinito" trova la partizione primaria attiva e la catena la carica. (Nel linguaggio GRUB, +1 indica il primo settore, il settore di avvio di quella partizione.)

Quando installi GRUB nell'MBR, sostituisce il codice MBR predefinito (mantenendo ovviamente la tabella delle partizioni) e carica invece il resto dell'immagine principale di GRUB, che è installata nello "spazio MBR" - la parte apparentemente inutilizzata del prima "traccia" che viene dopo il settore MBR. Se installi GRUB in una partizione, lo installa come settore di avvio; la catena di codici MBR predefinita carica quel settore di avvio di GRUB.

Quindi è per questo che esegui sempre GRUB - questo è ciò per cui il codice nell'MBR è stato modificato. È possibile ripristinare il codice MBR predefinito con alcune varianti di fixmbr.

Nella migliore delle ipotesi, ciò proverebbe solo che l'immagine della partizione di ripristino è buona e che è possibile accedervi tramite un MBR vanilla. In realtà, se provi che l'immagine della partizione di ripristino è cattiva, forse è per questo che non ha funzionato tramite GRUB, e se fosse buona, avrebbe funzionato. Quindi potrebbe essere meglio, se puoi farne una buona copia.

È possibile che la partizione di ripristino non si avvii tramite GRUB, per qualche bizzarro motivo. Potrebbe esserci stata una salsa speciale nell'MBR originale di fabbrica che era un prerequisito per la partizione di ripristino. Ho evitato i sistemi che li avevano, quindi non posso offrire molte intuizioni lì.


Grazie Ken, ciò conferma alcune altre informazioni che ho letto su come GRUB si installa da solo. Volevo evitare il processo del caricatore di avvio MS, se possibile, perché non mi piace il modo in cui funziona. Sono abbastanza sicuro di avere una copia completa e integrale della partizione di ripristino, ma i suoi contenuti sono un po 'strani. Non vedo un bootmgr.exe, ma ho un bootmgr e un boo.mgr. C'è anche una directory "boot" con un file "bcd". Ho scaricato il VBR e sembra valido, anche se sembra pre-Vista. Lo dico perché le stringhe di errore contengono "NTLDR" non BOOTMGR. Strano.
NetWorker,

"Se installi GRUB in una partizione, lo installa come settore di avvio; la catena di codici MBR predefinita carica quel settore di avvio di GRUB." O solo se si aggiorna l'MBR per farlo in caso di più partizioni avviabili.
Jiggunjer,
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.