Installazione con kickstart
Da GLComo.
Indice |
Scopo
Creazione di un cd/dvd bootabile per eseguire in automatico un'installazione base di Fedora (o qualsiasi altra distro che usi anaconda) da una iso esistente
Difficoltà
Non è una cosa semplicissima e ci possono essere n problemi, l'importante è avere un po' di dimestichezza con la command line e non spaventarsi
Software necessario
- La iso da cui partire (nell'esempio useremo una fedora 12)
- mkisofs
- un editor di testo a scelta
- una macchina virtuale per fare test rapidamente
Spazio disco necessario
Vi serve lo spazio della iso originale moltiplicato per 3 almeno:
1x iso originale
1x copia editabile della iso
1x iso da noi creata
quindi nel mio caso in cui la iso è di circa 3Gb sono necessari 9Gb di spazio libero.
Preparazione
In un punto del nostro filesystem creiamo una directory la quale conterrà il nostro DVD, ad esempio /tmp/my_f12/
mkdir /tmp/my_f12
Montiamo la iso scaricata in una directory a scelta, ad esempio /mnt/f12
mount /home/monto/dwload/Fedora-12-i386-DVD.iso /mnt/f12 -o loop,ro
e copiamo il contenuto della iso nella nostra directory di lavoro
rsync -av /mnt/f12/ /tmp/my_f12/
ora spostiamoci nella dir di lavoro
Creare il file di kickstart
Per fare l'installazione automatica va creato un file dato in pasto ad anaconda (il programma usato nell'installazione). Questo file è il file di kickstart, chiamato nel nostro caso ks.cfg e messo nella root del cdrom.
Apriamo il nostro editor di testo preferito (ovviamente vim :D) per creare il nostro file e mettiamoci le opzioni che ci servono (nel mio caso commentate una ad una ma non è necessario in realtà)
# diciamo che dobbiamo fare una nuova installazione install # e che deve essere svolta da cd cdrom # ci mettiamo in "batch" mode in modo da non aver bisogno di interazioni dell'utente cmdline # selezioniamo la tastiera e il linguaggio italiano keyboard it lang it_IT.UTF-8 # impostiamo la password di root (nel nostro caso "pippo") # la password si ricava dal comando: # openssl passwd -1 -salt "NaCl" "pippo" rootpw --iscrypted $1$NaCl$qyQnhdW400kXMMUKEKyHG1 # disabilitiamo il firewall firewall --disabled # disabilitiamo selinux selinux --disabled # la password deve essere salvata come shadow authconfig --enableshadow --enablemd5 # impostiamo il timezone timezone Europe/Rome # diciamo che il bootloader deve essere installato sull'mbr bootloader --location=mbr # disabilitiamo l'agente del primo avvio firstboot --disable # cancelliamo tutte le partizioni linux pre esistenti clearpart --linux # creiamo la partizione di boot da 2Gb part /boot --fstype=ext3 --ondisk=sda --size=2048 --asprimary # creiamo la partizione di swap da 2Gb part swap --ondisk=sda --size=2048 --fstype=swap # creiamo il pv da almeno 10Gb esteso a tutto il disco part pv.00 --ondisk=sda --size=10240 --grow # sul pv creiamo il nostro volume group volgroup vgmonto pv.00 # e sul vg creiamo il nostro device grande almeno 10Gb esteso poi a tutto il disco in ext3 logvol / --name=Slash --vgname=vgmonto --size=10240 --grow --fstype=ext3 # creiamo l'utente monto con password "pippo" user --name=monto --password=$1$NaCl$qyQnhdW400kXMMUKEKyHG1 --iscrypted # alla fine dell'installazione riavvia e tenta di espellere il DVD reboot --eject # selezione dei vari pacchetti (in questo caso il gruppo gnome-desktop e tutte le sue dipendenze) %packages @gnome-desktop %end # il %end non è documentato ma ci vuole!! # script da eseguire prima della effettiva installazione # nel mio caso per ovviare ad un errore di fedora (o mio) # che va a cercare i pacchetti in /mnt/source mentre stanno in /mnt/stage2 %pre #!/bin/sh ln -s /mnt/stage2 /mnt/source %end # ci potrebbe essere anche un %post che come %pre viene eseguito ma a fine dell'installazione
Modifica del file di boot
Sempre col nostro editor di testo vediamo di modificare il file di boot isolinux/isolinux.cfg in modo da dire all'installazione che vogliamo usare un file di kickstart e che vogliamo usare il cdrom.
Va quindi modificata la parte
label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img stage2=hd:LABEL="Fedora"
in modo che diventi
label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img stage2=hd:LABEL="Fedora" ks=cdrom:/ks.cfg method=cdrom
(cambia l'ultima riga)
Build della nostra ISO
Ora costruiamo la nostra ISO in modo che sia bootabile.
mkisofs -o ../my_f12.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long ./
con questo comando ci ritroviamo la nostra iso in /tmp/
Tests
Consiglio di usare una macchina virtuale per comodità per testare la iso appena creata in modo che sia più semplice.
Una volta raggiunto il risultato desiderato masterizzare la iso e metterla su pc reale.
Linkografia
http://fedoraproject.org/wiki/Anaconda/Kickstart - opzioni documentate di kickstart (tenete conto che non tutto è documentato e qualcosa potrebbe anche non funzionare)
Credits
Pietro Montorfano (m0nt0)
monto84 [at] gmail [dot] com

