¿Problemas de Espacio en tu Asus EeePC?

Publicado el 11 noviembre 2008 por Feliperodriguez
Como continuación a la "Guía fácil para poner a punto un Asus EeePC 901 Xandros", en este artículo voy a explicar un último paso (primer paso, en realidad, ya que luego deberemos aplicar los pasos de la Guía Fácil) que debemos dar todos los poseedores de este Netbook si queremos aprovechar al máximo la capacidad de su unidad sda, de 4GB de capacidad, para instalar todos los prorgamas que queramos, e incluso poder borrar algunos de los que ya vengan instalados de serie, y aprovechar ese espacio.
Quién debe hacer esto

S
i eres de los que usa el Asus para navegar por internet y poco más, y te sirve casi tal y como viene (si acaso, con algún programa más instalado), quizá no te convenga complicarte con este proceso, ya que en tu caso no necesitas aprovechar el espacio de la unidad donde se aloja el sistema.
Pero si eres de los que quieren tener su ordenador con más software, e incluso pretendes eliminar algunos programas de los que vienen instalados, entonces es imprescindible que hagas lo que se sugiere en este artículo.
Introducción: Estructura del disco SDA en el EeePC 901 con Xandros
E
l Asus EeePC 901 Xandros viene con dos discos SSD; sda, de 4 GB, y sdb, de 16 GB.
La primera unidad, es la que se utiliza para el sistema, y la segunda, para la carpeta de usuario (/home). Nosotros vamos a hablar y modificar únicamente la primera unidad.
Pero sda está particionado en 4 particiones: sda1, de unos 3,2 GB; sda2, de unos 800 MB, y sda3 - sda4, que tienen ambas 7 MB y no sé muy bien para qué sirven.
La partición más grande, sda1, se monta como SOLO LECTURA, y es en ella donde se ubica el sistema principal y todas las aplicaciones que trae de serie. Por tanto, esta unidad NO es modificable por el usuario, si no hacemos ninguna modificación. Esto quiere decir, que aunque tratemos de desinstalar un programa como el curso de chino, o el juego del ahorcado, o Picasa (todo ello viene instalado de serie), NO se borrará, ya que esos paquetes permanecen en esta unidad. Por tanto, NO se liberará espacio. Pero, aún encima, si actualizamos algún programa de los que viene instalado de serie, entonces tendremos el programa DOS VECES instalado; es decir, el original, ocupando su espacio, y el actualizado, ocupando más espacio (en otra partición de la que hablo a continuación). Esta partición se denomina "SYSTEM".
La siguiente partición, sda2, denominada "USER", se monta como LECTURA-ESCRITURA, y es el espacio reservado para el usuario, para instalar programas. Pero sólo tiene 650 MB de capacidad, y además viene medio ocupada de serie, ya que al instalarse el sistema por pirmera vez (o después de una restauración), el sistema principal se instala en esta unidad, con lo que muchas cosas están por duplicado.
Esto quiere decir, que si instalamos, por ejemplo, OpenOffice, y desinstalamos StarOffice, el resultado sería el siguiente:
1. StarOffice se desinstala, aparentemente (sus paquetes siguen intactos en sda1)
2. Se instala OpenOffice, en sda2. Nos queda muy poco espacio disponible.
¿Por qué existen estas particiones?
P
ues para que el usuario pueda restaurar el sistema fácilmente con la opción "Restore Factory Defaults", pulsando F9 en el arranque.
Pero este sistema es realmente innecesario, si empleamos una utilidad de backup, como la que sugiero en la entrada anterior.
¿Cómo cambiar, entonces, esta estructura de particiones?
P
odemos modificar el sistema para obtener, finalmente, una única partición, sda1, que ocupe los casi 4GB de capacidad de la unidad sda, y que sea montada como lectura-escritura. De esta manera, tendremos un sistema con mucho más espacio para instalar programas, en el que no se duplicarán instalaciones al actualizar y, además, en el que podremos borrar lo que queramos y que desaparezca realmente de la unidad, obteniendo el espacio libre resultante.
Pero, OJO, si hacemos esto (lo que se explica en este artículo), YA NO PODREMOS restaurar el sistema con F9, aunque siempre lo podremos hacer desde la utilidad externa de backup o desde el DVD original, en su caso.
¿Qué hay que hacer, pues?
Pues hay que eliminar el sistema "unionfs". En este artículo del wiki de eeeuser, se explica cómo hacerlo (esta es mi fuente, con esta guía hice yo todo el proceso ayer mismo).
Aquí voy a explicar los pasos que hay que dar, pero la explicación más detallada la obtendréis de este enlace, donde además se describen otros pasos adicionales que yo he omitido (cambiar el sistema de archivos a ext3, entre otros).
http://wiki.eeeuser.com/howto:removeunionfs
Pasos previos:
Paso 1: Si no lo has hecho, haz un backup de la unidad completa, sda1
Paso 2: Consigue un Linux Bootable desde un USB (en eeeuser sugieren Puppy Linux, que pesa sólo 130 MB). También vale un live-USB de Gparted. Lo importante es arrancar Gparted desde un USB, en todo caso.
Paso 3: Aprende a entrar en la "Consola de Rescate".
Se entra así:
a) Enciende el eeepc,
b) pulsa repetidamente F9,
c) en el menú, encima de "Normal Boot", dale a la tecla "e",
d) en la segunda línea, al final, pulsa otra vez "e",
e) añade un espacio y teclea lo siguiente (sin comillas): "XANDROSBOOTDEBUG=y", y pulsa enter.
f) pulsa la tecla "b".
Pasos para eliminar "unionfs/aufs"
P
aso 1: Crear una nueva imagen ramfs.
Se hace así:
a) abrir consola (CTRL + ALT + t)
b) teclear comandos:
sudo bash
cd /boot
mkdir tmp
cd tmp
gunzip -c ../initramfs-eeepc.img | cpio -i
Esto creará unos archivoe en el directorio /boot/tmp.

Paso 2:
Modificar archivo "init".
Estamos dentro de /boot/tmp/
Editamos el archivo init, por ejemplo, con kwrite:
sudo kwrite init

Ahora hacemos las modificaciones que nos dicen en el enlace de eeeuser (las cuales explico).
Las modificaciones que hay que hacer son (traducido de eeeuser)

Modificar la línea 12 (puede que sea otra próxima). Originalmente pone:
mount -t ext2 -o ro $ROOT /mnt-system
Debemos cambiarlo por:
mount -t ext2 -o rw,noatime $ROOT /mnt
(estamos cambiando ro por rw,noatime y eliminando la parte -system). NO PONGAS UN ESPACIO después de la coma en rw,noatime. De lo contrario, el sistema no iniciará.

Inhabilita ciertas líneas, anteponiendo el signo # como primer carácter en cada línea, entre las líneas siguientes (ambas incluidas):
Desde la que pone: if [ -n “$XANDROSSCAN” ]; then
Hasta la que pone: umount -l /mnt-user

Sirva como ejemplo el siguiente archivo, ya modificado (para que veas dónde se aplican los cambios citados arriba)
Archivo INIT tras las modificaciones (de un Asus EeePC 701, diferente parcialmente al de un 901):
#!/bin/sh
mount -t proc proc /proc
if [ -n "$XANDROSBOOTDEBUG" ]; then
/bin/busybox sh
set -x
fi
ROOT=`cat /proc/cmdline | sed 's/.*root=// ; s/ .*//'`
#VERSION=`cat /proc/version | cut -f3 -d" "`
mount -t ext2 -o rw,noatime $ROOT /mnt
if [ $? -ne 0 ] ; then
echo Could not mount OS on $ROOT. Starting debugging shell....
/bin/busybox sh
fi
#if [ -n "$XANDROSSCAN" ]; then
# exec switch_root /mnt-system /sbin/scanuser.sh
#fi
#
#if [ -n "$XANDROSRESTORE" ]; then
# exec switch_root /mnt-system /sbin/formatuser.sh
#fi
#
#if [ -z "`grep nosplash /proc/cmdline`" ]; then
# echo -n ""
# cp /mnt-system/boot/startup.fb /dev/fb/0
#fi
#
#if ! mount -t ext3 -o rw /dev/sda2 /mnt-user; then
# echo Error mounting user partition. Must run filesystem scan!
# exec switch_root /mnt-system /sbin/scanuser.sh
#fi
#
## Factory auto-format functionality
#if [ -f /mnt-user/.autoformat ]; then
# umount /mnt-user
# exec switch_root /mnt-system /sbin/formatuser.sh -- --auto
#fi
#
#insmod /mnt-system/lib/modules/$VERSION/kernel/fs/unionfs/unionfs.ko > /dev/null
#
#mount -t unionfs -o dirs=/mnt-user=rw:/mnt-system=ro unionfs /mnt
#if [ $? -ne 0 ]; then
# echo Could not mount unionfs. Starting debugging shell....
# /bin/busybox sh
#fi
#
#mount --move /mnt-system /mnt/mnt
#umount -l /mnt-user
umount /proc
if [ -n "$INIT" ]; then
if [ -n "$XANDROSBOOTDEBUG" ]; then
exec switch_root /mnt $INIT /mnt/dev/console
else
exec switch_root /mnt $INIT /mnt/dev/null
fi
else
exec switch_root /mnt /sbin/fastinit "$@" /mnt/dev/console
fi
echo
echo Init Failed. Starting emergency shell....
/bin/busybox sh

Darle a GUARDAR al final y cerrar kwrite
Paso 3: Ejecutar comandos para crear un nuevo archivo (initramfs) alternativo al anterior, que contenga las modificaciones que hemos hecho en INIT (lo que nos permitirá iniciar el Asus en sda1 con permisos de escritura):
find | cpio -H newc -o | gzip -9 > ../initramfs-eeepc-nounionfs.img
Y luego, borrar el directorio tmp donde hemos trabajado antes (ahora las modificaciones están en el nuevo archivo, así que no nos hace falta).
cd ..
rm -rf tmp

Paso 4: Instalar el nuevo archivo que hemos creado.
a) Debemos entrar en "Consola de rescate", como se explica al principio del artículo.
b) Una vez en ella, teclear lo siguiente:
mount /dev/sda1 /mnt-system
mount /dev/sda2 /mnt-user
cp /mnt-user/boot/initramfs-eeepc-nounionfs.img /mnt-system/boot/
umount /mnt-system
umount /mnt-user

Paso 5: Hacer una prueba de nuestro trabajo (para ver si está todo bien hecho).
a) Reinicia el EeePC, y pulsa F9 repetidamente
b) En "Normal Boot", dale a "e"
c) En la segunda línea, dale a "e"
d) En la tercera línea, cambia donde pone "initramfs-eeepc.img" por "initramfs-eeepc-nounionfs.img" y al final de la línea, añade "-nounionfs".
e) dale a ENTER
f) dale a "b"
Si todo ha salido bien, ahora ha arrancado con el escritorio como cuando está el asus recién comprado. Con la diferencia de que, si abres el explorador de archivos, o si miras en "utilidad de disco", verás que SOLO hay la unidad sda1, y ahora es de LECTURA y ESCRITURA.
Paso 6: Si la prueba ha salido bien, ahora hay que hacer que la modificación sea permanente.
a) Sin reiniciar el ordenador (debemos tener opción de escribir en sda1; así que si inicias normalmente, lo que cambies NO SE GUARDARÁ. Debes primero entrar como se describe en el aso anterior), entra en consola
b) chequea el sistema de archivos (opcional)
sudo bash
fsck /dev/sda1

c) Edita el archivo "/boot/grub/menu.lst.", con kwrite.
En la línea donde pone "
initrd /boot/initramfs-eeepc.img", lo cambiamos
por "
initrd /boot/initramfs-eeepc-nounionfs.img"

Guardar el archivo.
Ahora ya lo tienes listo para arrancar en la primera partición con opción de escritura
(puedes instalar y desinstalar programas en sda1).
Paso 7: Maximizar el espacio de la primera partición, y eliminar la segunda.


OJO: Perderás todos los programas que tengas instalados, ya que están en la segunda partición.
Pero volverlos a instalar, te llevará poco tiempo con synaptic, y la configuración no la perderás,
ya que se guarda en /home.
Para ello, deberás llegar a "gparted", desde un Linux-live-usb, como Puppy, ubuntu, etc.
En gparted, deberás hacer lo siguiente:
a) Ver la unidad con las 4 particiones, que en total suman 4 GB (puede que se llame sdb, sdc,
o de otra manera, ya que sda normalmente será la unidad USB desde la que has iniciado).
b) Selecciona la partición de 650 MB, llamada "USER", y BORRALA
c) Selecciona la partición primera, llamada "SYSTEMS", dale al botón derecho, y pulsa en
"resize/move"
d) Mueve el extremo derecho de la partición, con el ratón, hasta llegar al extremo derecho
del espacio. Deberá tener unos 3970 MB de espacio.
e) Dale a "APLICAR".
Cuando termine, ya estará listo.
Paso 8 (y último): Ahora sólo te queda iniciar normalmente, y seguir los pasos de la
"
Guía para poner a punto un EeePC 901 con Xandros"; es decir, actualizar,
instalar launcher tools, actualizar repositorios, instalar el software que quieras,
borrar el que no quieras, y hacer un backup.

PASO ADICIONAL: Instalar deborphan y localepurge, para eliminar archivos huérfanos del sistema y
los paquetes de idiomas no necesarios.
---
Antes tenía unos 100 MB libres con LOS MISMOS programas que tengo ahora instalados.
Ahora tengo 1300 MB libres.