SaCarde
Download/traduzioni/Configuring mkinitcpio
FontsInteractXServer
MAN
BootPrompt-HOWTO.sgml.txt
Configuring_mkinitcpio.txt
LinuxGazette-dic-2006-saha-it-old.html
LinuxGazette-dic-2006-saha-it.html
Network-boot-HOWTO.sgml.txt
Pine-Exchange.sgml.txt
SMP-HOWTO.sgml.txt
kernel-list-it.html
linked-list.txt
nomachineNXserver.html
wireless.txt
MAN
BootPrompt-HOWTO.sgml.txt
Configuring_mkinitcpio.txt
LinuxGazette-dic-2006-saha-it-old.html
LinuxGazette-dic-2006-saha-it.html
Network-boot-HOWTO.sgml.txt
Pine-Exchange.sgml.txt
SMP-HOWTO.sgml.txt
kernel-list-it.html
linked-list.txt
nomachineNXserver.html
wireless.txt
[[Category:Boot process (English)]] [[Category:Arch kernels (English)]] [[Category:Tutorials (English)]] == About == '''mkinitcpio''' è la prossima generazione di '''creazione dell'initramfs'''. Esso ha molti vantaggi rispetto ai vecchi script '''mkinitrd''' e '''mkinitramfs'''. * Esso usa '''klibc''' e '''kinit''' i quali sono sviluppati dal "Linux kernel devs" per fornire un piccola e leggera base per il primo userspace. * Esso può usare '''udev''' per il rilevamento dell'hardware all'esecuzione, così fa evitare di aver caricati migliaia di moduli inutili. * Il suo init script hook-based è facilmente estendibile con hook personalizzati, il quale può facilmente essere incluso nei pacchetti pacman senza dover modificare lo stesso mkinitcpio. * Supporta già '''lvm2''', '''dm-crypt''' per entrambi ereditarietà e volumi luk, '''raid''', '''swsusp''' e '''suspend2''' ripristino e avvio da dispositivi '''usb di memoria di massa'''. * Molte caratteristiche possono essere configurate dalla riga di comando del kernel senza dovere ricompilare l'immagine. * Lo script '''mkinitcpio''' rende possibile includere l'immagine in un kernel, così è possibile creare un immagine del kernel auto-contenuta. '''mkinitcpio''' è stato sviluppato da '''phrakture''' e '''tpowa''' con qualche aiuto della comunità. == Installazione di mkinitcpio == === Dai repository current=== Lo script '''mkinitcpio''' è stato inserito nei repository current. Può essere installato con il comando # pacman -Sy mkinitcpio === Da svn === Se si vuole l'ultima versione di sviluppo di '''mkinitcpio''', controllare sul repository svn di phrakture usando # svn co http://phraktured.net/initramfs Gli script più nuovi sono adesso nella directory '''initramfs/mkinitcpio'''. == Activazione per kernel >=2.6.17 == Ci saranno 2 immagini create durante l'installazione/aggiornamento del kernel: Se si stà usando '''kernel26''' /boot/kernel26.img --> versione di dimensione ridotta dall'autodetect /boot/kernel26-fallback.img --> contiene tutti i moduli dei sottosistemi Se si stà usando '''kernel26beyond''' /boot/kernel26beyond.img --> versione di dimensione ridotta dall'autodetect /boot/kernel26beyond-fallback.img --> contiene tutti i moduli dei sottosistemi Prego modificare il proprio bootloader per caricare l'immagine necessaria. === ATTENZIONE: === ==== => '''lvm2''', '''raid''' e '''encrypt''' NON sono abilitati di default ==== '''lvm2''', '''raid''' e '''encrypt''' non! sono ablitati di default. Prego leggere attentamente questo wiki su come impostare questo argomento, e configurarlo per il proprio sistema. ==== => Utenti con più di 1 controller hardware di disco ==== Se si ha più di un controller hardware di disco i quali usano lo stesso nome di nodo (tipo 2 controller SCSI/SATA o IDE) e occorrono differenti moduli del kernel per caricarli, prego specificare l'ordine corretto in MODULES="" in /etc/mkinitcpio.conf e nel proprio file di configurazione di fallback, altrimenti può accadere che il proprio dispositivo root li scambi e che si possa generare un kernel-panic casuale. Un'alternativa più elegante è di usare [[La denominazione persistente dei dispositivi a blocchi]] per assicurare che siano montati i corretti dispositivi. ==== Conoscere i moduli che non sono caricati in automatico durante il processo di avvio ==== Se occorre uno dei seguenti moduli per il proprio dispositivo root, considerare di caricali con MODULES="" in /etc/mkinitcpio.conf e nel proprio file di configurazione di fallback, altrimenti si avrà kernel-panic durante l'avvio. - '''SCSI CONTROLLERS''' (stato stock kernel 2.6.18) scsi_transport_sas ultrastor qlogicfas eata BusLogic pas16 wd7000 sym53c416 g_NCR5380_mmio fdomain u14-34f dtc initio in2000 imm t128 aha1542 aha152x atp870u g_NCR5380 NCR53c406a qlogicfas408 megaraid_mm advansys === Personalizzazione dei File di Configurazione === === '''Modificare l'immagine pricipale''' === Per modificare i default per l'imagine principale editare il seguente file: /etc/mkinitcpio.conf mkinitcpio usa questo file di default. === '''Modificare l'immagine di fallback''' === Per modificare i default per l'immagini di fallback, editare uno dei seguenti file: se si usa il kernel26, editare '''/boot/mkinitcpio-kernel26.conf''' se si usa il kernel26beyond, editare '''/boot/mkinitcpio-kernel26beyond.conf''' e impostare il file che si edita a '''NoUpgrade =''' in '/etc/pacman.conf'. Notare che questo dovrebbe essere sensato specialmente se si richiede una particolare impostazione come lvm o raid. === Configurare gli HOOKS === Questa è la parte più importante della configurazione di mkinitcpio. Le righe HOOKS contengono gli hook che vengono eseguiti al momento della creazione dell'immagine e durante il momento dell'esecuzione nell'esatto ordine in cui vengono eseguiti. Il formato è tipo questo: HOOKS="foo1 foo2 foo3 bar1 bar2" ==== Hook disponibili ==== {| border="2" cellspacing="0" cellpadding="4" rules="all" style="margin:1em 1em 1em 0; border-style:solid; border-width:1px; border-collapse:collapse; empty-cells:show" |- ! Hook || Installazione || Esecuzione |- | '''base''' || Imposta tutte le directory iniziali e installa le utility e librerie di base di klibc. Aggiungere sempre questo hook a meno che non si sappia cosa si stà facendo. || |- | '''udev''' || Aggiunge udev alla propria immagine || Udev sarà usata per creare il proprio nodo di dispositivo di root e rilevare i moduli necessari per il dispositivo di root. Siccome semplifica le cose, si raccomanda di usare l'hook udev. |- | '''modload''' || || Un metodo di autorilevamento alternativo che è più lento di udev. L'utilizzo di questo hook è scoraggiato. Al suo posto usare udev. |- | '''autodetect''' || Riduce la propria initramfs di dimensione attraverso l'autorilevamento dei moduli occorrenti. Assicurarsi di verificare che i moduli inclusi siano corretti e non ne manchi nessuno. Questo hook deve essere eseguito prima degli altri hook di sottosistemi in modo da ottenete i vantaggi dell'autorilevamento. Qualsiasi hook piazzato prima di 'autodetect' sarà installato interamente. || |- | '''ide''' || Aggiunge moduli IDE all'immagine. Usare questo se il proprio dispositivo di root è su un disco IDE. Altrimenti usare l'hook '''autodetect''' se si vuole ridurre la dimensione della propria immagine || Carica i moduli IDE. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). |- | '''sata''' || Aggiunge i moduli serial ATA all'immagine. Usare questo se il proprio dispositivo root è su un disco SATA. Usare anche l'hook '''autodetect''' se si vuol ridurre la dimensione della propria immagine. || Carica i moduli SATA. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). |- | '''scsi''' || Aggiunge i moduli SCSI all'immagine. Usare questo se il proprio dispositivo root è su un disco SCSI. Usare anche l'hook '''autodetect''' se si vuol ridurre la dimensione della propria immagine. || Carica i moduli SCSI. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). |- | '''usb''' || Aggiunge i moduli USB all'immagine. Usare questo se il proprio dispositivo root è su una memoria di massa USB. || Carica i moduli USB. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). |- | '''usbinput''' || Aggiunge i moduli USB HID all'immagine. Usare queso se si ha una tastiera USB e occorre nel primo userspace (o per immettere password criptate o per la modalità failsafe) || Carica i moduli USB HID. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). |- | '''fw''' || Aggiunge i moduli Firewire all'immagine. Usare questo se il proprio dispositivo di root è su una memoria di massa FW. || Carica i moduli FW. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). |- | '''net''' || Aggiunge i moduli necessari per un dispositivo di rete. Per i dispositivi di rete pcmcia prego aggiungere anche l'hook pcmcia. || Carica i moduli di rete. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). Vedere la sezione [[Configurare_mkinitcpio#Personalizzazione_della_riga_di_comando_del_kernel|Personalizzazione della riga di comando del kernel]] per la configurazione aggiuntiva. |- | '''pcmcia''' || Aggiunge i moduli necessari per i dispositivi pcmcia. Occorre avere pcmciautils installato per usare questo.|| Carica i moduli pcmcia. Occorrerà l'hook '''udev''' o '''modload''' a meno che non si specifichino manualmente i moduli (vedere la sezione MODULES di sotto). |- | '''dsdt''' || Carica un file personalizzato acpi dsdt durante l'avvio. Piazzare il proprio file personalizato dsdt per l'inclusione nel /lib/initcpio/custom.dsdt || Il file personalizzato dsdt è usato automaticamente dal kernel se è presente nell'initramfs. |- | '''filesystems''' || Questo include i moduli necessari di filesystem nella propria imagine. Questo hook è necessario se si vuole essere in grado di eseguire il boot || Questo rileverà il tipo di filesystem all'esecuzione, caricherà il modulo e lo passerà a kinit. NOTA: NON rileverà reiser4, questo deve essere aggiunto alla lista dei moduli. |- | '''lvm2''' || Aggiunge il modulo del kernel del dispositivo mapper e il tool lvm all'immagine. Occorre avere installato il pacchetto lvm2 per usare questo. || Abilita tutti i gruppi di volume lvm2. Questo occorre se si ha il proprio filesystem root su lvm. |- | '''raid''' || Aggiunge i moduli e "mdassamble" per l'impostazione del raid software. Occorre avere installato mdadm per usare questo.|| Carica i moduli necessari per i dispositivi di raid software, e assembla i dispositivi raid quando girano. Vedere la sezione [[Configurare_mkinitcpio#Personalizzazione_della_riga_di_comando_del_kernel|Personalizzazione della riga di comando del kernel]] per la configurazione aggiuntiva. |- | '''encrypt''' || Aggiunge il modulo del kernel dm-crypt e il tool cryptsetup all'immagine. Occorre avere il pacchetto cryptsetup installato per usare questo. || Rileva e sblocca una partizione root criptata. Vedere nella sezione [[Configurare_mkinitcpio#Personalizzazione_della_riga_di_comando_del_kernel|Personalizzazione della riga di comando del kernel]] per la configurazione aggiuntiva. |- | '''resume''' || || Questo prova a ripristinare uno stato di "sospensione su disco". Funziona con entrambi swsusp e [[Sospensione su disco|suspend2]]. Vedere nella sezione [[Configurare_mkinitcpio#Personalizzazione_della_riga_di_comando_del_kernel|Personalizzazione della riga di comando del kernel]] per la configurazione aggiuntiva. |- | '''firmware''' || Aggiunge i file /lib/firmware. || Carica il firmware. Occorrerà l'hook '''udev''' per far caricare il firmware. |- | '''keymap''' || Aggiunge la keymap e consolefonts da rc.conf. || Carica la specificata keymap e consolefont dal rc.conf durante il primo userspace. |} ==== Esempi ==== Questa configurazione funzionerà per la maggior parte degli utenti con impostazioni standard: HOOKS="base udev autodetect ide scsi sata filesystems" Se si vuole utilizzare l'immagine su più di una macchina, usare questa configurazione: HOOKS="base udev ide scsi sata filesystems" E' possibile utilizzare volumi criptati sopra gruppi di volume lvm2: HOOKS="base udev autodetect ide scsi sata lvm2 encrypt filesystems" === Configurazione dei MODULES === E' possibile usare MODULES nel file di configurazione per caricare un modulo prima che sia eseguita qualsiasi altra cosa. Per esempio, se non si vuole usare '''udev''' o '''modload''', si possono aggiungere tutti i moduli necessari manualmente e rendere più veloce l'avvio: MODULES="piix ide_disk reiserfs" HOOKS="base autodetect ide filesystems" NOTA: se si utilizza '''reiser4''', si DEVE aggiungerlo alla lista dei moduli. === Configurazione BINARIES e FILES === Queste opzioni permettono di aggiungere file all'immagine. La sola differenza è che BINARIES controlla binari e librerie per le dipendenze, mentre FILES semplicemente aggiunge il file. Esempi: FILES="/etc/modprobe.conf" BINARIES="/usr/bin/somefile" == Creazione dell'immagine == === Rigenerazione delle immagini predefinite / utilizzando presets === Se si vuole rigenerare la propria immagine di initramfs per i kernel di Archlinux, usare il comando # mkinitcpio -p kernel26 Questo esempio è per il pacchetto ''kernel26'', funziona lo stesso per altri pacchetti del kernel. Se si vogliono modificare le impostazioni per la propria immagine, editare il file ''/etc/mkinitcpio.d/kernel26.preset'' (ancora, modificare solo il nome del file per altri pacchetti del kernel). '''Questi file ''.preset'' saranno usati all'aggiornamento del kernel, quindi non rovinarli.''' === Manualmente === Creare l'immagine con il segente comando: mkinitcpio -g /boot/kernel26.img Questo genererà l'immagine per il kernel usato correntemente e la salva in '''/boot/kernel26.img''', che è la locazione per il pacchetto '''kernel26'''. Gli utenti del '''kernel26beyond''' dovrebbero usare questo al suo posto: mkinitcpio -g /boot/kernel26beyond.img Se si stà creando un'immagine per un kermel diverso da quello che stà girando correntemente, aggiungere la versione del kernel alla riga di comando: mkinitcpio -g /boot/kernel26.img -k 2.6.16-ARCH ''NOTA:'' Questo può confondere alcune persone. E' inteso soltanto per aiutare nella creazione dell'immagini di fallback per chi già stà girando il kernel corrente. Per creare immagini per ogni altro kernel che non stia girando correntemente, si DEVE usare il parametro -k. Un'immagine di fallback dovrebbe essere stata creata quando si installa '''kernel26''' o '''kernel26beyond''' ma nel caso si voglia rigenerarla mkinitcpio -c /boot/mkinitcpio-kernel26.conf -g /boot/kernel26.img per beyond mkinitcpio -c /boot/mkinitcpio-kernel26beyond.conf -g /boot/kernel26beyond.img Vedere '''mkinitcpio -h''' per maggiori opzioni. Non dimenticare di aggiungere una nuova entrata nel bootloader. Fare solo una copia della vecchia e modificare l'initrd per la nuova immagine. Siccome mkinitcpio è in versione beta, si prega sempre di lasciare quella vecchia intatta, così da poter avviarla se qualcosa andasse storto. Si può usare mkinitcpio con ogni kernel, così che gli utenti del kernel26 e kernel26-beyond sono incraggiati a provarlo. == Personalizzazione della riga di comando del kernel == Proprio come senza initramfs, alcune opzioni occorrono che siano passate alla riga di comando del kernel per configurare il proprio kernel, tipo il dispositivo di root. Alcuni hook di mkinitcpio hanno opzioni speciali. Queste sono discusse di seguito. Se non si sà cosa sia la riga di comando del kernel, prego fare riferimento alla documentazione di [[GRUB]] o [[Lilo]]. === Entrata in modalità failsafe === Se si aggiunge l'opzione break=y alla riga di comando del kernel, init si ferma dopo aver completato le impostazioni e si rimane sulla shell ''dash''. Questo può essere usato per verificare che tutto sia andato bene. Se si esegue il logout, prosegue il normale avvio. === Disablitare hook === Si può disabilitare un hook durante l'esecuzion aggiungendo l'opzione ''disablehooks'' alla riga di comando del kernel tipo questo: disablehooks=hook1,hook2,hook2 per esempio disablehooks=resume === Blacklist di moduli === Si può fare una blacklist di moduli aggiungendo l'opzione ''disablemodules'' alla riga di comando del kernel tipo questa: disablemodules=mod1,mod2,mod3 per esempio disablemodules=ata_piix === Utilizzare il raid === Prima aggiungere l'hook raid alla lista HOOKS in /etc/mkinitcpio.conf '''Parametri del Kernel: ''' Specificare i propri array md con: md= parametro: (vedere di seguito). Notare che è sufficente aggiungere solo l'array raid dal quale si stà avviando. Esempio: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1 Poi aggiungere il seguente alla riga del kernel nel '''grub/menu.lst''': Esempio: md=0,/dev/sda3,/dev/sda4 md=1,/dev/hda1,/dev/hdb1 Così che somigli a questo: kernel /vmlinuz26beyond root=/dev/md0 ro md=0,/dev/sda1,/dev/sdb1 Questo imposterà 2 aray md con superblocchi persistenti '''Setup:''' - per vecchi array raid senza superblocchi persistenti: md=