Hvis det nogensinde skete for dig, skal du ikke freak out! Det er virkelig meget let at løse. GRUB 2 bootloader har specielle værktøjer til scanning af harddiske, der er installeret på din computer efter bootbare operativsystemer, der er installeret på dine harddiske.
I denne artikel vil jeg vise dig, hvordan du løser ovenstående problemer og bruger dem grub2-mkconfig værktøj til at løse det. Jeg bruger Debian 9 Stretch til demonstrationen, men det skal fungere på enhver moderne Linux-distribution med GRUB 2 installeret. Lad os komme igang.
Hvad grub2-mkconfig gør:
grub2-mkconfig er et virkelig simpelt værktøj. Alt det gør er at scanne harddiskerne på din computer for installerede bootbare operativsystemer (inklusive Window, Mac OS og eventuelle Linux-distributioner) og generere en GRUB 2-konfigurationsfil. Det er det.
Forskellen mellem grub2-mkconfig og grub-mkconfig:
Selvom GRUB 2 er installeret på din computer, er grub2-mkconfig kommando er muligvis ikke tilgængelig i din foretrukne Linux-distribution. Men grub-mkconfig kommando er muligvis tilgængelig i din Linux-distribution. Der er ingen forskel mellem grub-mkconfig og grub2-mkconfig hvis GRUB 2 er installeret.
Bemærk, at hvis du har GRUB-arv installeret, så grub-mkconfig og grub2-mkconfig kommandoer er ikke de samme.
Du kan kontrollere, hvilken version af GRUB der er installeret på din Linux-maskine med følgende kommando:
$ sudo grub2-mkconfig --versionEller
$ sudo grub-mkconfig --version
Som du kan se, på min Debian 9 Stretch-maskine, GRUB 2.02 er installeret. Det har jeg heller ikke grub2-mkconfig kommando tilgængelig på Debian 9 Stretch. Det omdøbes til grub-mkconfig. Så grub-mkconfig og grub2-mkconfig er det samme i mit tilfælde.
Brug af grub2-mkconfig:
Det grub2-mkconfig eller den grub-mkconfig kommando har kun en vigtig mulighed. Det -o eller langformat -produktion mulighed. Det bruges til at fortælle GRUB 2, hvor den genererede GRUB-konfigurationsfil skal gemmes.
Som standard, grub2-mkconfig eller den grub-mkconfig kommando udskriver den genererede konfigurationsfil til STDOUT, som er terminalen på dit Linux-operativsystem.
Hvis dette er, hvad du vil, så kør grub2-mkconfig eller den grub-mkconfig kommando som følger:
$ sudo grub2-mkconfigEller
$ sudo grub-mkconfig
Som du kan se, udskrives den genererede GRUB 2-konfiguration på terminalskærmen. Dette er måske ikke særlig nyttigt.
Hvis du vil, kan du eksportere den genererede GRUB 2-konfiguration til en fil. Formatet for kommandoen er angivet nedenfor:
$ sudo grub2-mkconfig -o FILE_PATHEller
$ sudo grub-mkconfig -o FILE_PATH
Hvis du foretrækker det lange format, så
$ sudo grub2-mkconfig - output FILE_PATHEller
$ sudo grub-mkconfig - output FILE_PATH
BEMÆRK: Her, FILE_PATH er stien til filen, hvor den genererede GRUB 2-konfiguration skal gemmes.
Lad os sige, at du vil gemme den genererede GRUB 2-konfiguration til en fil grub.cfg i din brugers HJEM vejviser.
For at gøre det skal du køre følgende kommando:
$ sudo grub2-mkconfig -o ~ / grub.cfgEller
$ sudo grub-mkconfig -o ~ / grub.cfg
Som du kan se, genereres en ny GRUB 2-konfigurationsfil.
Som du kan se, grub.cfg filen genereres på min brugers HJEM vejviser.
Som du kan se, indholdet af den genererede grub.cfg filen er den samme som tidligere, da jeg udskrev output i terminalen.
Opdatering af GRUB 2-konfigurationsfil (BIOS):
Hvis du bruger gamle BIOS-baserede bundkort, skal GRUB 2-bootloader-konfigurationsfilen være i / boot / grub / grub.cfg fil, som du kan se på skærmbilledet nedenfor.
BEMÆRK: På nogle Linux-distributioner som CentOS 7 eller RHEL 7 kan GRUB 2-konfigurationsfilen findes på / boot / grub2 / grub.cfg. Hvis det er tilfældet for dig, skal du sørge for at justere stien, før du kører grub2-mkconfig eller grub-mkconfig kommando i artiklen nedenfor.
For at opdatere GRUB 2-konfigurationsfilen på BIOS-baseret Linux-installation skal du køre følgende kommando:
$ sudo grub2-mkconfig -o / boot / grub / grub.cfgEller
$ sudo grub-mkconfig -o / boot / grub / grub.cfg
GRUB 2-konfigurationsfilen skal opdateres.
Hvis du forventer nogen ændringer, skal du genstarte din computer med følgende kommando:
$ sudo genstartDu skal se, hvad du forventer i GRUB-menuen lige efter at du har trykket på tænd / sluk-knappen.
Opdatering af GRUB 2-konfigurationsfil (UEFI):
På UEFI-baserede bundkort er det lidt vanskeligere at opdatere GRUB 2-konfigurationen.
På EFI-baserede Linux-installationer er GRUB 2-konfigurationsfilen i / boot / efi / EFI /<DIN_OS>/ grub.cfg
Her,
Kør følgende kommando for at liste alle tilgængelige mapper i / boot / efi / EFI-bibliotek:
$ sudo ls / boot / efi / EFISom du kan se, har jeg kun en mappe på min CentOS 7-maskine centos /
Kør følgende kommando for at opdatere GRUB 2-konfigurationsfilen:
$ sudo grub2-mkconfig -o / boot / efi / EFI / centos / grub.cfgEller
$ sudo grub-mkconfig -o / boot / efi / EFI / centos / grub.cfg
GRUB 2-konfigurationsfilen skal opdateres.
Genstart nu din computer, og du skal se dine forventede poster i GRUB-menuen.
Anden anvendelse af grub2-mkconfig og grub-mkconfig:
Antag at du har opdateret kernen i din foretrukne Linux-distribution. Efter installationen kontrollerede du versionen af din kerne, og du er overrasket over, at den ikke blev opdateret! Åh nej!
Bliv ikke ked af det. Det grub2-mkconfig eller den grub-mkconfig kommandoen kan også scanne /støvle bibliotek for at kontrollere installerede Linux-kerner og generere en GRUB 2-startpost for hver af dem.
Kommandoerne og processerne er de samme som anført i Opdatering af GRUB 2-konfigurationsfil (BIOS) og Opdatering af GRUB 2-konfigurationsfil (UEFI) afsnit i denne artikel ovenfor.
Så det er sådan, du bruger grub2-mkconfig eller grub-mkconfig kommando til at løse mange opstartsproblemer på Linux. Tak, fordi du læste denne artikel.