jueves, 23 de octubre de 2008

¿Problemas de Espacio en tu Asus EeePC?

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.

10 comentarios:

  1. Que pena. No me di cuenta y acabo de ver tu nuevo articulo. Tu solución es muy buena. Pero tiene mucho curre.
    Mosquea un poco lo de las cuatro particiones. Fácil que tengan algo que ver con swap, o no, así cuenta que tal corre y que pasa con el manejo de archivos grandes.

    Felicidades.

    Yo actualicé le meti un par de cosas raras que me pedía un programa en la instalación, actualicé la bios y me quede sin wireless. La verdad es que me estaba tragando los dev que daba gusto y me confié demasiado. Ni f9 ni nada, no va.
    Como me daba pereza el DVD y todo el lío de Xandros de nuevo, he vuelto a mi perezosa Ubuntu y le he metido un programita Automatix2 que hace lo mismo que Synaptic, ya te contaré, pero tengo por fin el GIMP y el openoffice 2.4 en gallego y castellano, y le he chutado el xpi del diccionario gallego al Thuderbird y me lo cogio, milagro.
    Pero lo tuyo desde luego tiene más mérito. Quedas nombrado guru.

    ResponderEliminar
  2. No es tan complicado, sólo es seguir los pasos, que básicamente se reducen a:

    1. Crear un archivo con los comandos que se ponen (esto es lo más raro, pero se hace en 1 minuto)

    2. Editar un archivo

    3. Probar si funciona, arrancando diferente (a mano)

    4. Editar otro archivo para que ese arranque se haga siempre así

    5. Modificar las particiones

    El rendimiento es el mismo, y las otras dos particiones de 7 MB no se tocan (tampoco molestan).

    Si acaso alguna aplicación, como "Utilidad de disco", inicia más rápido. Por lo demás, todo igual.

    Con respecto a ubuntu... A mi me gusta, pero no me gusta que tarde tanto en iniciar.

    Finalmente no conseguí instalar Salt... Ni va la versión windows con wine, ni la de linux para OpenOffice...

    Lo de la bios lo hice yo también, y la wifi no funcionaba nada bien. Ahora sigo con la 1301.

    ResponderEliminar
  3. no me salen las cuentas: una unidad de 1.6GB + otra de 650MB + 2X7MB = 4GB.
    podríais aclarar un poco esto por favor?
    gracias por al info.

    saludos

    ResponderEliminar
  4. Son cálculos aproximados que, efectivamente, veo que están mal, y a mi tampoco me salen las cuentas.

    Lo que sí te puedo confirmar, es que tras el proceso, se quedan unos 1500 MB libres, y tal y como viene de fábrica sólo son unos 400 MB.

    Lo que también te puedo confirmar, es que las otras particiones son de 7MB cada una, al menos según gparted.

    Lo mejor es que lo veas tú mismo, instalando gparted, o haciendo un "df" desde consola.

    ResponderEliminar
  5. tengo mi 901 en problemas. ahora mismo por distintas circunstancias me resulta bastante complicado instalar programas... pero intentaré instalar el gparted en cuanto pueda. ese desfase entre el tamaño de las particiones podría deberse a que haya otra partición más, porque si no la hay, donde está la imagen que se carga cuando recuperas el sistema? es decir, que imagino que haya otra partición oculta en la que esté todo lo necesario para recuperar el sistema y dejarlo "de fabrica", no? aunque no tiene porqué, porque si la partición sda1 es de solo lectura con borrarlo todo y dejar solo sda1 con eso ya tenemos el ordenador como nuevo... son pensamientos a vuela tecla, pero es que me inquieta saber en qué pensaban los de asus cuando particionaron de esa manera a mi pequeñín.
    qué lástima que no lo tenga aqui para indagar en el tema...

    ResponderEliminar
  6. Como explico en la entrada, sda1 es la partición solo lectura donde está el sistema con sus aplicaciones de serie.

    Esa partición no es modificable por el usuario, así que lo único que hace el sistema cuando recuperas con F9, es eliminar lo que haya en sda2, y volver a copiar ahí lo necesario para iniciar como lo hace cuando es nuevo.

    Esa partición "oculta", es sda1. Si no fuera por eso, tardaría al menos 5 minutos en restaurar el sistema, pero si te fijas lo hace en 5 segundos, ¿por qué? porque no restaura nada, sólo borra sda2.

    El sistema que proponen en eeeuser, y qeu describo en este artículo, te permite tener sólo la partición sda1, ocupando todo el espacio disponible, que son (ahora lo digo mirando Gparted), 3,74 GB. Las otras dos particiones chiquitillas, son de 7,84 MB cada una.

    ResponderEliminar
  7. Buenas, he seguido tu tutorial, pero me ha surgido un problemilla, por mas que le doy a ctrl+alt+t noo me abre el terminal, ademas, tampoco me descarga las actualizaciones, me da siempre error, sabes por que puede ser?

    ResponderEliminar
  8. Soy el mismo usuario de antes, es ke sin darme cuenta, me carge las dos particiones system, puede ser por eso? hay alguna manera de volver a crearlas? es que no se como lei, que habia que eliminarlas tambien

    ResponderEliminar
  9. Pues deberías poder entrar a la consola.

    También puedes acceder a ella desde el escritorio avanzado (hace falta habilitarlo primero, descargándote los archivos kicker y ksmserver, teniendo los repositorios ampliados).

    Si la cosa va mal, lo mejor sería restaurar desde el DVD (hay una utilidad para crear un USB en el CD original), o desde una ISO de las que en el foro se mencionan.

    Ignoro por qué te ha desaparecido la consola, pero deberías tener, si has seguido todos los pasos, al menos una partición con tu instalación, ya que si fuera system la que hubieras borrado, dudo que tu Eee arrancara.

    Yo en tu lugar restauraba y volvería a hacerlo todo paso a paso

    ResponderEliminar
  10. Tengo el HDD de 4Gb con solo 70 Mb libres tras encender mi eeepc 901 Xandros y aplicarle las 25 oportunas actualizaciones que detecta ... por tanto voy a intentar aplicar este manual, pero el caso es que es mi primer contacto con Linux y me da cosa dejarlo "inutil" ... por tanto mi duda es muy sencilla :
    Si en el proceso de eliminar el UNIONFS (tocando las particiones) la cago en algo , puedo al menos volver a tener el sistema de fabrica arrancando desde el USB booteable que me hago con el DVD que viene de soporte ??? .

    Por favor que alguien me conteste ! Gracias

    ResponderEliminar

Cualquier comentario es bienvenido, siempre con respeto.