unità SATA secondaria in SATA1 vs SATA3 - Avvio EFI e problemi BIOS


1

Ho appena ricevuto un nuovo PC (HP P7-1380T) con Windows 7 preinstallato. La macchina è configurata per l'avvio di EFI senza "avvio sicuro". Avevo programmato di installare la mia vecchia unità SATA (dual-boot XP e Linux con grub nell'MBR) come unità secondaria per copiare sia i file Windows che Linux sulla nuova unità - e quindi lasciarlo come dispositivo di backup. Il problema è che non riesco a installare il vecchio disco in modo che sia Windows che Linux possano vederlo.

La macchina è arrivata con il suo disco rigido in SATA0 e un'unità DVD / ROM in SATA2. SATA1 e SATA3 sono gratuiti.

Quando collego la mia vecchia unità a SATA1, non riesco ad avviare Windows 7. Il bootloader EFI tenta di eseguire l'avvio dalla vecchia unità SATA1 anziché dalla nuova unità SATA0. Arriva fino al caricamento del menu di avvio di GRUB, a quel punto mi spengo per prevenire ulteriori malizia. In SATA1, la vecchia unità viene visualizzata nel BIOS e quando avvio Linux da un CD live, lo vede come / dev / sdb.

Quando collego la mia vecchia unità a SATA3, non viene visualizzata nel BIOS e quando avvio il CD live di Linux, non vede neanche l'unità. Ma con l'unità in SATA3, Windows 7 stivali, e si vede la vecchia partizione XP e lo rende disponibile come unità F :.

Preferirei usare SATA1, ovviamente, quindi Linux può usare l'unità, ma finora posso vedere solo Windows o Linux, ma non entrambi. Perché il bootloader di EFI Windows dovrebbe tentare di avviarsi da un'unità secondaria, quando è ovviamente impostato per l'avvio di SATA0? C'è qualche strumento che posso usare per cambiare questo comportamento?


È possibile confermare l'ordine di avvio nella configurazione del firmware UEFI? A volte l'impostazione effettiva non ha nulla a che fare con la numerazione delle porte. È anche abbastanza insolito che un firmware UEFI decida di avviarsi da un'unità MBR. Con le modalità di funzionamento del firmware, non riesco a vedere come questo sia possibile anche senza ripristinare la CPU ogni volta che si avvia.
billc.cn

Boot Manager di Windows, floppy USB, disco rigido USB, unità CD / DVD ATAPI. Potrebbe essere che Windows Boot Manager abbia un proprio ordine di avvio implementato nel software una volta caricato? Forse l'utility di gestione del bootloader EasyBCD avrebbe fatto luce. ci viene in mente, prima di avviare il vecchio grub del MBR, il boot manager visualizza una barra di avanzamento con un messaggio come "dispositivi di scansione". Forse sta rilevando l'unità e inserendola nell'elenco di avvio.
littlenoodles,

Ho caricato EasyBCD e il bootloader di Windows mostra Windows 7 in fondo all'elenco, con sopra una voce generica "Disco rigido". Forse è questo il problema, quel disco rigido generico si avvia quando sono in SATA1 (il BIOS lo segnala), ma non quando sono in SATA3 (il BIOS lo ignora). Posso provare a modificare l'ordine di avvio con EasyBCD, se pensi che sia questo il problema (e non riesco a
bloccare il

Risposte:


1

Dal momento che ha Windows XP, il tuo vecchio disco usa quasi sicuramente partizioni MBR e un boot loader BIOS. Sfortunatamente, non esiste una standardizzazione nel modo in cui i moderni sistemi EFI reagiscono quando vengono mostrati due dischi, uno dei quali utilizza GPT e un boot loader EFI e l'altro che utilizza MBR e un boot loader BIOS. Potresti riuscire a far ignorare il disco giocando con le impostazioni del firmware o l'ordine di avvio, ma potrebbe non essere sufficiente. In tal senso, cerca le opzioni dell'ordine di avvio o le opzioni per disabilitare il supporto "CSM" o "legacy". Potresti anche provare ad abilitare il supporto "avvio veloce".

Se nessuna di queste funzioni, potresti considerare un'alternativa:

  1. Installa entrambi i dischi.
  2. Avviare un sistema Linux di emergenza dall'unità ottica. Qualcosa come System Rescue CD o Parted Magic dovrebbe funzionare bene.
  3. Utilizzare il sistema di emergenza per copiare tutti i file dal vecchio disco sul nuovo disco.
  4. Facoltativamente, spegnere, rimuovere il vecchio disco, avviare utilizzando le nuove installazioni e verificare che tutti i file siano accessibili. Riavvia nel sistema di emergenza.
  5. Avvia parted, GParted o gdisksul vecchio disco.
  6. Creare una nuova tabella delle partizioni GUID (vuota) sul vecchio disco. Puoi farlo partedcon il mklabelcomando, in GParted usando la finestra di dialogo Dispositivo-> Crea tabella delle partizioni e la sua opzione Avanzate, e gdiskdigitando onel menu principale e salvando le modifiche con w. Questo dovrebbe rendere il disco non avviabile in modalità BIOS, quindi non presenterà il problema che stai riscontrando ora.
  7. Crea nuove partizioni e filesystem sul vecchio disco. Assicurati di utilizzare uno strumento compatibile con GPT, come partedGParted o gdisk; non usare fdisk, cfdisko sfdisk!
  8. Nel sistema di emergenza o dopo il riavvio nell'installazione normale, iniziare a utilizzare il vecchio disco come disco di backup.

Naturalmente, questa procedura significa che non sarai in grado di avviare Windows XP o la tua vecchia installazione di Linux. Se vuoi mantenere la possibilità di avviare Windows XP, dovrai cercare di più una soluzione basata su firmware; o forse potresti fare un backup dell'immagine della partizione XP e provare a eseguirla usando una macchina virtuale - ma una reinstallazione completa di XP ha più senso in quel caso.


La tua risposta sembra promettente. Stavo pensando di disabilitare in qualche modo l'MBR sul vecchio disco, quindi non ci sarebbe nulla da avviare lì. Posso farlo dal CD di ripristino utilizzando fdisk per decomprimere semplicemente la partizione predefinita (o qualcosa del genere) senza dover cancellare l'unità?
littlenoodles,

Ad ogni modo, non mi interessa mantenere la possibilità di avviare XP - o anche la mia vecchia partizione linux / root. Voglio solo copiare i dati dalla partizione XP e spostare il mio vecchio Linux / Home sul nuovo disco. Suppongo che tu stia raccomandando di ripartizionare la nuova unità GPT per allocare le partizioni Linux prima dell'intera procedura di salvataggio, così posso spostare roba Linux su partizioni Linux?
littlenoodles,

Un'altra cosa - se potessi far vedere a Linux il vecchio disco come SATA3, i miei problemi di avvio sarebbero discutibili - Windows va bene con il vecchio disco in SATA3, è Linux che non può vederlo lì.
littlenoodles,

Ho provato altre cose. Avviato da un flash drive live e resettato il flag di avvio sulla mia vecchia partizione XP. Nessun effetto. Stranamente, quando ho lasciato l'unità flash collegata e ho provato ad avviare win7, si è avviato gparted - e ho gitva il menu di avvio grafico gparted mentre ho ottenuto un menu di testo quando ho chiesto specificamente di avviare da flash. Penso che Windows stia eseguendo l'avvio e abbia il suo concetto interno di ordine di avvio. In entrambi i casi sata1 e flash, ottengo una barra di avanzamento "Windows sta caricando i file" prima del caricamento. Non capisco quando non ci sono unità secondarie e boot win7 stesso.
littlenoodles,

È possibile ripartizionare la nuova unità prima o dopo aver spostato i dati da quella nuova, ma ovviamente prima ha più senso se si dispone di quantità significative di dati Linux. Si potrebbe essere in grado di convertire il vecchio disco da MBR a GPT formato senza perdita di dati utilizzando gdisk e avere tutto funziona correttamente, ma in realtà dipende da quello che sta innescando il firmware di fare avviare il vecchio disco in modalità BIOS. Windows non può eseguire l'avvio; questo è il lavoro del firmware e degli eventuali boot manager e boot loader che hai installato. Detto questo, un caricatore di avvio Microsoft potrebbe causare problemi.
Rod Smith,
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.