È possibile "tornare" su GRUB dopo aver avviato Linux senza riavviare


21

Sto eseguendo il dual boot di Windows e Linux sul mio SSD e mi trovo spesso a passare da un sistema operativo all'altro. L'SSD è davvero veloce ed entrambi i sistemi operativi si avviano in circa 3 secondi una volta selezionati in GRUB. Tuttavia, ci vogliono un'eternità (circa 30 secondi) per inizializzare il mio BIOS, RAID e il secondo controller SATA prima che io sia finalmente in GRUB.

Quindi mi chiedevo se fosse possibile saltare queste inizializzazioni e semplicemente "tornare" su GRUB dopo aver avviato Linux. Idealmente sarei anche in grado di fare lo stesso da Windows, ma la mia speranza non è molto alta lì :)

Ho fatto una piccola ricerca online e non ho trovato altro che un caricatore linux un po 'datato - loadlin.exe, che poteva essere eseguito da Dos o Windows 95/98 per avviare Linux. Quindi almeno il concetto di cambiare sistema operativo senza riavviare non è nuovo. Qualcuno sa di uno strumento attuale che fa questo?

In caso contrario, c'è un problema tecnico che ci impedisce di scrivere un tale programma o semplicemente non c'è abbastanza domanda?

AGGIORNAMENTO: Un mio amico mi ha appena parlato di Kexec . Usandolo sembra essere possibile avviare un kernel Linux diverso dall'interno di un kernel in esecuzione, ma è possibile tornare a GRUB o avviare direttamente un'installazione di Windows?


4
Domanda interessante. Un motivo a cui riesco a pensare perché non c'è molto interesse in questo è che le macchine virtuali sono migliorate di recente. La maggior parte delle persone esegue il proprio sistema operativo secondario all'interno di una macchina virtuale sul proprio computer principale anziché su doppio avvio.
Noufal Ibrahim,

Stavo anche considerando di utilizzare una macchina virtuale, ma ho bisogno di prestazioni grafiche veloci e finora le macchine virtuali non offrono prestazioni soddisfacenti. Forse le cose cambieranno ora che Xen (e presto altri) ha un'opzione passthrough completa per le schede grafiche. Tuttavia sarebbe comunque interessante vedere se esiste un modo per passare rapidamente. Per quanto riguarda il secondo commento, in realtà non ero a conoscenza di unix.stackexchange.com. Sicuramente darò un'occhiata e forse pubblicherò lì se non ricevo prima una risposta. Grazie per il suggerimento

1
30 secondi ? penso su un server IBM è come 5 minuti.
Sirex,

1
Dovrebbe essere possibile con i bootloader EFI (non ho idea di come). Un po 'più difficile con quelli di MBR, poiché si aspettano di essere avviati in modalità reale a 16 bit e hanno impostato tutto da soli, cosa che potrebbe non essere possibile dopo che il sistema è stato inizializzato una volta.
Grawity,

@Sirex: Ma chi dualboot i server IBM? :)
Grawity

Risposte:


6

Usando kexec puoi risolvere il problema. Non è necessario coinvolgere GRUB. Puoi usare kexec-loader per avviare direttamente diversi sistemi operativi da Linux. (Assicurati che il supporto per kexec sia compilato nel tuo kernel.)


1
Per quanto ne so, kexec_load()syscall è destinato esclusivamente al caricamento di un kernel Linux. Lo strumento kexec-loader che hai collegato sembra supportare anche solo i kernel Linux. --- È possibile avviare ad esempio memtest86 ma non ho mai visto nessuno avviare direttamente Windows usando il meccanismo kexec ma è possibile tramite GRUB : come avviare direttamente Windows da kexec + Grub4DOS .
pabouk,


2

Verifica se disponi del supporto UEFI. Ciò può DRASTICAMENTE migliorare la velocità di avvio.


Questo non fornisce una risposta alla domanda. Per criticare o richiedere chiarimenti a un autore, lascia un commento sotto il suo post.
Jawa,

1
@Jawa l'OP sta avendo un problema perché il suo POST impiega un tempo inaccettabilmente lungo. UEFI sicuramente taglia questa volta: lo scopo stesso della sua creazione.
Milind R

2
Due cose qui: 1) La domanda non è "come faccio ad avviare più velocemente" ma "come posso tornare a GRUB dopo l'avvio?" 2) Le risposte a una riga sono probabilmente migliori come commenti.
Kevin Panko,

Grazie per il suggerimento Da quando ho pubblicato la domanda originale, ho cambiato la mia configurazione del disco rigido e proprio ora ho ottimizzato alcune impostazioni nel BIOS per migliorare i tempi di avvio. In sostanza, ho potuto disabilitare le cose relative al RAID (che non mi servono più) e abilitare anche l'avvio EFI. L'effetto complessivo è un avvio molto più veloce. Tuttavia, la domanda originale è ancora interessante per me e finora non ho trovato una soluzione affidabile.
Dimitar Asenov,

1

Per farla breve, non con il modo in cui le cose funzionano ora. Un approccio migliore potrebbe essere quello di scoprire perché il controller BIOS / RAID / SATA impiega così tanto tempo. Potrebbero essere disponibili aggiornamenti del BIOS e possibilmente aggiornamenti del firmware per il controller raid.


Una possibile ragione per un POST lento è che il controller HDD è configurato per rilevare automaticamente le unità inesistenti nel BIOS. Se si dispone di un singolo HDD e di un singolo CD / DVD, non ha senso tentare di rilevare automaticamente gli altri 2 (o 4) slot, questi test devono scadere e possono richiedere del tempo.
Haqa,

1

No. A meno che il BIOS non abbia un'opzione di installazione specifica per saltare il POST durante un riavvio (l'ho visto una volta), questo non esiste da Windows 98 / ME (il trucco del riavvio rapido che ha solo ricaricato Windows.)

Forse qualcuno con abbastanza tempo per avviare l'hacking potrebbe riprodurlo e ricaricare GRUB, ma dovrebbe cambiare il modo in cui INIT riavvia il sistema.


0

Se non riesci a trovare gli aggiornamenti come suggerito Zeroedout, potresti voler eseguire il tuo sistema host in macchine virtuali, quindi il riavvio è quasi gratuito.

Inoltre, alcuni sistemi dispongono di una modalità di avvio rapido / rapido in cui vengono verificati alcuni controlli. Potresti volerlo controllare.

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.