Jun 06

Remove old kernels when there is no space in /boot

Reading time: 1 – 2 minutes

The first step is get some space in the partition “/boot” because without that it’s impossible to do anything.

So go to /boot and remove some “initrd” files as they are the biggest ones. A few of them will be enough.

After that a good point is to ensure there is no partial installation pending to finish:

apt-get -f install

Now it’s a good idea to purge all kernels except the running one:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

To avoid that in future before filling the partition, it’s a good idea to install and run periodically: purge-old-kernels. Installation and example of use are:

# installation
apt-get install bikeshed
# keep three old kernels:
purge-old-kernels --keep 3
# if you want to put that in the crontab use that command
purge-old-kernels --keep 3 -qy

If you’re a Grub user don’t forget to run:

update-grub2

Personally I have a nightmare with that problem and Ubuntu, especially with version 12.04 which is installed in a lot of servers that I manage. I repeated the previous process a lot of times and in the end, I decided to document it because I always have to go to Google and find the proper steps to solve that problem.

Jan 15

Còpia de seguretat del MBR i petit ‘trick’

Reading time: < 1 minute Segur que mols ja sabeu fer una còpia de seguretat del sector 'boot' del vostre disc:

mini4 ~ # dd if=/dev/sda of=mbr.bin bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 7.5112e-05 s, 6.8 MB/s

Doncs com sempre, però la gràcia del tema esta en que després si feu un file per saber quin tipus de fitxer és veureu que s’interpreta la info del MBR i ens informa de les característiques de les particions del disc, realment curiós i útil:

mini4 ~ # file mbr.bin
mbr.bin: x86 boot sector; 
partition 1: ID=0x7, active, starthead 0, startsector 96390, 102398310 sectors; 
partition 2: ID=0x83, starthead 254, startsector 102494700, 117210240 sectors; 
partition 3: ID=0x5, starthead 254, startsector 219704940, 171011925 sectors
Jun 28

QGRUBEditor – Editor gràfic del fitxer menu.lst del Grub

Reading time: < 1 minute

Sempre va bé tenir una referència d’aquestes aprop per quan hem de modificar el fitxer i no volem anar consultant el man. La veritat és que no l’he provat encara i potser ni el provi mai perquè ja tinc els menu.lst molt per la mà. Però no sé sap mai quan pot fer falta algo així.

qgrub-editor.png

Si voleu més informació del aplicatiu: QGRUBEditor web site.

Feb 28

error booting gentoo linux: populating /dev with device nodes…

Reading time: 2 – 2 minutes

Des d’ahir a la tarda que li dono voltes a un problema arrancant una gentoo que fa mesos que funcionava sense problemes. La qüestió és que de bones a primeres va començar a donar un problema i no continuava arracant. L’última informació que donava el /sbin/rc era un error a la línia 24 i just abans publicava aquesta informació: populating /dev with device nodes…. L’error era raríssim deia algo així com: /sbin/rc: line 24: cannot redirect standard input from /dev/null gentoo. Aquest línia del fitxer /sbin/rc diu el següent:

linia 23 - einfo " Populating /dev with device nodes..."
linia 24 - try tar -jxpf /lib/udev-state/devices.tar.bz2 -C /dev

Finalment la solució era tan senzilla com comentar la línia 24, fàcil… però complicat de trobar. La solució l’he trobat gràcies a una pàgina boníssima sobre com funciona el UDEV: Computer Help for the New and Veteran User for Linux: UDEV Setup. Realment recomano moltíssim la pàgina és boníssima.

Sobre el meu error jo entenc que el problema és que per algún problema d’incosistència del sistema de fitxers s’ha perdut l’inode que apuntava a devices.tar.bz2 que és una còpia dels fitxers de /dev. Llavors els tar de la línia 24 fallava i és clar no es podia descomprimir. Al comentar-lo l’inici segueix perfectament i els pròpi UDEV genera els fitxers de /dev dinàmicament a mesura que es van requerint.