Embedding a configuration file into GRUB: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= Sidslut = Orginalhemsidan på Engelska :https://www.gnu.org/software/grub/manual/grub/html_node/Embedded-configuration.html#Embedded-configuration GNU GRUB Manual <HR> Det här är en maskinöversättning av GNU-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/ <BR><BR>Tack till [https://datorhjalp.se Datorhjälp Stockholm] som har sponsrat Linux.se med webserver.')
 
Ingen redigeringssammanfattning
Rad 1: Rad 1:
=== 6.5 Inbäddning av en konfigurationsfil i GRUB ===
GRUB stöder inbäddning av en konfigurationsfil direkt i kärnbilden, så att den laddas innan GRUB går in i normalt läge. Detta är användbart, till exempel när det inte är enkelt att hitta den verkliga konfigurationsfilen, eller när du behöver felsöka problem med att ladda den filen. `grub-install` använder den här funktionen när den inte använder BIOS-diskfunktioner eller när den installeras på en annan disk än den som innehåller `/boot/grub`, i vilket fall den behöver använda kommandot `search` (se [[search]]) för att hitta `/boot/grub`.
För att bädda in en konfigurationsfil, använd `-c`-alternativet med `grub-mkimage`. Filen kopieras in i kärnbilden, så den kan finnas var som helst i filsystemet och kan tas bort efter att `grub-mkimage` har körts.
Efter att den inbäddade konfigurationsfilen (om någon) har körts, kommer GRUB att ladda modulen `normal` (se [[normal]]), som sedan kommer att läsa den verkliga konfigurationsfilen från `$prefix/grub.cfg`. Vid den tidpunkten kommer även variabeln `root` att ha satts till rotnamnet för enheten. Till exempel kan `prefix` vara inställt på ‘(hd0,1)/boot/grub’, och `root` kan vara inställt på ‘hd0,1’. Så i de flesta fall behöver den inbäddade konfigurationsfilen bara ställa in variablerna `prefix` och `root`, och sedan gå vidare till GRUB:s normala process. Ett typiskt exempel kan se ut så här:
  search.fs_uuid 01234567-89ab-cdef-0123-456789abcdef root 
  set prefix=($root)/boot/grub
(Modulen `search_fs_uuid` måste inkluderas i kärnbilden för att detta exempel ska fungera.)
I mer komplexa fall kan det vara användbart att läsa andra konfigurationsfiler direkt från den inbäddade konfigurationsfilen. Detta tillåter att läsa filer som inte heter `grub.cfg`, eller att läsa filer från en annan katalog än där GRUB:s laddningsbara moduler är installerade. För att göra detta, inkludera modulerna `configfile` och `normal` i kärnbilden, och bädda in en konfigurationsfil som använder kommandot `configfile` för att ladda en annan fil. Följande exempel på detta kräver också att modulerna `echo`, `search_label` och `test` inkluderas i kärnbilden:
  search.fs_label grub root 
  if [ -e /boot/grub/example/test1.cfg ]; then 
      set prefix=($root)/boot/grub 
      configfile /boot/grub/example/test1.cfg 
  else 
      if [ -e /boot/grub/example/test2.cfg ]; then 
          set prefix=($root)/boot/grub 
          configfile /boot/grub/example/test2.cfg 
      else 
          echo "Kunde inte hitta en exempelfil för konfiguration!" 
      fi 
  fi
Den inbäddade konfigurationsfilen får inte innehålla menyposter direkt, utan kan bara läsa dem från andra platser med hjälp av `configfile`.
= Sidslut =
= Sidslut =
Orginalhemsidan på Engelska :https://www.gnu.org/software/grub/manual/grub/html_node/Embedded-configuration.html#Embedded-configuration
Orginalhemsidan på Engelska :https://www.gnu.org/software/grub/manual/grub/html_node/Embedded-configuration.html#Embedded-configuration

Versionen från 5 september 2024 kl. 06.11

6.5 Inbäddning av en konfigurationsfil i GRUB

GRUB stöder inbäddning av en konfigurationsfil direkt i kärnbilden, så att den laddas innan GRUB går in i normalt läge. Detta är användbart, till exempel när det inte är enkelt att hitta den verkliga konfigurationsfilen, eller när du behöver felsöka problem med att ladda den filen. `grub-install` använder den här funktionen när den inte använder BIOS-diskfunktioner eller när den installeras på en annan disk än den som innehåller `/boot/grub`, i vilket fall den behöver använda kommandot `search` (se search) för att hitta `/boot/grub`.

För att bädda in en konfigurationsfil, använd `-c`-alternativet med `grub-mkimage`. Filen kopieras in i kärnbilden, så den kan finnas var som helst i filsystemet och kan tas bort efter att `grub-mkimage` har körts.

Efter att den inbäddade konfigurationsfilen (om någon) har körts, kommer GRUB att ladda modulen `normal` (se normal), som sedan kommer att läsa den verkliga konfigurationsfilen från `$prefix/grub.cfg`. Vid den tidpunkten kommer även variabeln `root` att ha satts till rotnamnet för enheten. Till exempel kan `prefix` vara inställt på ‘(hd0,1)/boot/grub’, och `root` kan vara inställt på ‘hd0,1’. Så i de flesta fall behöver den inbäddade konfigurationsfilen bara ställa in variablerna `prefix` och `root`, och sedan gå vidare till GRUB:s normala process. Ett typiskt exempel kan se ut så här:

 search.fs_uuid 01234567-89ab-cdef-0123-456789abcdef root  
 set prefix=($root)/boot/grub

(Modulen `search_fs_uuid` måste inkluderas i kärnbilden för att detta exempel ska fungera.)

I mer komplexa fall kan det vara användbart att läsa andra konfigurationsfiler direkt från den inbäddade konfigurationsfilen. Detta tillåter att läsa filer som inte heter `grub.cfg`, eller att läsa filer från en annan katalog än där GRUB:s laddningsbara moduler är installerade. För att göra detta, inkludera modulerna `configfile` och `normal` i kärnbilden, och bädda in en konfigurationsfil som använder kommandot `configfile` för att ladda en annan fil. Följande exempel på detta kräver också att modulerna `echo`, `search_label` och `test` inkluderas i kärnbilden:

 search.fs_label grub root  
 if [ -e /boot/grub/example/test1.cfg ]; then  
     set prefix=($root)/boot/grub  
     configfile /boot/grub/example/test1.cfg  
 else  
     if [ -e /boot/grub/example/test2.cfg ]; then  
         set prefix=($root)/boot/grub  
         configfile /boot/grub/example/test2.cfg  
     else  
         echo "Kunde inte hitta en exempelfil för konfiguration!"  
     fi  
 fi

Den inbäddade konfigurationsfilen får inte innehålla menyposter direkt, utan kan bara läsa dem från andra platser med hjälp av `configfile`.


Sidslut

Orginalhemsidan på Engelska :https://www.gnu.org/software/grub/manual/grub/html_node/Embedded-configuration.html#Embedded-configuration

GNU GRUB Manual


Det här är en maskinöversättning av GNU-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp Stockholm som har sponsrat Linux.se med webserver.