HVORDAN Redde EN IKKE-oppstart GRUB 2 På Linux

grub kommando shell

En gang hadde vi eldre GRUB, Grand Unified Linux Bootloader versjon 0.97. Legacy GRUB hadde mange dyder, men det ble gammelt og utviklerne lengtet etter mer funksjonalitet, og DERMED KOM GRUB 2 til verden.

GRUB 2 ER en stor omskrivning med flere signifikante forskjeller. Den støtter flyttbare medier, og kan konfigureres med et alternativ for å gå INN I SYSTEM-BIOS. Det er mer komplisert å konfigurere med alle typer skript for å vasse gjennom, og i stedet for å ha en fin ganske enkel /boot/grub/menu.lst fil med alle konfigurasjoner på ett sted, er standard /boot/grub/grub.cfg. Som du ikke redigerer direkte, å nei, for dette er ikke for bare mennesker å røre, men bare andre skript. Vi ydmyke mennesker kan redigere /etc/default/grub, som hovedsakelig styrer UTSEENDET PÅ GRUB-menyen. Vi kan også redigere skriptene i /etc/grub.d/. Dette er skriptene som starter operativsystemene dine, styrer eksterne applikasjoner som memtest og os_prober og theming./boot/grub/grub.cfger bygget fra /etc/default/grubog /etc/grub.d/* når du kjørerupdate-grub kommandoen, som du må kjøre hver gang du gjør endringer.

den gode nyheten er atupdate-grub skriptet er pålitelig for å finne kjerner, oppstartsfiler og legge til alle operativsystemer I GRUB-oppstartsmenyen, slik at du ikke trenger å gjøre det manuelt.

Vi skal lære å fikse to av de vanligste feilene. Når du starter opp systemet ditt og det stopper vedgrub> prompt, er det hele GRUB 2 kommandoskallet. DET betyr AT GRUB 2 startet normalt og lastetnormal.mod modulen (og andre moduler som er plassert i /boot/grub//), men den fant ikke dingrub.cfg fil. Hvis du ser grub rescue> betyr det at det ikke kunne finne normal.mod, så det kunne sannsynligvis ikke finne noen av oppstartsfilene dine.

Hvordan skjer dette? Kjernen kan ha endret stasjonstilordninger, eller du flyttet harddiskene dine, du endret noen partisjoner, eller installert et nytt operativsystem og flyttet ting rundt. I disse scenariene er oppstartsfilene dine fortsatt der, MEN GRUB finner dem ikke. Så du kan se etter oppstartsfilene dine på GRUB-spørringen, angi plasseringene, og deretter starte systemet og fikse GRUB-konfigurasjonen.

GRUB 2 Command Shell

GRUB 2 command shell er like kraftig som skallet i eldre GRUB. Du kan bruke den til å oppdage oppstartsbilder, kjerner og rotfilsystemer. Faktisk gir det deg full tilgang til alle filsystemer på den lokale maskinen, uavhengig av tillatelser eller andre beskyttelser. Som noen kan vurdere et sikkerhetshull, men du vet det gamle Unix-ordtaket: den som har fysisk tilgang til maskinen, eier den.

når du er pågrub> prompt, har du mye funksjonalitet som ligner på et kommandoskall som historie og tabulering. grub rescue> – modusen er mer begrenset, uten historikk og ingen tabulering.

hvis du trener på et fungerende system, trykker Du På C Når GRUB boot-menyen vises for å åpne GRUB command shell. Du kan stoppe oppstart nedtellingen ved å bla opp og ned menyoppføringene med piltastene. Det er trygt å eksperimentere PÅ GRUB kommandolinjen fordi ingenting du gjør der er permanent. Hvis du allerede stirrer pågrub> ellergrub rescue>spør så er du klar til å rocke.

de neste kommandoene fungerer med både grub>og grub rescue>. Den første kommandoen du bør kjøre påkaller personsøkeren, for å personsøke lange kommandoutganger:

grub> set pager=1

det må ikke være mellomrom på hver side av likhetstegnet. La oss nå utforske litt. Skriv ls for å liste alle partisjoner SOM GRUB ser:

grub> ls(hd0) (hd0,msdos2) (hd0,msdos1)

Hva er alt dettemsdos stuff? DET betyr at dette systemet har DEN gamle STILEN MS-DOS partisjonstabellen, i stedet for den skinnende Nye Globalt Unike Identifikatorer partisjonstabellen (GPT). (Se Bruke Den Nye Guid-Partisjonstabellen I Linux(Farvel Gammel MBR). Hvis DU kjører GPT, vil det si (hd0,gpt1). La oss snoke. Bruk kommandoenls for å se hvilke filer som er på systemet ditt:

grub> ls (hd0,1)/lost+found/ bin/ boot/ cdrom/ dev/ etc/ home/ lib/lib64/ media/ mnt/ opt/ proc/ root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz vmlinuz.old initrd.img initrd.img.old

Hurra, Vi har funnet rotfilsystemet. Du kan utelate msdos og gpt etikettene. Hvis du lar av skråstrek vil det skrive ut informasjon om partisjonen. Du kan lese hvilken som helst fil på systemet med kommandoen cat :

grub> cat (hd0,1)/etc/issueUbuntu 14.04 LTS n l

Lesing /etc/issue kan være nyttig på et multi-boot system for å identifisere dine Forskjellige Linuxer.

Oppstart fra grub>

slik setter du oppstartsfilene og starter systemet fragrub> prompt. Vi vet fra å kjøre kommandoenls at Det er Et Linux rotfilsystem på (hd0,1), og du kan fortsette å søke til du bekrefter hvor /boot/grub er. Kjør deretter disse kommandoene ved å bruke din egen rotpartisjon, kjerne og initrd-bilde:

grub> set root=(hd0,1)grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1grub> initrd /boot/initrd.img-3.13.0-29-genericgrub> boot

den første linjen angir partisjonen som rotfilsystemet er på. DEN andre linjen forteller GRUB plasseringen av kjernen du vil bruke. Begynn å skrive /boot/vmli, og bruk deretter tab-fullføring for å fylle ut resten. Skriv root=/dev/sdX for å angi plasseringen av rotfilsystemet. Ja, dette virker overflødig, men hvis du forlater dette, får du en kjernepanikk. Hvordan vet du riktig partisjon? hd0,1 = / dev / sda1. hd1,1 = / dev / sdb1. hd3, 2 = / dev / sdd2. Jeg tror du kan ekstrapolere resten.

den tredje linjen setterinitrd – filen, som må være det samme versjonsnummeret som kjernen.

den fjerde linjen starter systemet.

på Noen Linux-systemer er de nåværende kjernene og initrdene symlinket inn i toppnivået på rotfilsystemet:

$ ls -l /vmlinuz -> boot/vmlinuz-3.13.0-29-genericinitrd.img -> boot/initrd.img-3.13.0-29-generic

slik at du kan starte opp fra grub> som dette:

grub> set root=(hd0,1)grub> linux /vmlinuz root=/dev/sda1grub> initrd /initrd.imggrub> boot

Oppstart fra grub-rescue>

hvis DU er I GRUB rescue shell kommandoene er forskjellige, og du må laste normal.mod oglinux.mod moduler:

grub rescue> set prefix=(hd0,1)/boot/grubgrub rescue> set root=(hd0,1)grub rescue> insmod normalgrub rescue> normalgrub rescue> insmod linuxgrub rescue> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1grub rescue> initrd /boot/initrd.img-3.13.0-29-genericgrub rescue> boot

tab-ferdigstillelse skal begynne å fungere etter at du har lastet begge modulene.

Gjør Permanente Reparasjoner

når du har startet systemet ditt, kjør disse kommandoene for å fikse GRUB permanent:

# update-grubGenerating grub configuration file ...Found background: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tgaFound background image: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tgaFound linux image: /boot/vmlinuz-3.13.0-29-genericFound initrd image: /boot/initrd.img-3.13.0-29-genericFound linux image: /boot/vmlinuz-3.13.0-27-genericFound initrd image: /boot/initrd.img-3.13.0-27-genericFound linux image: /boot/vmlinuz-3.13.0-24-genericFound initrd image: /boot/initrd.img-3.13.0-24-genericFound memtest86+ image: /boot/memtest86+.elfFound memtest86+ image: /boot/memtest86+.bindone# grub-install /dev/sdaInstalling for i386-pc platform.Installation finished. No error reported.

når du kjørergrub-install husk at du installerer den til oppstartssektoren på harddisken og ikke til en partisjon, så bruk ikke et partisjonsnummer som /dev/sda1.

Men Det Virker fortsatt ikke

hvis systemet ditt er så ødelagt at ingen av dette virker, prøv Super GRUB2 live rescue disk. Den offisielle GNU GRUB Manual 2.00 bør også være nyttig.

Related Posts

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *