Para realizar dichas tareas tenemos que iniciar (casi) cualquier distro Linux en modo Livecd o desde usb, yo lo hago desde un Knoppix en mi memoria usb de 4gb. Lo importante es que no iniciemos desde el disco donde vamos a modificar las particiones y que tengamos el programa gparted, claro un editor de textos ;) y acceso de superusuario para realizar los cambios.
Una partición /boot es el lugar donde además del gestor de arranque, se encuentran las imágenes de arranque de nuestros sistemas instalados. Si estás leyendo esto desde un linux instalado (y tienes otro instalado) seguramente cada uno tiene su carpeta boot en la misma partición raíz (/) y el último que fue instalado es el que tiene el gestor de arranque activo. De la misma manera, si se instala un nuevo sistema, será ahora ese el que tenga el gestor de arranque activo. Ahora bien, ¿qué pasa si este sistema/partición se daña? No tendremos acceso al gestor y no podremos acceder a los otros sistemas; esta es una de las situaciones un poco típicas cuando se tiene varias distros instaladas y "jugamos" bastante con ellas :D
Existen algunas otras ventajas de tener una partición /boot dedicada que iré mencionando en el camino. Lo importante a tener en cuenta para nuestro /boot es saber que tamaño darle. Actualmente un kernel genérico más la imagen ramdisk (initrd) pesa alrededor de 50mb máximo. Entonces, si sólo vamos a tener una distro y no somos de actualizar el kernel muy seguido, con 200Mb tendremos más que suficiente, aún con dos o tres distros los mismos 200mb pueden alcanzar, pero con el tamaño de los discos actuales resulta prácticamente imperceptible la diferencia de 200mb a 512mb o 1g. Así que si disponemos del espacio, no seamos tacaños y hagamos un /boot grandecito de 1gb ;) Para saber cuanto ocupa el directorio /boot de nuestro sistema actual podemos ejecutar
du -h /bootEl espacio extra es requerido en esta situación ya que pondremos el Parted Magic también.
Para iniciar con el particionado, ejecutamos el programa gparted como superusuario (desde un livecd seguramente lo hace automático). No me detengo mucho en el tema del particionado ya que llevaría un post entero hacerlo. Si no conoces mucho sobre esto, te recomiendo no arriesgar y evitar la posible pérdida de toda tu información y primero leer como hacerlo bien, un par de buenas guías son esta y esta ;) Basta con decir que lo que debemos hacer es redimensionar alguna partición (mientras más al inicio del disco mejor) para dejar un espacio libre (recomendado antes de las particiones de los sistemas) al cual daremos formato de sistema de archivos ext3 y para reconocerla facilmente le damos la etiqueta boot.
Empecemos!
Montamos la nueva partición (sda8 para el ejemplo) y la partición donde se encuentra el sistema instalado (el destino debe existir sino, lo creamos primero):
mount /dev/sda8 /mnt
mkdir /media/linux
mount /dev/sda7 /media/linuxInstalamos el grub en la nueva partición con el siguiente comando tomando en cuenta que:
- La opción --root-directory apunta al dispositivo que creamos como partición /boot (en este ejemplo es sda8).
- El dispositivo indicado al final de la orden indica el disco (no partición!) al cual vamos a escribir los datos en su MBR que generalmente es el mismo que contiene la partición antes indicada
grub-install --root-directory /dev/sda8 /dev/sdaPara evitar mucha edición del archivo de configuración, lo copiamos directamente:
cp /media/linux/boot/grub/grub.cfg /mnt/grub/Eliminamos la carpeta grub antigua para luego mover todo el contenido del /boot anterior al nuevo; y posteriormente movemos el contenido del nuevo boot un nivel más arriba y eliminamos la carpeta ya vacia, ya explico el porqué:
rm -Rf /media/linux/boot/grub/El porqué de mover el contenido de boot a la raíz de la partición en este caso montada en /mnt, es por que si no lo hacemos así, luego al indicar esta partición como punto de montaje /boot en el fstab del sistema instalado, terminamos con la ruta /boot/boot/... lo cual no nos conviene ya que puede dar conflictos al no ser una ruta por defecto.
mv /media/linux/boot/* /mnt/boot
mv /mnt/boot/* /mnt
rm -Rf /mnt/boot
El siguiente paso es descargar PartedMagic (link de descarga) y descomprimirlo, creamos una carpeta temporal para su extracción:
mkdir /mnt/tmpdir && cd /mnt/tmpdir
wget http://downloads.sourceforge.net/project/partedmagic/partedmagic/Parted%20Magic%205.5/pmagic-5.5.iso.zip?r=http%3A%2F%2Fpartedmagic.com%2Fdownload.html&ts=1284270707&use_mirror=ufpr
unzip pmagic-5.5.iso.zipMovemos la carpeta pmagic a la raíz de esta partición, y eliminamos el directorio tmp:
mv pmagic .. && cd .. && rm -Rf tmpdirAñadimos la siguiente entrada de PartedMagic en el archivo grub.cfg:
menuentry "PartedMagic" {Debemos acomodar donde dice (hd0.8) acorde a nuestro disco y partición, cabe anotar que ahora en grub2 la numeración de la partición es la misma de la que nos señala /dev, es decir, si nuestro boot fue creado con el dispositivo sda8 entonces la entrada del grub2 será (hd0.8), también se puede acomodar la opción vga=791 por una más acorde a nuestro monitor, en este link hay la lista de modos. Una vez listo todo guardamos los cambios y salimos del archivo.
set root=(hd0.8)
linux /pmagic/bzImage edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791
loglevel=0 max_loop=256 keymap=es
}
Nos queda añadir el punto de montaje de nuestra partición boot en el fstab, para esto ejecutamos el siguiente comando para averiguar el UUID de la partición que creamos anteriormente (sda8) y que montamos en /mnt:
blkidAnotamos el UUID correspondiente, abrimos el archivo fstab:
vi /media/linux/etc/fstaby añadimos la siguiente línea, ajustando los datos en negrilla para que correspondan a nuestro equipo:
UUID=80974697-0d16-46df-955a-e6076b34236c /boot ext2 defaults 0 2Sino por alguna razón no queremos usar los ID, debemos reemplazar el UUID por el dispositivo, que en el caso del ejemplo sería /dev/sda8. Guardamos los cambios y salimos del archivo.
El último paso es cambiar un par de cosas de la entrada del sistema instalado en el grub.cfg. Al estar las imágenes de inicio del sistema (initrd, vmlinuz) ahora en su partición dedicada hay que eliminar la opción que dice --fs-uuid --set UUID ya que (hasta ahora no se porqué) esto hace que de conflicto con la otra opción root=UUID= indicada más abajo :S; así que hay que verificar que el UUID donde dice root=UUID= sea el de la partición donde está el sistema y no el de la partición boot. Sino queremo susar UUID reemplazamos UUID=número por el dispositivo. Además hay que corregir la ruta de las imágenes, ya no están en /boot/ sino que deben apuntar directo a la raíz (de la partición) Por lo que les quedaría algo así:
menuentry "Squeeze Linux 2.6.32-5-686" --class debian --class gnu-linux --class gnu --class os {Y eso sería todo! Reiniciamos y debemos ver la entrada de nuestro sistema y la de PartedMagic. Nuestro sistema debe iniciar como si nada, aparentemente sin ningún cambio, pero ahora disfruta de su /boot dedicado ;) y si iniciamos el PartedMagic tendremos un sistema de rescate bastante útil y muy funcional.
insmod ext2
set root='(hd0,8)'
search --no-floppy
echo Loading Linux 2.6.32-5-686 ...
linux /vmlinuz-2.6.32-5-686 root=UUID=ed70b614-ecdb-41a9-bd9c-a53b6a7e6daf ro quiet
echo Loading initial ramdisk ...
initrd /initrd.img-2.6.32-5-686
}
Sino por alguna razón se encuentran con un grub en modo rescate o cualquier situación que evite que los sistemas no inicien. Pueden leer este post para saber como iniciar un kernel directamente desde la línea de comandos del grub.
Espero que les haya servido y comenten como les fue!
No hay comentarios:
Publicar un comentario