Sida 1 av 1

Initrd?

Postat: 25 nov 2018 14:53
av amandus
Är det egentligen någon fördel att skapa initrd? Och dom andra huge kärnorna kan man bara ta bort dom och uppdatera grub?

Och ta bort alla synlänkar och skapa nya som pekar på generic kernel config generic och System.map generic?

Re: Initrd?

Postat: 25 nov 2018 22:03
av MDKDIO
Hej Bengt!

Antar att du bytt kärna till någon annan än standard "huge"?

För byte till en "generic" kärna:
https://docs.slackware.com/slackware:be ... ric_kernel

I övrigt kanske detta kan vara läsvärt...
https://docs.slackware.com/howtos:slack ... _an_initrd

Inget av detta svarar egentligen på din fråga ang initrd, men har din dator UEFI hårdvara?
https://docs.slackware.com/howtos:slack ... d_hardware

Re: Initrd?

Postat: 26 nov 2018 19:17
av Nille
Det är ingen fråga med ett direkt svar men som regel så fungerar huge kerneln utan någon initrd.gz
Generic kerneln brukar behöva initrd.
Om du kompilerar en egen kernel så kan du välja stöd för det du behöver och slippa skapa en initrd.
Det finns konfigurationer där även huge behöver en initrd.
Skillnaden mellan att använda en huge eller generic kernel är vad som laddas in i minnet, med en modern dator med mycket minne för normalt bruk hemma spelar det ingen roll men på servrar kan det vara önskvärt att slippa allt onödigt.
Förr så kompilerade jag ofta egen kernel men nu för tiden sker det sällan även på många servrar.
Initrd är endast för att läsa in moduler/stöd som inte är kompilerat direkt i kerneln utan som moduler istället men som behövs tidigt under uppstarten.
Jag använder initrd för btrfs i generic kernel men det behövs inte till huge.
I huge så är kernel-konfigurationen för btrfs kompilerad direkt i kerneln CONFIG_BTRFS_FS=y medans i generic är den en modul CONFIG_BTRFS_FS=m vilket gör att det krävs att btrfs laddas via initrd.gz med en generic kernel.

System.map tror jag inte behövs längre då CONFIG_KALLSYMS används och det få tillfällen som kräver System.map inte är speciellt vanligt förekommande längre, jag tror att svgalib kräver System.map vid kompilering.
Jag använder endast System.map av vana för att jag alltid gjort det och den tar lite plats.

Symlänka config till config-generic eller config-huge är egentligen rätt onödigt och fyller ingen funktion då config är den man har som default (om du installerar både generic och huge så pekar den mot den senast installerade vilket är huge vid en normal uppdatering om du installerar om generic så pekar den mot den istället).
Det enklaste sättet att se aktuell kernel config (den du kör just då) är snarare "zcat /proc/config.gz" eller zgrep om man vill söka något i config.

Re: Initrd?

Postat: 26 nov 2018 19:38
av amandus
Jag får så ful boot med initrd några insmod som jag inte vill se så jag struntar nog i initrd, har 8gb ram så det kvittar.

Tack för utförligt svar🤙

Re: Initrd?

Postat: 26 nov 2018 21:55
av MDKDIO
@Nille
Tusen tack för utförlig info (som vanligt) :)

Man lär sig något nytt varje dag :)

Re: Initrd?

Postat: 02 dec 2018 19:06
av Nille
Endast för att tråden ska vara mer komplett så nämner jag att det finns en mkinitrd_command_generator.sh i slackware som kan hjälpa en ovan med kommandorad för att skapa en initrd.
/usr/share/mkinitrd/mkinitrd_command_generator.sh
Dels så kan det /usr/share/mkinitrd/mkinitrd_command_generator.sh användas som den är och skapa ett kommando automatiskt men den raden innehåller mycket onödigt.
Skriptet har även ett interaktivt läge -i som gör att man kan bättre skräddarsy och få ett bättre passande kommando och växlar.
Detta kommando skapar endast en kommandorad i utmatning som senare kan avvändas för att skapa en initrd, det kör alltså inget kommando som skapar en initrd.
Om ni vill utforska skriptet mer så kör det med --help eller --longhelp för mer detaljerar information om ni inte går igenom skriptet i sig ;)

Onödigt vetande kanske men då verktyget finns i Slackware så nämner jag det.

Re: Initrd?

Postat: 04 dec 2018 08:19
av MDKDIO
God morgon Nille och tackar så mycke för info.
Onödigt vetande? Knappast :)

Läser man "konfigurera ditt nya Slackware system" och speciellt "byte till generell kärna" så ser man ett exempel på det resultat man kan få när man kör /usr/share/mkinitrd/mkinitrd_command_generator.sh

Svensk version av guiden finns här