Mostrando entradas con la etiqueta grub. Mostrar todas las entradas
Mostrando entradas con la etiqueta grub. Mostrar todas las entradas

Link vmlinuz.old is damaged

Pues bien, hoy es uno de esos días en los que te pones a actualizar un equipo y te das cuenta de que queda poco espacio en la partición raíz. Investigando un poco más, observas que hay muchas versiones del kernel instaladas, pero que en realidad no se están empleando para nada, por lo que decides hacer limpieza. Concretamente, éste es el caso,

shell> dpkg -l |grep linux-image
ii linux-image-3.2.0-29-generic 3.2.0-29.46  Linux kernel...
ii linux-image-3.2.0-60-generic 3.2.0-60.91  Linux kernel...
ii linux-image-3.2.0-68-generic 3.2.0-68.102 Linux kernel...
ii linux-image-3.2.0-69-generic 3.2.0-69.103 Linux kernel...
ii linux-image-3.2.0-70-generic 3.2.0-70.105 Linux kernel...
ii linux-image-3.2.0-74-generic 3.2.0-74.109 Linux kernel...
ii linux-image-3.2.0-75-generic 3.2.0-75.110 Linux kernel...
ii linux-image-3.2.0-77-generic 3.2.0-77.114 Linux kernel...
ii linux-image-3.2.0-79-generic 3.2.0-79.115 Linux kernel...
ii linux-image-generic          3.2.0.79.93  Generic Linux
Como veis, hay algunas versiones del kernel instaladas, y que en realidad no son necesarias, así que vamos a realizar una purga de aquellas que no nos interesen. Lo primero es saber qué versión del mismo estamos usando, no vayamos a desinstalar el kernel que estamos empleando. Para ello,
shell> uname -r
3.2.0-75-generic
No está cargada la última versión y siendo un equipo de producción, reiniciar "por que sí", tampoco es posible, así que vamos a purgar aquellos que no nos interesan, es decir, todos menos la última versión (3.2.0-79) y la que estamos usando (3.2.0-75).
shell> apt-get remove --purge linux-image-3.2.0-29-generic
shell> apt-get remove --purge linux-image-3.2.0-60-generic
shell> apt-get remove --purge linux-image-3.2.0-68-generic
shell> apt-get remove --purge linux-image-3.2.0-69-generic
shell> apt-get remove --purge linux-image-3.2.0-70-generic
shell> apt-get remove --purge linux-image-3.2.0-74-generic
shell> apt-get remove --purge linux-image-3.2.0-77-generic
Y tras ello,
shell> apt-get autoremove --purge
Durante la desinstalación del kernel 3.2.0-77 ha aparecido un curioso error,
shell> apt-get remove --purge linux-image-3.2.0-77-generic
Desinstalando linux-image-3.2.0-77-generic ...
...
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old 
 you may need to re-run your boot loader[grub]
Purgando ficheros de configuración de linux-image-3.2.0-77...
...
Donde se nos está indicando que el link al fichero /vmlinuz.old está dañado y que no va a funcionar. Para corregirlo, simplemente debemos de recargar nuestro gestor de carga (en mi caso grub), tal como sigue.
shell> update-grub
Y problema solventado.
Leer más

Arrancar ISO desde grub

Una de las muchas sorpresas que depara GNU/Linux es la versatilidad que este ofrece para hacer cosas. Hoy vamos a ver una que nos puede ayudar e incluso sacar de más de un apuro y que es cómo arrancar una ISO desde Grub.
Por norma general, cuando queremos arrancar una ISO, debemos de grabarla en un CD o en un pendrive para poder iniciar con ella el equipo y así verla y probarla. Pues bien, este tipo de acciones se pueden terminar con la posibilidad de arrancar una ISO desde el propio grub. Este método no servirá, lógicamente, para una reinstalación completa de tu sistema, pero sí te brindará la posibilidad de reiniciar tu equipo y probar una ISO de cualquier otra distribución o arrancar algún CD de utilidades. Vamos ya, por lo tanto, a preparar nuestro entorno.

Preparación del sistema

Vamos a ver aquí los pasos que debemos de hacer antes de nada. Lo primero será obtener la ISO que queramos tener en el arranque. Por ejemplo, una Ubuntu, una copia de BackTrack o el mismo Gparted. Para ello, debemos de ir a la web oficial y descargarla. Este paso no tiene nada que ver con lo que vamos a comentar, pero sí es necesario para luego.
Una vez que tengamos la ISO, deberemos de colocarla en una ruta específica. Puesto que estamos hablando de ISO de arranque, a mi me gusta colocarlas en /iso, por lo tanto,
shell> mkdir /iso
shell> mv gparted-live-0.20.0-2-i486.iso /iso
shell> mv ubuntu-14.04.1-desktop-amd64.iso /iso
A continuación, vamos a hacer que el grub se muestre cuando arranque, pues en las últimas versiones arranca con un retraso de 0 segundos, lo que hace que se complique la elección del sistema operativo a arrancar. Si no tienes este problema, ignora este paso, sino, edita el fichero /etc/default/grub y déjalo como sigue.
...
#GRUB_HIDDEN_TIMEOUT=0
...
Y ya para finalizar el apartado de cosas que debemos de saber, necesitamos averiguar sobre qué disco y que partición está nuestra nueva carpeta (/iso). Si tienes una instalación de las típicas, se supone que estará en el disco 0 (/dev/hda o /dev/sda) y la partición 1, por lo tanto (hd0, 1). Esto es importante tenerlo identificado. Para asegurarte, compruébalo con fdisk y con mount.
shell> fdisk -l
Dispositivo Inicio Comienzo    Fin    Bloques  Id  Sistema
/dev/sda1   *      2048   29296639   14647296  83  Linux
/dev/sda2      29296640   33202175    1952768  82  Linux swap
/dev/sda3      33202176  234440703  100619264  8e  Linux LVM
shell> mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
...

Edición del grub

La parte común ya está. Ahora nos queda añadir las entradas necesarias a nuestro grub. Se recomienda no añadirlas directamente en /boot/grub/grub.cfg, puesto que en cada actualización este fichero se regenera y por lo tanto los cambios se pierden. Lo mejor es usar el fichero /etc/grub.d/40_custom, que es precisamente para estos casos, añadir entradas manualmente.

Ubuntu 64

menuentry 'Ubuntu 14.04 Live (64 bits)' {
   set isofile="/iso/ubuntu-14.04.1-desktop-amd64.iso"
   loopback loop (hd0,5)$isofile
   linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
   initrd (loop)/casper/initrd.lz
}

Ubuntu 32

menuentry 'Ubuntu 14.04 Live (32 bits)' {
   set isofile="/iso/ubuntu-14.04.1-desktop-i386.iso"
   loopback loop (hd0,5)$isofile
   linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
   initrd (loop)/casper/initrd.lz
}

Gparted

menuentry 'Gparted' {
   set isofile="/iso/gparted-live-0.20.0-2-i486.iso"
   set root=(hd0,5)
   loopback loop (hd0,5)$isofile
   linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=$isofile
   initrd (loop)/live/initrd.img
}
Cómo veis, cada ISO a arrancar tiene unas opciones diferentes y estas debes de averiguarlas antes de poder iniciarla. Por norma general, está documentado el proceso en la web principal.
Lo único que nos queda ahora por realizar es una actualización del grub.
shell> update-grub2

Arrancando desde la ISO

Llegados a este punto, ya estamos listos para poder reiniciar nuestro sistema. Así que, cerramos la consola y todo lo que estemos haciendo y reiniciamos.
Os debería, tras el reinicio salir una pantalla similar a esta donde destaqué con letra más clara las dos ISOs que tendremos disponibles para iniciar.





Qué significa cada uno de los parámetros

  • menuentry
    Nombre que aparecerá como entrada del grub.
  • set isofile
    Define una variable, isofile, que contendrá la ruta absoluta de la imagen a iniciar.
  • set root
    Indica la partición raíz sobre la que está la imagen.
  • loopback
    Indica la ruta donde localizar la imagen en el disco. Es una composición de disco + variable isofile.
  • linux
    Kernel que se usará para arrancar y la localización del mismo. También se le pasan aquí las opciones de arranque.
  • initrd
    Indica la localización del fichero initrd, pero siempre dentro de la imagen.
Leer más

Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

Últimos comentarios