Moviendo la carpeta /boot a una partición independiente

26 05 2008

Hola
Como prometí anteriormente, les voy a explicar como mover la carpeta /boot a una partición independiente.

El primer paso, es obviamente crear una nueva partición, para eso verificamos el tamaño ocupado por la carpeta /boot, para eso podemos usar el comando “sudo du /boot” el cual nos devolverá el tamaño de la carpeta en kilobytes. En mi caso, la carpeta pesa unos 20000 KB (20 MB), por lo cual decidí hacer una partición de 150 MB, por si en algún momento instalo otros kernels. Para crear la nueva partición, lo que hice fue, con la herramienta de particionado GPARTED, desmonté y reduci una de mis particiones con la función de redimencionado, y en el espacio que quedaba cree una nueva partición con el formato de archivos EXT3, el cual es uno de los más flexibles para nuestro proposito. Cabe aclarar que si solo tienes una partición ocupando todo el disco, necesitarás iniciar con algún LiveCD, ya que la redimensión no puede llevarse a cabo con la unidad montada, es decir, en uso.
Antes de empezar, hay que tener en cuenta varias cosas sobre este tutorial. La primera, que en este caso utilizaremos el gestor de arranque GRUB, el cual es el más utilizado. Además, si eres un novato en Linux, es necesario saber que los discos son representados como archivos en la carpeta /dev, ya sea como hd (discos IDE/ATA) o sd (discos SATA) seguidos de una letra que indica el puerto donde esta conectado físicamente el disco, y luego de un número que indica el número de partición. Por ejemplo, hda1, sda2, hdb3, etc.

Ahora, para que entiendan el ejemplo, supongamos que el disco de la nueva partición es hdaX, donde ‘a’ es el número de disco y ‘X’ el número de partición.

1. – Como primera medida nos logueamos como root con el comando su, para así trabajar más cómodos. El primer paso, será renombrar la carpeta /boot a otro nombre (no borrarla) por si tenemos algún problema podremos recuperarla:

mv /boot /boot_backup

2. – Luego creamos una nueva carpeta /boot:

mkdir /boot

3. – Ahora, debemos montar la partición creada en el directorio /boot:

mount /dev/hdaX /boot

4. – Copiamos el contenido de la carpeta /boot a la nueva partición:

cp -dpR /boot_backup/* /boot

**NOTA** Si queremos que la partición sea montada en cada inicio, debemos seguir el siguiente paso. Aclaro que si no son montadas, correrán menos riesgos de sufrir problemas, por lo cuál, si así lo prefiere, obvie el próximo paso, y si en algún momento requiere acceder a la partición puede usar el comando del paso 3.

5. – Para configurar el montado automático en modo de solo lectura, debemos agregar una línea al fstab. Podemos usar cualquier editor de texto, pero en este ejemplo usaré nano:

nano -w /etc/fstab

Y agregamos esta línea:

/dev/hdaX /boot ext3 ro 0 0

Guardamos los cambios en el archivo (en nano, Ctrl+X) y procedemos a configurar el gestor de arranque.

6. – Para configurar el GRUB, debemos editar el menu.lst dentro de la carpeta /boot/grub. Supongamos que tenemos este archivo de configuración:

title      Distribución de Linux
root       (hd0,0)
kernel     /boot/vmlinuz-2.6.25-2-686 root=/dev/hda1 ro noapic nolapic
initrd     /boot/initrd.img-2.6.25-2-686

7. – Lo que hacemos es copiarlo, uno seguida del otro, una para el nuevo arranque y otra de backup. Quedaría así:

title      Distribución de Linux
root       (hd0,0)
kernel     /boot/vmlinuz-2.6.25-2-686 root=/dev/hda1 ro noapic nolapic
initrd     /boot/initrd.img-2.6.25-2-686
#
title      Distribución de Linux
root       (hd0,0)
kernel     /boot/vmlinuz-2.6.25-2-686 root=/dev/hda1 ro noapic nolapic
initrd     /boot/initrd.img-2.6.25-2-686

8. – Grub, utiliza la nomenclatura hdY,X para los discos, la cual ‘Y’ es el “número de disco-1” y ‘X’ el “número de partición-1“. Es decir, si nuestra nueva partición era hda7, en grub será hd0,6. Lo que hacemos es modificar la partición de la primera copia, y borrar los “/boot”, ya que ahora la ubicación será en el directorio raíz de la partición y no en una subcarpeta. Si el disco fuera hda7, quedaría así:

title      Distribución de Linux
root       (hd0,6)
kernel     /vmlinuz-2.6.25-2-686 root=/dev/hda7 ro noapic nolapic
initrd     /initrd.img-2.6.25-2-686
#
title      Distribución de Linux
root       (hd0,0)
kernel     /boot/vmlinuz-2.6.25-2-686 root=/dev/hda1 ro noapic nolapic
initrd     /boot/initrd.img-2.6.25-2-686

9. – Ahora toca el turno de modificar la entrada de resguardo, para ello solo cambiamos /boot por /boot_backup, y cambiamos el título para diferenciarla:

title      Distribución de Linux
root       (hd0,6)
kernel     /vmlinuz-2.6.25-2-686 root=/dev/hda7 ro noapic nolapic
initrd     /initrd.img-2.6.25-2-686
#
title      Entrada de seguridad de Distribución de Linux
root       (hd0,0)
kernel     /boot_backup/vmlinuz-2.6.25-2-686 root=/dev/hda1 ro noapic nolapic
initrd     /boot_backup/initrd.img-2.6.25-2-686

10. – Guardamos los cambios y procedemos a reinstalar el GRUB:

grub-install /dev/hda

**ATENCION** Notese que después de hda no hay ningún número, eso es porque no lo instalamos sobre ninguna partición si no sobre el disco en sí.

11. – Reinicia el equipo, y si hiciste todo al pie de la lista, tendrás una opción más de arranque de lo normal, que corresponde a la configuración de seguridad. Elegimos la opción de inicio de siempre, y si no funciona, elegimos la copia de seguridad. Si inicia normalmente, si quieres y tienes confianza elimina las copias de seguridad (del menu.lst y el /boot_backup).
Como nota final, si configuraste el fstab para que monte el /boot como solo lectura, y quieres escribir en la partición, puedes usar el comando:

sudo mount -o remount,rw /boot

Hasta la próxima…

Salu2

Artículos relacionados:





La importancia del /boot en partición independiente

24 05 2008

Hola a todos

Siguiendo el hilo de mis dichosos problemas con Debian, hoy les quería seguir hablando sobre otros de ellos.

Seguramente si eres usuario de Linux, sabrás que para cargar tu sistema operativo, requieres un bootloader, en español, un gestor de arranque. También habrás visto una carpeta en el directorio raíz llamada “boot”, la cual contiene el gestor de arranque y los kernels (núcleos de sistemas) disponibles para usar, la cual por cuestiones de seguridad, es muy importante que se encuentre en una partición separada de las demás. Antes de seguir, primero vamos a dar un poco de teoría necesaria, sacada de la Wikipedia:

Un cargador de arranque (boot loader en inglés) es un programa sencillo (que no tiene la totalidad de las funcionalidades de un sistema operativo) diseñado exclusivamente para preparar todo lo que necesita el sistema operativo para funcionar. Normalmente se utilizan los cargadores de arranque multietapas, en los que varios programas pequeños se suman los unos a los otros, hasta que el último de ellos carga el sistema operativo.

Este programa contiene funcionalidades rudimentarias para buscar unidades que se puedan seleccionar para participar en el arranque, y cargar un pequeño programa desde una sección especial de la unidad más prometedora. El pequeño programa no es, en sí mismo, un sistema operativo sino, simplemente, un cargador de arranque de segundo nivel, como Lilo o Grub, que es capaz de cargar el sistema operativo propiamente dicho y, finalmente, transferirle el control.

Las distribuciones Linux, han adoptado por defecto el cargador de arranque GRUB, ya que es el más flexible, completo y configurable. Los cargadores generalmente se instalan en la carpeta /boot, en la cual como ya dije, se encuentra todo lo necesario para el arranque.

El problema en Linux, a diferencia que Windows, es que los sistemas de archivos de las particiones, en especial las más modernas como ReiserFS y XFS (las cuales usan el autor de este artículo), tienen diversos sistemas de seguridad que son tan sensibles que detectan todo tipo de fallas en el sistema de archivos (ya sea por causas físicas o no), que por cuestiones de protección, impiden ser montadas, u otro caso muy común, tu sistema ha sido apagado sin desmontar correctamente los volumenes por lo cual puede que tenga errores al remontarla.

Por ejemplo, supongamos que tu máquina por algún extraño motivo cae en un cuelgue total, del cual no puedes salir. Lo que harás, seguramente, será resetear la máquina para volver a iniciar el sistema. En un sistema como Windows o en una distro. Linux con un sistema de archivos EXT2/3, seguramente no tendrás problemas en iniciar, ya que estos son muy flexibles en cuanto a errores provocados por malos apagados.

Pero, si tienes un sistema de archivos como ReiserFS, puede de que recibas un error de tu gestor de arranque, acerca de que no puedes acceder a la información del disco, en el caso del grub, el famoso ERROR 18.

Ahora, ¿a qué se debe este problema con el gestor de arranque? Muy sencillo: cuando instalas un gestor, lo que haces es escribir en el MBR (Master Boot Record) el arrancador del gestor, que lo que hará es buscar en una carpeta previamente configurada (por defecto la carpeta /boot) la información necesaria para saber como iniciar el sistema. El problema, justamente, es que no podrás acceder al disco ya que al apagarse inesperadamente no se ha logrado desmontar correctamente, así que se generarán errores en la partición, por lo tanto tampoco podrás recuperar la información que hay en ella, y el cargador no sabrá como iniciar ningún sistema.

Para evitar este tipo de problema, el mejor método es en primer lugar tener la información del gestor de arranque, es decir la carpeta /boot, en una partición distinta a las que sueles usar, y en segundo proteger el contenido de la partición formateandola con un sistema de archivos flexible a los reinicios, y como última medida montandola con acceso de solo lectura para de esta manera, en el caso de sufrir algun reinicio inesperado, esa partición no sufra problemas, ya que será independiente de los errores de las demás particiones.

Lo mejor para tener esta configuración, es hacerlo cuando instalamos la distribución, es más, muchas distros., como por ejemplo Arch, ya crean por defecto el /boot en otra partición.

Aunque si tu ya has instalado y con buena razón no quieres volverla a instalarla, no te preocupes, todavía es posible mover tu /boot a otra partición, aunque eso lo dejamos para el próximo post 🙂

Salu2

Artículos relacionados: