Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index International Gentoo Users Forum italiano (Italian) Risorse italiane (documentazione e tools)
  • Search

[Initramfs] La cowboy_way e i segreti di genkernel

Forum riservato alla documentazione in italiano.

Moderator: ago

Post Reply
  • Print view
Advanced search
14 posts • Page 1 of 1
Author
Message
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

[Initramfs] La cowboy_way e i segreti di genkernel

  • Quote

Post by cloc3 » Mon May 22, 2006 4:10 pm

  • 1. Introduzione
    2. Trasformare una initrd in una initramfs
    3. Rubare :roll: .. estrarre risorse da una initramfs
    4. Initramfs. Perché? I segreti di genkernel
    5. Howto. Costruire a mano una initramfs con raid e lvm2

    La versione sul wiki

    edit: la versione sul wiki è stata resa inaccessibile. segnalo perciò una cosa aderente al tema, che contiene una proposta di script automatico in stile genkernel self-made:
    in italiano
    in inglese

    1. In linea di massima, un kernel deve essere in grado di controllare autonomamente l'avvio di un sistema, dall'accessione fino alla completa disponibilità delle funzionalità esistenti. In acluni contesti particolari, però, vi sono elementi fisici o virtuali complessi che richiedono l'adozione di opportune variazioni rispetto alla programmazione standard incorporata, che devono essere realizzate nelle primissime fasi della procedura di boot ([url=file:///usr/src/linux/Documentation/early-userspace/README]early userspace[/url]).

    Per realizzare questo scopo, in Linux, esistono due modalità tecniche distinte: le immagini disco (initrd) e gli archivi cpio (initramfs).
    Concettualmente funzionano allo stesso modo, caricando un insieme di programmi, dati di configurazione ed istruzioni per condurre a buon fine l'avvio. Tecnologicamente, invece, la seconda opzione possiede un'insieme di caratteristiche architettoniche che la rendono più vantaggiosa per generare automaticamente oggetti complessi.

    Naturalmente, tutto ciò è una vera iattura per noi nubbi, perchè, dopo avere speso risorse ed energie a comprendere i meccanismi alla base della prima tecnologia, ci rendiamo conto che,. oramai da tempo, il resto del mondo utlizza la seconda.
    L'altro giorno mi sono trovato a litigare con una initramfs per Xen prodotta con genkernel, ma che non voleva saperne di fare il proprio mestiere e non ero assolutamente in grado di uscirne (ne sono appena uscito proprio grazie a questo howto :D ).
Alla fine, ho sospeso la lotta e mi sono occupato di mettere ordine alle mie idee su questo argomento.
Last edited by cloc3 on Wed May 07, 2008 8:15 am, edited 5 times in total.
vu vu vu
gentù
mi piaci tu
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

Trasformare un initrd in un initramfs.

  • Quote

Post by cloc3 » Mon May 22, 2006 4:14 pm

2. Trasformare un initrd in un initramfs.

È l'operazione più semplice. Per farla, basta fissare un paio di cose.

La mia vecchia initrd è una immagine virtuale in formato ext2 e si chiama md.init.
Per accedere ai dati incorporati, bisogna passare attraverso un dispositivo di loop:

Code: Select all

# mount -o loop /boot/initrd/md.init /mnt/initrd
Ciò fatto, la trasformazione si prepara in 2 passi (anzi, tre) ...

Code: Select all

# info cpio
# cd /mnt/initrd
# mv linuxrc init
  • Nota di copyright: chiunque fosse preso da incontenibile accesso di ilarità, con reazioni scomposte, pensando al tempo che mi è costata l'ultima istruzione, è sevaramente diffidato dal continuare la lettura, se non dopo avere espresso ossequioso atto di falsa costrizione.
... e si realizza in uno soltanto:

Code: Select all

# find . -depth -print|cpio -o -H newc|gzip --best>/boot/cpio/init.gz
Finito. Testare immediatamente, magari facendo uso della modalità editor di grub (tasto e).

:)
vu vu vu
gentù
mi piaci tu
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

Estrarre risorse da una initramfs complessa.

  • Quote

Post by cloc3 » Mon May 22, 2006 4:18 pm

3. Estrarre risorse da una initramfs complessa.

Copiare è l'Informatica, per noi neerd.
Ma stavolta non è facile come prima.
Una initramfs complessa non è archivio singolo, ma la concatenazione sequenziale di un pluralità di questi, accumulati su una catasta.
Il comando:

Code: Select all

# cpio -t <initramfs_complessa
accede solo al primo archivio della sequenza, con grande delusione dell'hacker in erba.

Qui e qui sono proposti due script, un o in python e uno in bash, che realizzano un carotaggio completo di qualunque archivio initramfs. Riporto solo il secondo per comodità di lettura, perché, a mio parere, è più curato nell'output verso console:

Code: Select all

#!/bin/bash 
 
 if [[ $# -ne 2 ]]; then 
     echo "Usage: $0 initramfs directory" 
     exit 1 
 fi 
 
 mkdir -p "$2" 
 
 if file "$1" | grep gzip > /dev/null 2>&1; then 
     echo "Initramfs is gzip compressed, unpacking first" 
     cp "$1" .temp.gz 
     gunzip .temp.gz 
 else 
     cp "$1" .temp 
 fi 
 
 if file .temp | grep ext2 > /dev/null 2>&1; then 
     echo 
     echo "This is an initrd (ext2 filesystem), not an initramfs" 
     echo 
     echo "Those are ext2 filesystem images, that can be mounted on loopback:" 
     echo 
     echo "  # mount -o loop $1-unpacked $2" 
     echo 
     mv .temp $1-unpacked 
     exit 
 fi 
 
 compno=1 
 while [[ -s .temp ]]; do 
     blocks=$(cpio -t -H newc < .temp 2>&1 > /dev/null | sed "s/[^0-9]*//g") 
     dd if=.temp of=.$compno.cpio bs=512 count=$blocks 2> /dev/null 
     dd if=.temp of=.scratch bs=512 skip=$blocks 2> /dev/null 
     mv .scratch .temp 
     echo "Extracting component #$compno ($blocks blocks)" 
     pushd "$2" > /dev/null 2>&1 
     cpio -i -m -H newc < ../.$compno.cpio > /dev/null 2>&1 
     popd > /dev/null 2>&1 
     rm .$compno.cpio 
     compno=$((compno+1)) 
 done 
 
 rm .temp
   
Last edited by cloc3 on Tue May 23, 2006 3:36 pm, edited 1 time in total.
vu vu vu
gentù
mi piaci tu
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

Initramfs. Perché? I segreti di genkernel.

  • Quote

Post by cloc3 » Mon May 22, 2006 4:20 pm

4. Initramfs. Perché? I segreti di genkernel.
Ma copiare, perché?

Come si capisce leggendo il punto 3, e come proverò a ribadire nell'esempio finale, la struttura architettonica delle initramfs permette di aggiungere elementi nuovi ad oggetti preesistenti con grande facilità. Da qui viene la preferenza netta accreditata ad essa da parte di tutti gli applicativi per la generazione automatica delle immagini iniziali. Naturalmente, accade anche che determinati pezzi, aggiunti dagli sviluppatori, aggiungano funzioni che, manualmente, è difficile ottenere. In tal caso, l'unica risorsa residua è: ... aprire e rubare.

Un esempio è fornito dall'uso delle klibc, da parte dei generatori professionali, come genkernel, per compilare in loco il chroot attivo in early userspace. In altre parole, le operazioni fondamentali, come `cd`, `mount` o `insmod` sono eseguite da un codice apposito per il kernel e non da programmi estratti dal sistema operativo corrente. Dalle versioni 2.7, è prevedibile che questa modalità di costruzione sarà integrata definitivamente nel kernel, ma per ora, le klibc sono distribuite separatamente e installabili con emerge in una versione asettica, senza script di configurazione, non utilizzabile da chi non sa programmare.
Genkernel, invece, adopera un tarball interno delle klibc, riccamente infarcito con gli script degli ottimi sviluppatori di gentoo, ed è in grado di sfornare prodotti di qualità superiore (a meno che non si pianti su udev, come capitava a me l'altro giorno :twisted: ).
Last edited by cloc3 on Mon May 22, 2006 7:28 pm, edited 1 time in total.
vu vu vu
gentù
mi piaci tu
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

Howto. Costruire a mano una initramfs con raid e lvm2.

  • Quote

Post by cloc3 » Mon May 22, 2006 4:21 pm

5. E finalmente, il come fare.

Ora, voglio produrre una initramfs professionale, partendo dal nulla e arricchendola progressivamente, pezzo per pezzo, a mano.

In tutto, sono sette passi:
a. Il baselayout.
b. File di init.
c. Il chroot.
d. lvm2.
e. Raid + file di configurazione
f. I dispositivi.
g. Conclusione, con l'assemblaggio finale.
Ho testato la mia initramfs con un tradizionale gentoo-sources e con un kernel xen. Quest'ultimo ha manifestato la necessità di alcune regole restrittive addizionali, di cui ho tenuto conto nella stesura di quanto segue. Esse sono:
  • 1. L'initramfs deve essere costruito a cipolla. Queste rende obsolete le initrd vecchie maniera, che producono un laconico messaggio di /init o /linuxrc not found.
    2. Il primo strato deve essere sufficientemente leggero - in pratica, solo il baselayout.
    3. Il primo strato deve contenere il file di init.
a. Il baselayout.

Prima di tutto, serve uno spazio temporaneo per il lavoro sporco e di una struttura elementare di filesystem:

Code: Select all

# mkdir -p /tmp/initramfs/base_dir /tmp/initramfs/cpio_data
# cd /tmp/initramfs/base_dir
# mkdir bin dev etc lib proc sys  sysroot  tmp
# ln -s bin sbin
# ln -s lib lib64 # solo se necessario
b. File di init.
Xen impone di aggiungere subito il fine init.
Si tratta di uno script di bash studiato per acquisire in input una cmdline come la seguente:

Code: Select all

# cat /proc/cmdline
real_root=/dev/mapper/raid0-root root=/dev/ram0 rootdelay=5 rw init=/linuxrc splash=verbose,theme:emergence video=vesa:ywrap,mtrr,vga=0x31B
E questo è il taglia incolla del mio `cat init`:

Code: Select all

#!/bin/bash
echo "lunga attesa"
sleep 3
echo "attesa finita"

echo "Caricamento del filesystem /proc"
mount -t proc none /proc
CMDLINE=`cat /proc/cmdline`

echo "Creazione dei dispositivi"
sed -e '1,2d;s/\(.*\) \(.*\) \(.*\) \(.*\)/mknod \/dev\/\4 b \2  \1/' /proc/partitions|bash

# attivazione delle partizioni raid. Utilizza le impostazioni di /etc/mdadm
mdadm --assemble /dev/md2 /dev/hda5 /dev/sda5

echo "attivazione delle partizioni lvm"
vgscan --mknodes --ignorelockingfailure
vgchange -a y
sleep 5

mount
echo "Caricamento della partizione di root"
sed 's/real_root[[:graph:]]*[[:blank:]]/&xxx/g' /proc/cmdline |sed 's/ xxx.*//'|sed 's/real_root=/mount -v -o noatime --rw /'|sed 's|.*|& /sysroot|'|bash
mount
#if [ ! -d /sysroot/dev/mapper ]; then cp -a /dev/mapper /sysroot/dev ;fi

echo "Pivot root e avvio del processo di init reale"
umount /proc

cd sysroot
pivot_root . initrd
exec chroot . /bin/sh <<- EOF >dev/console 2>&1
exec /sbin/init ${CMDLINE}
EOF
Il primo strato della cipolla è pronto:

Code: Select all

# pwd
/tmp/initramfs/base_dir
# find . -depth -print|cpio -o -H newc>../cpio_data/base.cpio
c. Il chroot.

Qui scelgo di non usare le klibc (anche perché ho già disinstallato genkernel).
La procedura di costruzione manuale di un chroot è lunga e noiosa, descritta in cento salse su internet.
Tuttavia, qui, mi sento obbligato a mostrarla dettagliatamente lo stesso.

Code: Select all

# cp -a ../base_dir ../chroot_dir
# cd ../chroot_dir/bin
# cp `which bash` `which cat` `which chroot` `which cp` `which echo` `which insmod` `which less` `which ls` `which mkdir` \
  `which mknod` `which mount` `which pivot_root` `which sed` `which sleep` `which umount` .
Qui per la verità ho aggiunto qualcosa di troppo, ma è meglio abbondare.
Come dicevo, poi, non sono le klibc. Per ogni programma servono le rispettive librerie.

Code: Select all

# ldd bash
linux-gate.so.1 =>  (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0x48ab9000)
libc.so.6 => /lib/libc.so.6 (0x48978000)
/lib/ld-linux.so.2 (0x4895f000)
# cp /lib/libdl.so.2 /lib/libc.so.6 ../lib
e iterativamente, con pazienza, per ogni programma. Queste sono le librerie che sono risultate necessarie nel mio caso:

Code: Select all

# ls ../lib
ld-linux-x86-64.so.2  libblkid.so.1  libc.so.6  libdl.so.2  libncurses.so.5  libncursesw.so.5  libpthread.so.0  librt.so.1  libuuid.so.1  libz.so.1
Alla fine, testare il chroot:

Code: Select all

# chroot ..
bash-3.1#
bash-3.1# # alleluia!
bash-3.1# exit
# cd ..
pwd
/tmp/initramfs/chroot_dir
# find -depth -print |cpio -o -H newc>../cpio_data/chroot.cpio
d. Terzo passo. Aggiungere lvm2.

Code: Select all

# cp -a ../base_dir ../lvm_dir
# cd ../lvm_dir
# cp -a `equery f lvm2|grep bin/` bin
# cp -a /etc/lvm etc/ # mai dimenticare i file di configurazione essenziali.
Già fatto? Sì. lvm è un eseguibile statico. Nessuna libreria richiesta.

Code: Select all

# pwd
/tmp/initramfs/lvm_dir
# find -depth -print |cpio -o -H newc>../cpio_data/lvm.cpio
e. Raid + file di configurazione

Per il raid, ho risolto usando le raidtools ed mdadm. Genkernel, invece, usa dmraid, del quale dispone attualemente di una versione più avanzata di quella distribuita in portage. Per sys-fs/mdadm, non utilizzare la use ssl senza la use static.

Code: Select all

# cp -a ../base_dir ../raid_dir
# cd ../raid_dir
# cp `which mdadm` bin
# ldd bin/mdadm
  libc.so.6 => /lib/libc.so.6 (0x00002ad9b6cad000)
  /lib64/ld-linux-x86-64.so.2 (0x00002ad9b6b90000)
# #librerie già presenti. Non serve nulla di nuovo.
# >etc/fstab
# >etc/mtab
# cp /etc/mdadm.conf etc
f. I dispositivi.
Non dimenticare i dispositivi essenziali per l'avvio. Riporto quelli che uso io.
I numeri specifici possono variare a seconda delle necessità locali,a dattando di conseguenza il successivo file di init.

Code: Select all

# mknod dev/console c 5 1
# mknod dev/loop0 c 7 0
# mknod dev/md0 b 9 0
# mknod dev/md1 b 9 1
# mknod dev/md2 b 9 2
# mknod dev/null c 1 3
# mknod dev/tty c 4 0
Conclusione.
Ci siamo. Adesso basta aggregare il tutto.
(rullo di tamburi :) )

Code: Select all

# find -depth -print |cpio -o -H newc>../cpio_data/raid.cpio
# cd ../cpio_data
# cat base.cpio chroot.cpio lvm.cpio raid.cpio |gzip --best >/boot/cpio_data/init.gz
L'ultimo è certamente il passo più bello. Adesso si può aggiungere ancora udev, o configurare il caricamento di un modulo esterno o quant'altro piaccia.
Basta procedere a oltranza, modificando l'essenziale.
vu vu vu
gentù
mi piaci tu
Top
Dr.Dran
l33t
l33t
User avatar
Posts: 766
Joined: Fri Oct 08, 2004 5:21 pm
Location: Imola - Italy
Contact:
Contact Dr.Dran
Website

  • Quote

Post by Dr.Dran » Thu Aug 10, 2006 7:13 pm

Very very very Cool!!!
Grazie mille Cloc3... questo è un bell'howto :D

Ma in soldoni, hai dovuto crearti la tua initramfs poichè genkernel non ti gestiva bene il supporto a Xen? Ma per un utilizzo su client genkernel non da problemi... te lo chiedo perchè ho utilizzato sempre e solo initrd (ricado nella prima fase dello sviluppatore del kernel)...
Comunque è una discreta menata farlo a mano,,, anche perchp devi cercare tutte le librerie linkate dagli eseguibili che ti servono... ma credo che in casi estremi sia la manna dal cielo :wink:

Cheers

Franco
:: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group]
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

  • Quote

Post by cloc3 » Thu Aug 10, 2006 7:40 pm

Dr.Dran wrote: Ma in soldoni, hai dovuto crearti la tua initramfs poichè genkernel non ti gestiva bene il supporto a Xen?
Ni.
Ovvero. Effettivamente Xen ha messo in evidenza un problema temporaneo (almeno credo) di genkernel e io ho colto l'occasione per mettere la parola fine a una serie di dubbi sulle funzioni dell'initramfs.
Dr.Dran wrote: Comunque è una discreta menata farlo a mano,,, anche perchp devi cercare tutte le librerie linkate dagli eseguibili che ti servono... ma credo che in casi estremi sia la manna dal cielo :wink:
Sono perfettamente daccordo. (Sebbene le librerie non siano moltissime. Io ne ho lasciata qualcuna non indispensabile per eccesso di zelo.)
Anzi. Lo metto in evidenza io stesso quando spiego che, comunque, genkernel può utilizzare risorse come le klibc che sono attualmente incessibili ai comuni mortali, senza parlare della raffinatezza dei relativi script.

Il mio howto serve, appunto, in casi estremi o (spero) per ragioni didattiche.
Capire certi particolari fa sicuramente cultura.
vu vu vu
gentù
mi piaci tu
Top
Dr.Dran
l33t
l33t
User avatar
Posts: 766
Joined: Fri Oct 08, 2004 5:21 pm
Location: Imola - Italy
Contact:
Contact Dr.Dran
Website

  • Quote

Post by Dr.Dran » Thu Aug 10, 2006 8:53 pm

Ottimo!!! Hai saziato i miei dubbi: risposta ineccepibile :D

Cheers

Franco
:: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group]
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

  • Quote

Post by cloc3 » Mon Nov 06, 2006 12:25 am

Dr.Dran wrote: Comunque è una discreta menata farlo a mano,,,
come dicevamo, hai ragione.
eppure ho incontrato un caso pratico in cui mi è stato utile questo lavoro: un diskless con unionfs.

per semplificare la menata, ho fatto uno script che fa tutto in automatico, scegliendo i moduli necessari a richiesta dell'utente.
un genkernel minore, insomma.

eccolo qui.
vu vu vu
gentù
mi piaci tu
Top
Dr.Dran
l33t
l33t
User avatar
Posts: 766
Joined: Fri Oct 08, 2004 5:21 pm
Location: Imola - Italy
Contact:
Contact Dr.Dran
Website

  • Quote

Post by Dr.Dran » Mon Nov 06, 2006 7:18 pm

cloc3 wrote:per semplificare la menata, ho fatto uno script che fa tutto in automatico...
Grandioso!!! Io personalmente genkernel non sono mai riuscito ad utilizzarlo per bene... causa poca e scarsa documentazione... ho dovuto leggermi gli script per poi fare tutto a manazza grazie alla tua guida... questo script giunge come una manna dal cielo (per quelli come me che hanno aperto una attività da poco e che hanno poco tempo in questo periodo a causa della promozione e delle varie consulenze) :D

Cheers

Franco
:: [Dr.Dran] Details ::
- Linux User # 286282
- IT FreeLance Consultant
- President of ImoLUG [Imola & Faenza Linux User Group]
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

  • Quote

Post by cloc3 » Tue Nov 07, 2006 5:36 am

Dr.Dran wrote:questo script giunge come una manna dal cielo
grazie davvero.

studiaretestarecorreggerre.

credo che un diskless, piazzato sul laptop, sia una tecnica ottimale per installazioni facili e superpersonalizzate.
vu vu vu
gentù
mi piaci tu
Top
mouser
Veteran
Veteran
User avatar
Posts: 1419
Joined: Tue Aug 10, 2004 10:49 am
Location: Milano
Contact:
Contact mouser
Website

  • Quote

Post by mouser » Thu Nov 09, 2006 2:24 pm

Innanzi tutto complimentissimi per l'howto e per l'impostazione della guida: chiara e lollosa, come piace a me! :wink:
cloc3 wrote:Come dicevo, poi, non sono le klibc. Per ogni programma servono le rispettive librerie.
Codice:

Code: Select all

# ldd bash
linux-gate.so.1 =>  (0xffffe000)
libdl.so.2 => /lib/libdl.so.2 (0x48ab9000)
libc.so.6 => /lib/libc.so.6 (0x48978000)
/lib/ld-linux.so.2 (0x4895f000)
# cp /lib/libdl.so.2 /lib/libc.so.6 ../lib
e iterativamente, con pazienza, per ogni programma.
Un tippettino per questo passaggio:

Code: Select all

# PROG=bash
# for FILE in `ldd $PROG | grep '=>' | awk '{print $3}' | grep -v '0x'`; do cp $FILE ../lib ; done
# echo "Mancanti:" ; ldd $PROG | grep -v '=>' | awk '{print $1}' ; ldd $PROG | grep '=>' | grep -v '/lib' | awk '{print $1}'
Basta sostituire alla variabile PROG il nome dell'eseguibile del programma che interessa e si avranno una buona parte delle librerie copiate automaticamente e la visualizzazione di quelle da copiare a mano :D

Ciriciao
mouser :wink:
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

  • Quote

Post by cloc3 » Thu Nov 09, 2006 4:50 pm

mouser wrote: Un tippettino per questo passaggio:
:twisted: rabbia.
adesso devo studiare awk ...

:wink:
vu vu vu
gentù
mi piaci tu
Top
cloc3
Advocate
Advocate
User avatar
Posts: 4840
Joined: Tue Jan 13, 2004 10:09 am
Location: http://www.gentoo-users.org/user/cloc3/
Contact:
Contact cloc3
Website

  • Quote

Post by cloc3 » Sat Nov 25, 2006 10:21 pm

mouser wrote: Un tippettino per questo passaggio:
grazie. ho studiato e ho aggiornato il wiki.

appena ho tempo di controllare meglio, modifico anche lo script automatico initramfs.sh, che ho messo qui.
vu vu vu
gentù
mi piaci tu
Top
Post Reply
  • Print view

14 posts • Page 1 of 1

Return to “Risorse italiane (documentazione e tools)”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic