Hvis det noen gang skjedde med deg, må du ikke freak out! Det er veldig enkelt å løse. GRUB 2 bootloader har spesialverktøy for skanning av harddiskene som er installert på datamaskinen din etter oppstartbare operativsystemer som er installert på harddiskene.
I denne artikkelen vil jeg vise deg hvordan du løser problemene som er nevnt ovenfor og bruker grub2-mkconfig verktøy for å løse det. Jeg vil bruke Debian 9 Stretch til demonstrasjonen, men det skal fungere på enhver moderne Linux-distribusjon med GRUB 2 installert. La oss komme i gang.
Hva grub2-mkconfig gjør:
grub2-mkconfig er et veldig enkelt verktøy. Alt det gjør er å skanne harddiskene på datamaskinen din etter installerte oppstartbare operativsystemer (inkludert Window, Mac OS og eventuelle Linux-distribusjoner) og generere en GRUB 2-konfigurasjonsfil. Det er det.
Forskjellen mellom grub2-mkconfig og grub-mkconfig:
Selv om GRUB 2 er installert på datamaskinen din, grub2-mkconfig kommandoen er kanskje ikke tilgjengelig i din favoritt Linux-distribusjon. Men grub-mkconfig kommandoen kan være tilgjengelig i din Linux-distribusjon. Det er ingen forskjell mellom grub-mkconfig og grub2-mkconfig hvis GRUB 2 er installert.
Merk at hvis du har GRUB-arv installert, da grub-mkconfig og grub2-mkconfig kommandoer vil ikke være de samme.
Du kan sjekke hvilken versjon av GRUB som er installert på Linux-maskinen din med følgende kommando:
$ sudo grub2-mkconfig --versjonEller
$ sudo grub-mkconfig --versjon
Som du kan se, på min Debian 9 Stretch-maskin, GRUB 2.02 er installert. Det har jeg heller ikke grub2-mkconfig kommando tilgjengelig på Debian 9 Stretch. Det blir omdøpt til grub-mkconfig. Så grub-mkconfig og grub2-mkconfig er det samme i mitt tilfelle.
Ved hjelp av grub2-mkconfig:
De grub2-mkconfig eller grub-mkconfig kommandoen har bare ett viktig alternativ. De -o eller langformat -produksjon alternativ. Den brukes til å fortelle GRUB 2 hvor den genererte GRUB-konfigurasjonsfilen skal lagres.
Som standard, grub2-mkconfig eller grub-mkconfig kommandoen skriver ut den genererte konfigurasjonsfilen til STDOUT, som er terminalen til Linux-operativsystemet.
Hvis dette er hva du vil, så løp grub2-mkconfig eller grub-mkconfig kommandoen som følger:
$ sudo grub2-mkconfigEller
$ sudo grub-mkconfig
Som du kan se, blir den genererte GRUB 2-konfigurasjonen skrevet ut på terminalskjermen. Dette er kanskje ikke veldig nyttig.
Hvis du vil, kan du eksportere den genererte GRUB 2-konfigurasjonen til en fil. Formatet på kommandoen er gitt nedenfor:
$ sudo grub2-mkconfig -o FILE_PATHEller
$ sudo grub-mkconfig -o FILE_PATH
Hvis du foretrekker det lange formatet, da
$ sudo grub2-mkconfig - utgang FILE_PATHEller
$ sudo grub-mkconfig - utgang FILE_PATH
MERK: Her, FILE_PATH er banen til filen der du vil at den genererte GRUB 2-konfigurasjonen skal lagres.
La oss si at du vil lagre den genererte GRUB 2-konfigurasjonen i en fil grub.cfg i brukerens HJEM katalog.
For å gjøre det, kjør følgende kommando:
$ sudo grub2-mkconfig -o ~ / grub.cfgEller
$ sudo grub-mkconfig -o ~ / grub.cfg
Som du ser, genereres en ny GRUB 2-konfigurasjonsfil.
Som du kan se, grub.cfg filen blir generert på brukerens HJEM katalog.
Som du kan se, innholdet i den genererte grub.cfg filen er den samme som tidligere da jeg skrev ut utgangen i terminalen.
Oppdaterer GRUB 2-konfigurasjonsfil (BIOS):
Hvis du bruker gamle BIOS-baserte hovedkort, bør konfigurasjonsfilen til GRUB 2 bootloader være i / støvel / grub / grub.cfg filen som du kan se på skjermbildet nedenfor.
MERK: På noen Linux-distribusjoner som CentOS 7 eller RHEL 7, kan du finne GRUB 2-konfigurasjonsfilen på / støvel / grub2 / grub.cfg. Hvis det er tilfelle for deg, må du sørge for å justere banen før du kjører grub2-mkconfig eller grub-mkconfig kommandoen i artikkelen nedenfor.
For å oppdatere GRUB 2-konfigurasjonsfilen på BIOS-basert Linux-installasjon, kjør følgende kommando:
$ sudo grub2-mkconfig -o / boot / grub / grub.cfgEller
$ sudo grub-mkconfig -o / boot / grub / grub.cfg
GRUB 2-konfigurasjonsfilen bør oppdateres.
Hvis du forventer noen endringer, start datamaskinen på nytt med følgende kommando:
$ sudo omstartDu bør se hva du forventer i GRUB-menyen like etter at du har trykket på av / på-knappen.
Oppdaterer GRUB 2-konfigurasjonsfil (UEFI):
På UEFI-baserte hovedkort er det litt vanskeligere å oppdatere GRUB 2-konfigurasjonen.
På EFI-baserte Linux-installasjoner er GRUB 2-konfigurasjonsfilen i / boot / efi / EFI /<DINE_OS>/ grub.cfg
Her,
Kjør følgende kommando for å liste alle tilgjengelige kataloger i / boot / efi / EFI katalog:
$ sudo ls / boot / efi / EFISom du kan se, på min CentOS 7-maskin, har jeg bare en katalog centos /
For å oppdatere GRUB 2-konfigurasjonsfilen, kjør følgende kommando:
$ sudo grub2-mkconfig -o / boot / efi / EFI / centos / grub.cfgEller
$ sudo grub-mkconfig -o / boot / efi / EFI / centos / grub.cfg
GRUB 2-konfigurasjonsfilen bør oppdateres.
Start datamaskinen på nytt, og du bør se dine forventede oppføringer i GRUB-menyen.
Annen bruk av grub2-mkconfig og grub-mkconfig:
Anta at du oppdaterte kjernen til din favoritt Linux-distribusjon. Etter installasjonen sjekket du versjonen av kjernen din, og du er overrasket over at den ikke ble oppdatert! å nei!
Ikke bli lei deg. De grub2-mkconfig eller grub-mkconfig kommandoen kan også skanne /støvel katalog for å se etter installerte Linux-kjerner og generere en GRUB 2-oppstartsoppføring for hver av dem.
Kommandoene og prosessene er de samme som gitt i Oppdatering av GRUB 2-konfigurasjonsfil (BIOS) og Oppdatering av GRUB 2-konfigurasjonsfil (UEFI) delene av denne artikkelen ovenfor.
Så det er slik du bruker grub2-mkconfig eller grub-mkconfig kommando for å løse mange oppstartsproblemer på Linux. Takk for at du leser denne artikkelen.