PDA

View Full Version : voglio rimuovere un kernel


stuart
10-03-2003, 17:28
come da oggetto voglio rimuovere un kernel non riuscito benissimo, anche se è servito anche lui
come faccio? qual'è il metodo più semplice e sicuro?
é stato installato puro, senza patch delle distro, su una distro debian sid
ora scrivo da quello vecchio

qweasdzxc
10-03-2003, 18:02
se l'hai installato tramite kernel-package, apt-get remove --purge kernel-image-2.4.xxxx

stuart
10-03-2003, 19:15
no, l'ho installato dai sorgenti :(

qweasdzxc
10-03-2003, 19:21
anche kernel package installa dai sorgenti...
rimuovi la directory dei moduli relativa al kernel che vuoi togliere (/lib/modules/2.4.xxx) e l'immagine del kernel che si trova dove la hai messa te a mano o dentro /boot o direttamente nella root. quindi installa un nuovo kernel, se quello che stai togliendo e' il kernel che stai usando, ed aggiorna lilo senno ti tocca fare un boot di rescue

se ti va di provare a farlo con kernelpackage, ti copio qui i miei appunti di viaggio (ma a te basterebbe sapere la diff tra una compilazione normale e una con kernelpackage, che sono minime), oppure c'e la guida nella discussione in rilievo che parla anche di kernel-package, oppure trovi molte guide al riguardo nella doc di debian o tramite motore di ricerca. oppure anche se provi da solo leggendo la doc del pacchetto kernel-package ce la dovresti fare da solo.




assumo che stiate usando un kernel precompilato non dotato di initrd come il 2.4.18-bf2.4, o uno dei kernel di knoppix, ad esempio.
assumo anche che stiate usando lilo, non ho mai provato con grub, anche se non cambiera moltissimo penso...
(con initrd ho avuto noie, e bisogna dare un parametro aggiuntivo a kernel-package) se risolvo il problema con initrd, meglio...

assicurati di avere almeno 150 (?) mega liberi nella partizione che contiene "/usr/" , in caso contrario procurarseli...
la partizione che contiene "/user" di solito e quella montata come "/", se non e la "/" dovreste saperlo.
per vedere lo spazio a disposizione, df -h

cd /usr/src
(assicurati che sia vuota. se non e vuota, eliminare la roba che ci puo dare fastidio coi comandi:
rm -fr /usr/src/linux
rm -fr /usr/src/kernel-source-*
)
apt-cache search kernel-source-2.4
e scegli il piu opportuno, installandolo col comando (al posto di "ecc" chiamalo col suo nome ovviamente)
apt-get install kernel-source-2.4.ecc
lo decomprimi cosi
tar jxvf kernel-source-2.4.ecc
crei un link simbolico chiamato linux
ln -s kernel-source-2.4.ecc linux
entri nel tree del kernel. questa e la posizione da cui si lavora da adesso in avanti, da cui si compila kernel, moduli, si applicano patch, ecc...
cd /usr/src/linux
prendi gli strumenti che ci serviranno:
apt-get install libncurses5-dev make gcc kernel-package

il kernel viene compilato in modi diversi a seconda di come viene configurato ok? la configurazione del kernel avviene tramite modifica del file .config situato nel tree del kernel chiaro? per modificarlo in modo "grafico" c'e make menuconfig (e altri che non ci interessano)
ma configurarlo a partire da una configurazione estranea, non sapendo cosa abilitare o non abilitare puo essere complicato, portare via tempo, e soprattutto puo portare ad errori che fanno impanicare la macchina, cioe non parte piu dopo e devi fare un boot di rescue, di emergenza. siccome noi abbiamo gia un kernel sicuramente funzionante, quello che stiamo usando adesso, e ne abbiamo anche la configurazione in teoria, messa dentro /boot, possiamo semplicemente usare quella configurazione per compilare un kernel identico e sicuramente funzionante (initrd e patch aggiuntive a parte).
poi lo si puo modificare un po per volta in base alle nostre esigenze. ma consiglio a chi non sa cosa sta facendo di fare come prima volta un kernel identico. chiaro???????

DOMANDA>
kiaro ma mi spieghi cosa kazzo è il tree del kernel??????????????????

RISPOSTA>
cd /usr/src/linux

adesso sei nel tree del kernel ok?

facciamo partire la configurazione "grafica" del kernel (nota per gli amanti delle interfacce grafiche: ebbene si, esiste una configurazione ANCORA piu a caratteri, ma e da masochisti...)
make menuconfig
non tocchiamo niente, per adesso vogliamo ottenere un kernel sicuramente funzionante
usciamo e quando chiede di salvare, salviamo.

DOMANDA>
io tempo fa usai make xconfig
RISPOSTA>
non mi frega, te usi menuconfig adesso

scrivere
make-kpkg clean
make-kpkg --append-to-version=wow kernel_image modules_image

aspettare che finisca di compilare... minuti su un pc da 1000mhz, ore su un pc da 100mhz...
al posto di "wow" si puo mettere qualcosaltro per distinguere i vari kernel, ad esempio... ma non e indispensabile, si puo anche omettere l'opzione "--append-to-version=wow"

quando avra finito di rullare:
cd /usr/src
ci troverete 1 o piu pacchetti deb, li potete vedere col comando:
ls -la /usr/src/*.deb
installate il kernel:
dpkg -i kernel-image-2.4.ecc.deb
e seguite le istruzioni a schermo
se avete compilato dei moduli aggiuntivi, ad esempio gli lm_sensors, i moduli nvidia, ecc, li troverete sempre dentro /usr/src sotto forma di pacchetti deb da installare, installateli:
dpkg -i pacchetti.deb
oppure per fare tutto in uno:
dpkg -i /usr/src/*deb
adesso mettiamo da parte i deb generati, sia per fare pulizia, sia per averli a disposizione per eventuali reinstallazioni future:
mkdir /dove/vuoi/tu/nuova_directory
mv /usr/src/*.deb /dove/vuoi/tu/nuova_directory/
oppure se non volete tenere sti pacchetti, semplicemente eliminateli.
rm /usr/src/*.deb

controllare che /vmlinuz punti al kenrel giusto, e che lilo punti a /vmlinuz

a sto punto riavviamo:
reboot

stuart
10-03-2003, 21:17
solo una parola ma ne vale più di tante
grazie