Luis Angel Cofiño

Historia de una odisea por etapas

Transferir todo el sistema a otra partición





Secciones

Índices

15/08/2003

Bueno, os recomiendo a todos el ensayo "Al principio fue la linea de comandos", de Neal Stephenson, el del Criptonomicon. Yo acabo de leerlo y me ha metido las ganas de probar el sistema operativo BeOS. El problema es cómo meterlo en mi disco duro, porque el muy cabrito pide una partición primaria, y lo tengo todo tal que así:

Partición Montado en Tamaño Libre
hda1 /mnt/oldboot 83 Mb 83 Mb
hda2 / 5 Gb 2,9 Gb
hda3 /mnt/seguridad 5 Gb 3,3 Gb
hda5 swap 96 Mb -
hda6 /mnt/virtuales 10 Gb 6,8 Gb
hda7 /mnt/extra 4 Gb 2,1 Gb
hda8 /usr 5 Gb 1,1 Gb
hda9 /var 3 Gb 1 Gb
hda10 swap 128 Mb -
hda11 swap 128 Mb -
hda12 /mnt/antiguo 1,7 Gb 1,7 Gb

Bien, hda1 no sirve porque es demasiado pequeña. Eso nos deja con hda3, que quiero conservar para las copias de seguridad o hda2, que está ocupada con la raiz de Debian.

Así que no hay más remedio que mover Debian a otro sitio :-)

Pero jugar de esta forma con las particiones va a costar mucho trabajo y tiempo (es como poner toda la casa patas arriba). Así que el reto es hacerlo gradualmente, "a trocitos" en varias sesiones. Y que al término de cada sesión (con todo el trabajo "a medias"), el sistema siga funcionando con el mismo rendimiento y servicios que antes.

Pues vamos allá. :-P

Se trata de ir vaciando hda2 para meterlo todo en otra partición. Vale, pues primero pasamos todo el contenido de /boot a /oldboot. Afortunadamente, estos datos solo se leen en el arranque, así que podemos jugar con ellos sin necesidad de un disco de emergencia.

	[lacofi@claudia lacofi]$ su
	password:
	[root@claudia lacofi]# mount /dev/hda1 /mnt/oldboot -t reiserfs -o rw
	[root@claudia lacofi]# cd /mnt/oldboot
	[root@claudia lacofi]# tar c /boot | tar xv
	[root@claudia lacofi]# rm -Rf /boot
	[root@claudia lacofi]# mv boot /
	[root@claudia lacofi]# cd /
	[root@claudia lacofi]# umount /mnt/oldboot

Después edito /etc/fstab y cambio las entradas de esta partición:

	/dev/hda1 /mnt/oldboot 	reiserfs defaults 0 0
por esto otro...
	/dev/hda1 /boot		reiserfs defaults 0 0 
Y a continuación montamos la partición tal y como va a quedar.
	[root@claudia lacofi]# mount /boot

Y por hoy ya valió.

16/08/2003

Lo siguiente que hago es unir la partición hda9 con /.

	[lacofi@claudia lacofi]$ su
	password:
	[root@claudia lacofi]# cd /
	[root@claudia lacofi]# mkdir nuevovar
	[root@claudia lacofi]# cd nuevovar
	[root@claudia lacofi]# tar c /var | tar xv

Naturalmente, me he fijado previamente en el pequeño detalle de que cabe. ;-)

Después arranco con un disquete de emergencia, como RIP o MuLinux. Monto en ese disquette todas las particiones, borro el contenido de /dev/hda9, y edito el fichero fstab que está contenido en la partición hda2 para borrar la entrada que monta /var. A continuación me meto en /nuevovar, muevo el subdirectorio "var" a la raiz, y elimino el directorio /nuevovar (ahora vacío). Retiro el disquette de arranque y reboto. O sea:

	RIP bash# mkdir /mnt/viejo_var
	RIP bash# mount /dev/hda9 /mnt/viejo_var -t reiserfs -o rw
	RIP bash# mount /dev/hda2 /mnt/linux -t reiserfs -o rw
	RIP bash# cd /mnt/linux/nuevovar
	RIP bash# mv var ..
	RIP bash# cd ..
	RIP bash# pwd
	/mnt/linux
	RIP bash# ls var
	backups  cache  games  lib  local  lock  
	log  mail  named  opt  run  spool  state  tmp  www
	RIP bash# rmdir nuevovar
	RIP bash# cd /mnt/viejo_var
	RIP bash# rm -Rf *
	RIP bash# umount /mnt/viejo_var
	RIP bash# rmdir /mnt/viejo_var

Ahora sacamos el disco de emergencia y rebotamos la máquina

Aprovecho para comentar que si no tienes un disquete de emergencia ¡lo necesitas YA!. ¿A qué estás esperando?. ¡Hazte con uno!. Hay muchos y de muchos "colores". Vete a alguno de los muchos listados que encontrarás en la Web y elige. Personalmente, el que uso es RIP. Contiene TODO lo que necesito, incluido soporte completo para unidades ReiserFS.

Bien, ¿qué he conseguido hasta ahora?. Bueno... pues hda12 no la necesito. hda11 y hda10 son dos particiones de swap que creé cuando andaba escaso de RAM. Ahora tengo 256 Mb, así que tampoco las necesito. hda9 acabo de dejarla vacía. Todas juntas, suponen 5 Gb consecutivos libres, justo al final del disco duro. Teóricamente, ya podría pasar el contenido de la partición hda2 a esa nueva hda9 de 5 Gb que me quedaría. Pero iría muy justo de espacio libre. En cambio, sería mucho más práctico si pudiera vaciar también hda8 para aprovechar el 1,1 Gb que tiene libres.

17/08/2003

Pues nada, nada, vamos a preparar el terreno para poder modificar las particiones. Arranco con el disco de emergencia, monto otra vez las particiones, hago un "cd" a hda6.

	RIP bash# mkdir /mnt/virtuales
	RIP bash# mount /dev/hda6 /mnt/virtuales -t reiserfs -o rw
	RIP bash# cd /mnt/virtuales

A continuación, monto la partición que contiene "/usr" y la empaqueto entera.

	RIP bash# mount /dev/hda8 /mnt/linux -t reiserfs -o rw
	RIP bash# tar czvf usr.tar.gz /mnt/linux

De momento, he conseguido esto:

Partición Montado en Tamaño Libre
hda1 /boot 83 Mb 74 Mb
hda2 / 5 Gb 1 Gb
hda3 /mnt/seguridad 5 Gb 3,3 Gb
hda5 swap 96 Mb -
hda6 /mnt/virtuales 10 Gb 6,8 Gb
hda7 /mnt/extra 4 Gb 2,1 Gb
hda8 (eliminable) 5 Gb |
hda9 (eliminable) 3 Gb |
hda10 (eliminable 128 Mb | 10 Gb
hda11 (eliminable) 128 Mb |
hda12 (eliminable) 1,7 Gb |

Y como es ya tarde y mañana trabajo, ahí lo dejo. Continuará...

26/08/2003

Bien, pues hoy toca la parte del león. Hay que jugar ni más ni menos que con las particiones.

	[root@claudia lacofi]# /sbin/fdisk /dev/hda
	
	The number of cylinders for this disk is set to 4865.
	There is nothing wrong with that, but this is larger than 1024,
	and could in certain setups cause problems with:
	1) software that runs at boot time (e.g., old versions of LILO)
	2) booting and partitioning software from other OSs
   	(e.g., DOS FDISK, OS/2 FDISK)

	Command (m for help): Command (m for help): d
	Partition number (1-12): 12

	Command (m for help): d
	Partition number (1-11): 11
	
	Command (m for help): d
	Partition number (1-10): 10

	Command (m for help): d
	Partition number (1-9): 9
	
	Command (m for help): d
	Partition number (1-8): 8

	Command (m for help): n
	First cylinder (1710-3016, default 1710):>Intro< 
	Using default value 1710
	Last cylinder or +sizeM or +sizeK (1711-3016, default 3016): 2984

	Command (m for help): n
	First cylinder (2985-3016, default 2985):>Intro< 
	Using default value 2985
	Last cylinder or +sizeM or +sizeK (2986-3016, default 3016): 3000

	
	Command (m for help): n
	First cylinder (3001-3016, default 3001):>Intro<
	Using default value 3001
	Last cylinder or +sizeM or +sizeK (3002-3016, default 3016): >Intro<

	Command (m for help): t
	Partition number (1-10): 10
	Hex code (type L to list codes): 82

	Command (m for help): t
	Partition number (1-10): 9
	Hex code (type L to list codes): 82

	Command (m for help): p
	
	Disk /dev/hda: 255 heads, 63 sectors, 4865 cylinders
	Units = cylinders of 16065 * 512 bytes

   	Device Boot    Start       End    Blocks   Id  System
	/dev/hda1             1        11     88326   83  Linux
	/dev/hda2   *        12       664   5245222+  83  Linux
	/dev/hda3           665      1709   8393962+  83  Linux
	/dev/hda4          1710      4865  25350570    5  Extended
	/dev/hda5          3017      3028     96358+  82  Linux swap
	/dev/hda6          3029      4338  10522543+  83  Linux
	/dev/hda7          4339      4865   4233096   83  Linux
	/dev/hda8          1710      2984  10241406   83  Linux
	/dev/hda9          2985      3000    128488+  82  Linux swap
	/dev/hda10         3001      3016    128488+  82  Linux swap

	Partition table entries are not in disk order

	Command (m for help): w

Bien. ¿Ha quedado claro?. He destruido todas las particiones desde hda8 hasta hda12, incluidas éstas. Luego contruyo de nuevo la partición hda8 (que será enorme, para contener todo linux), y me reservo 32 cilindros del final. Luego cojo 16 cilindros más para hda9, y los últimos 16 cilindros para hda10.

A continuación, convierto hda9 y hda10 a particiones "82" que es el código de las particiones swap. Luego grabo la tabla. La suerte está echada. :-)

Una de las particiones (hda8) está todavía en activo (contiene /usr) así que Claudia no me permite usar la nueva tabla hasta el siguiente rebote. Correcto.

Meto el disquette de emergencias y reboto.

Una vez arrancado el sistema de emergencias hay que formatear las particiones nuevas con los siguientes comandos:

	RIP bash# mkreiserfs /dev/hda8
	RIP bash# mkswap /dev/hda9
	RIP bash# mkswap /dev/hda10

Ahora montamos las particiones que nos interesan para poder reconstruir el viejo "/usr".

	RIP bash# mkdir /mnt/virtuales
	RIP bash# mkdir /mnt/linux
	RIP bash# mount /dev/hda6 /mnt/virtuales -t reiserfs -o rw
	RIP bash# mount /dev/hda8 /mnt/linux -t reiserfs -o rw
	RIP bash# cd /mnt/linux
	RIP bash# tar -xzf /mnt/virtuales/usr.tar.gz

Y me voy a tomar un buen café, que esto lleva un rato largo. :-)

Por desgracia, el comando "tar" ha guardado el directorio "usr" pero con su trayectoria completa en el momento del empaquetado (mnt/linux/usr"). Bueno, una pequeña metedura de pata que tiene fácil solución. Nos metemos un par de directorios adentro y lo movemos todo al sitio correcto:

	RIP bash# cd mnt/linux
	RIP bash# ls usr
	bin doc games include info java lib local man
	openwin	sbin share src X11R6
	RIP bash# mv usr ../..
	RIP bash# cd ..
	RIP bash# rmdir linux
	RIP bash# cd ..
	RIP bash# rmdir mnt
	RIP bash# cd /
	

Ahora desmonto las particiones y monto hda2, que es donde está el sistema Debian actualmente.

	RIP bash# umount /mnt/virtuales
	RIP bash# umount /mnt/linux
	RIP bash# mkdir /mnt/oldlinux
	RIP bash# mount /dev/hda2 /mnt/oldlinux -t reiserfs -o rw
	RIP bash# cd /mnt/oldlinux

Ahora hay que crear un directorio en el que poder montar (provisionalmente) el nuevo "/usr"

	RIP bash# cd mnt
	RIP bash# mkdir pruebas
	RIP bash# cd ..
	RIP bash# pwd
	/mnt/oldlinux
	RIP bash#

Ahora entramos en el directorio etc, porque tenemos que modificar fstab para que pueda encontrar "/usr" en su nueva ubicación.

	RIP bash# cd etc
	RIP bash# vi fstab

En concreto, hay que borrar las lineas que se refieren a hda12, hda11, hda10, hda9 y hda8, y en su lugar escribir estas otras:

	/dev/hda8 	/mnt/pruebas 	reiserfs 	defaults	0 0
	/dev/hda9 	none 		swap		sw		0 0
	/dev/hda10	none		swap		sw		0 0

Ahora tenemos:

	RIP bash# pwd
	/mnt/oldlinux/etc
	RIP bash# cd ..
	RIP bash# ls
	bin boot cdrom dev etc floppy home initrd lib mnt opt
	proc root sbin tmp usr var vmlinuz XF86Config.new

El directorio "usr" está vacio porque ahí es donde se montaba /dev/hda8. Ahora no es así. Hay que hacer:

	RIP bash# rmdir usr
	RIP bash# ln -s /mnt/pruebas/usr usr
	RIP bash# ls -Fohl
	total 66k
	drwxr-xr-x    2 root     2.1k mar 24 01:27 bin/
	drwxr-xr-x    3 root      480 ago 15 20:02 boot/
	drwxr-xr-x    2 root       48 nov  1  2002 cdrom/
	drwxr-xr-x    9 root      35k ago 28 23:25 dev/
	drwxr-xr-x  146 root     9.4k ago 28 23:25 etc/
	drwxr-xr-x    2 root       48 nov  1  2002 floppy/
	drwxr-xr-x    7 root      168 may 27 02:43 home/
	drwxr-xr-x    2 root       48 nov  1  2002 initrd/
	drwxr-xr-x    5 root     3.1k abr 14 00:40 lib/
	drwxr-xr-x   18 root      472 jul 19 03:10 mnt/
	drwxr-xr-x   12 root      352 ago  4 02:18 opt/
	dr-xr-xr-x  112 root        0 ago 29  2003 proc/
	drwxr-xr-x   44 root     2.6k ago 28 20:50 root/
	drwxr-xr-x    2 root     3.3k abr 25 15:42 sbin/
	drwxrwxrwt    9 root      344 ago 29 00:23 tmp/
	lrwxrwxrwx    1 root       16 ago 28 20:45 usr -> /mnt/pruebas/usr/
	drwxr-xr-x   17 root      408 feb 16  2003 var/
	lrwxrwxrwx    1 root       25 nov  1  2002 vmlinuz -> boot/vmlinuz-2.4...
	-rw-r--r--    1 root     3.2k dic  5  2002 XF86Config.new

¿Qué he conseguido?. Pues he eliminado todas las particiones consecutivas por encima de hda8. He creado una gigantesca partición de 10 Gb que se montará provisionalmente en /mnt/pruebas. Esta partición, de momento, solo contiene "/mnt/pruebas/usr", que está linkado a "/usr" en hda2, pero ya tiene el tamaño suficiente para contener todo linux.

En realidad, lo más gordo ya está hecho. El sistema sigue funcionando, y ahora se trata simplemente de ir vaciando todo el contenido de hda2, directorio a directorio e irlo moviendo a /mnt/pruebas.

Por cierto, que esta sesión no ha sido ni mucho menos tan larga como parece. Lo que ocurre es que me ha llevado más tiempo contarlo que hacerlo. :-D

Rebotamos el sistema y hasta otro día. :-)

27/08/2003

Hoy no tengo mucha gana de trabajar (y quiero echar una partidita al bzflag, dicho sea de paso). Así que arranco con el disquete de emergencia y hago:

	RIP bash# mkdir /mnt/oldlinux
	RIP bash# mount /dev/hda2 /mnt/oldlinux -t reiserfs -o rw
	RIP bash# mount /dev/hda8 /mnt/linux -t reiserfs -o rw
	RIP bash# cd /mnt/oldlinux
	RIP bash# mv var /mnt/linux/.

Me tomo una tacita de café, que es un directorio grande. Y luego:

	RIP bash# pwd
	/mnt/oldlinux
	RIP bash# rm -Rf var 
	RIP bash# ln -s /mnt/pruebas/var var
	RIP bash# reboot

Reboto y me voy a jugar al bzflag. :-)

Por cierto, fijaos en que lo dejo linkado contra "/mnt/pruebas", que en este preciso momento no existe, pero es como se montará en el sistema cuando arranque de nuevo mi Debian.

28/08/2003

Bueno, vamos a pasar unas cuantas cosas más. A ver, arrancamos con el disquete de emergencia y nos preparamos:

	RIP bash# mkdir /mnt/oldlinux
	RIP bash# mount /dev/hda2 /mnt/oldlinux -t reiserfs -o rw
	RIP bash# mount /dev/hda8 /mnt/linux -t reiserfs -o rw
	RIP bash# cd /mnt/oldlinux
	RIP bash# ls -Fohl
	total 66k
	drwxr-xr-x    2 root     2.1k mar 24 01:27 bin/
	drwxr-xr-x    3 root      480 ago 15 20:02 boot/
	drwxr-xr-x    2 root       48 nov  1  2002 cdrom/
	drwxr-xr-x    9 root      35k ago 28 23:25 dev/
	drwxr-xr-x  146 root     9.4k ago 28 23:25 etc/
	drwxr-xr-x    2 root       48 nov  1  2002 floppy/
	drwxr-xr-x    7 root      168 may 27 02:43 home/
	drwxr-xr-x    2 root       48 nov  1  2002 initrd/
	drwxr-xr-x    5 root     3.1k abr 14 00:40 lib/
	drwxr-xr-x   18 root      472 jul 19 03:10 mnt/
	drwxr-xr-x   12 root      352 ago  4 02:18 opt/
	dr-xr-xr-x  112 root        0 ago 29  2003 proc/
	drwxr-xr-x   44 root     2.6k ago 28 20:50 root/
	drwxr-xr-x    2 root     3.3k abr 25 15:42 sbin/
	drwxrwxrwt    9 root      344 ago 29 00:23 tmp/
	lrwxrwxrwx    1 root       16 ago 28 20:45 usr -> /mnt/pruebas/usr/
	drwxr-xr-x   17 root      408 feb 16  2003 var -> /mnt/pruebas/var/
	lrwxrwxrwx    1 root       25 nov  1  2002 vmlinuz -> boot/vmlinuz-2.4...
	-rw-r--r--    1 root     3.2k dic  5  2002 XF86Config.new

Bien, se trata de trasferir unos cuantos directorios y dejar un link en su lugar, exactamente igual que hice con "var". Concretamente, lo haremos con los directorios "tmp", "root", "opt", "home", "floppy" y "cdrom". Parece mucho más trabajo que ayer, pero en realidad, todos juntos, ocupan menos disco que "var", por lo que llevará menos tiempo. Eso sí, hay que teclear más comandos, claro. ;-)

	RIP bash# mv tmp /mnt/linux/.
	RIP bash# mv root /mnt/linux/.
	RIP bash# mv home /mnt/linux/. &
	[1] 987
	RIP bash# mv opt /mnt/linux/. &
	[2] 988
	RIP bash# mv floppy /mnt/linux/.
	RIP bash# mv cdrom /mnt/linux/.
	RIP bash# jobs

Ahora espero un poco, tecleando "jobs" de vez en cuando, hasta asegurarme de que todas las tareas en segundo plano han terminado. Como veis, he puesto a trabajar en modo background los comandos que exigen más tiempo (mover home y opt). Esto me permite aprovechar la capacidad multitarea de linux y dejar libre la linea de comandos. Cuando "jobs" me dice que todas las tareas han terminado, pongo los links en su sitio:

	RIP bash# pwd
	/mnt/oldlinux
	RIP bash# rm -Rf tmp root home opt floppy cdrom
	RIP bash# ln -s /mnt/pruebas/tmp tmp
	RIP bash# ln -s /mnt/pruebas/root root
	RIP bash# ln -s /mnt/pruebas/home home
	RIP bash# ln -s /mnt/pruebas/opt opt
	RIP bash# ln -s /mnt/pruebas/floppy floppy
	RIP bash# ln -s /mnt/pruebas/cdrom cdrom
	RIP bash# reboot

Con esto hemos terminado por hoy. Arranca mi Debian y compruebo que sigue funcionando sin ningún problema.

29/08/2003

Hoy seguimos transfiriendo directorios, pero esta vez será algo distinto. ¿Por qué?. Bueno, porque hay algunos ficheros que son especialmente delicados: tienen que estar accesibles desde el principio, incluso antes de montar los todos los sistemas de archivo que no sean "/".

Un ejemplo. En el directorio /etc se encuentra /etc/fstab, que es el fichero que le indica al sistema en el arranque cómo deben montarse todos los sistemas de archivo. Así, es este fichero el que indica que /dev/hda8 debe montarse como /mnt/pruebas. Si no se lee este fichero, no puede montarse, con lo cual el link "usr -> /mnt/pruebas/usr" sencillamente no funciona. Si convertimos "/etc" en un link a "/mnt/pruebas/etc", convertimos el sistema en fosfatina, porque no puede montarlo al no encontrar un /etc/fstab que se lo indique. Es un círculo vicioso que no haría ninguna gracia, ¿verdad?.

Por eso hay determinados directorios que NO vamos a mover y convertir en un link, sino que vamos a hacer una simple copia. Por otro lado, esos directorios a los que me refiero no suelen cambiar demasiado en el tiempo, sino que se mantienen casi invariables salvo que instalemos o modifiquemos algo en la configuración del sistema. Por eso, copiándolos en lugar de hacer un link, podemos estar razonablemente seguros de que dentro de un mes la copia seguirá más o menos igual que su original. Esos directorios son "/sbin", "/proc", "/mnt", "/lib", "/initrd", "/etc", "/dev", "/bin". ¿Vale?. Pues arrancamos nuestro disco de rescate y, aprovechando que tenemos "/dev/hda2" ya casi vacío, hacemos:

	RIP bash# mkdir /mnt/oldlinux
	RIP bash# mount /dev/hda2 /mnt/oldlinux -t reiserfs -o rw
	RIP bash# mount /dev/hda8 /mnt/linux -t reiserfs -o rw
	RIP bash# cd /mnt/oldlinux
	RIP bash# tar -czf sbin.tar.gz sbin &
	[1] 1238
	RIP bash# tar -czf bin.tar.gz bin &
	[2] 1239
	RIP bash# tar -czf proc.tar.gz proc #(aunque debería estar vacío :-) )
	RIP bash# tar -czf mnt.tar.gz mnt
	[01]  Done	tar -czf sbin.tar.gz sbin
	RIP bash# tar -czf lib.tar.gz lib
	[02]+ Done	tar -czf bin.tar.gz bin
	RIP bash# tar -czf initrd.tar.gz initrd
	RIP bash# tar -czf etc.tar.gz etc
	RIP bash# tar -czf dev.tar.gz dev
	RIP bash# cd /mnt/linux
	RIP bash# tar -xzf /mnt/oldlinux/sbin.tar.gz &
	[1] 1243
	RIP bash# tar -xzf /mnt/oldlinux/bin.tar.gz &
	[2] 1244
	RIP bash# tar -xzf /mnt/oldlinux/proc.tar.gz
	RIP bash# tar -xzf /mnt/oldlinux/mnt.tar.gz
	RIP bash# tar -xzf /mnt/oldlinux/lib.tar.gz
	[01]  Done tar -xzf /mnt/oldlinux/sbin.tar.gz
	RIP bash# tar -xzf /mnt/oldlinux/initrd.tar.gz
	RIP bash# tar -xzf /mnt/oldlinux/etc.tar.gz
	[02]+ Done tar -xzf /mnt/oldlinux/bin.tar.gz
	RIP bash# tar -xzf /mnt/oldlinux/dev.tar.gz
	RIP bash# rm -f /mnt/oldlinux/*.tar.gz

Ya solo quedan un par de detalles en la raiz del sistema. Concretamente, dos ficheros (no directorios):

	RIP bash# pwd
	/mnt/linux
	RIP bash# ln -s /boot/vmlinuz-2.4.18-bf2.4 vmlinuz
	RIP bash# mv /mnt/oldlinux/.qt .
	RIP bash# cd /mnt/oldlinux
	RIP bash# ln -s /mnt/pruebas/.qt .qt
	RIP bash# reboot

Bien, no tengo ni la más remota idea de por qué el directorio ".qt" aparece en la raíz de mi sistema. Se supone que no debería estar ahí, eso está claro, pero por algún motivo está. Prefiero no correr riesgos así que también lo muevo y lo convierto en un link. Cuando termine, ya me aseguraré de que hace ahí, e igual hasta lo quito. Pero de momento, daño no hace, y prefiero crearme los problemas de uno en uno. ;-)

Después de rebotar, compruebo que todo va bien. Mi viejo sistema se reinicia sin problemas. ¡ME ENCANTA QUE LOS PLANES FUNCIONEN!. :-)

¿Qué hemos conseguido hasta ahora?. Bueno, basta con echar un rápido vistazo para hacernos una idea:

	[lacofi@claudia lacofi]$ df -h
	S.ficheros          Tamaño Usado  Disp Uso% Montado en
	/dev/hda2             5.0G   82M  4.9G   2% /
	/dev/hda6              10G  5.0G  5.0G  50% /mnt/virtuales
	/dev/hda7             4.0G  2.0G  2.1G  48% /mnt/extra
	/dev/hda8             9.8G  8.3G  1.5G  85% /mnt/pruebas
	/dev/hda1              86M   34M   52M  40% /boot
	[lacofi@claudia lacofi]$  

Como podemos ver, la partición "hda2" está ya prácticamente vacía. Por el contrario, la partición "hda8" contiene casi todo linux, más de 8 Gb en total. Veámoslo con más detalle:

	[lacofi@claudia lacofi]$ ls -Fohl /
	total 55k
	drwxr-xr-x    2 root     2.1k ago 30 03:14 bin/
	lrwxrwxrwx    1 root       17 ago 30 19:29 boot -> /mnt/pruebas/boot/
	lrwxrwxrwx    1 root       18 ago 30 19:27 cdrom -> /mnt/pruebas/cdrom/
	drwxr-xr-x    9 root      35k ago 30 18:32 dev/
	drwxr-xr-x  146 root     9.4k ago 30 18:33 etc/
	lrwxrwxrwx    1 root       19 ago 30 19:33 floppy -> /mnt/pruebas/floppy/
	lrwxrwxrwx    1 root       17 ago 30 19:26 home -> /mnt/pruebas/home/
	drwxr-xr-x    2 root       48 nov  1  2002 initrd/
	drwxr-xr-x    5 root     3.1k abr 14 00:40 lib/
	drwxr-xr-x   18 root      472 ago 30 20:25 mnt/
	lrwxrwxrwx    1 root       16 ago 30 19:40 opt -> /mnt/pruebas/opt/
	dr-xr-xr-x  111 root        0 ago 30 20:31 proc/
	lrwxrwxrwx    1 root       17 ago 30 19:41 root -> /mnt/pruebas/root/
	drwxr-xr-x    2 root     3.3k ago 30 03:15 sbin/
	lrwxrwxrwx    1 root       16 ago 30 19:42 tmp -> /mnt/pruebas/tmp/
	lrwxrwxrwx    1 root       16 ago 28 20:45 usr -> /mnt/pruebas/usr/
	lrwxrwxrwx    1 root       16 ago 30 19:20 var -> /mnt/pruebas/var/
	lrwxrwxrwx    1 root       25 nov  1  2002 vmlinuz -> boot/vmlinuz-2.4...
	[lacofi@claudia lacofi]$ ls -Fohl /mnt/pruebas
	total 67k
	drwxr-xr-x    2 root     2.1k ago 30 03:14 bin/
	drwxr-xr-x    3 root      480 ago 15 20:02 boot/
	drwxr-xr-x    2 root       48 nov  1  2002 cdrom/
	drwxr-xr-x    9 root      34k ago 30 15:31 dev/
	drwxr-xr-x  146 root     9.4k ago 30 15:31 etc/
	drwxr-xr-x    2 root       48 nov  1  2002 floppy/
	drwxr-xr-x    7 root      168 may 27 02:43 home/
	drwxr-xr-x    2 root       48 nov  1  2002 initrd/
	drwxr-xr-x    5 root     3.1k abr 14 00:40 lib/
	drwxr-xr-x   18 root      472 jul 19 03:10 mnt/
	drwxr-xr-x   12 root      352 ago  4 02:18 opt/
	drwxr-xr-x    2 root       48 feb  8  2002 proc/
	drwxr-xr-x   44 root     2.6k ago 30 15:24 root/
	drwxr-xr-x    2 root     3.3k ago 30 03:15 sbin/
	drwxrwxrwt   12 root      480 ago 30 20:48 tmp/
	drwxr-xr-x   15 root      384 ago 28 20:38 usr/
	drwxr-xr-x   17 root      408 feb 16  2003 var/
	lrwxrwxrwx    1 root       26 ago 30 21:16 vmlinuz -> /boot/vmlinuz-2.4...
	[lacofi@claudia lacofi]$ 

O sea, en "hda2" ya solo nos quedan unos cuantos links y directorios esenciales, mientras que en hda8 tenemos ya un linux duplicado y operativo, en cuanto le digamos al sistema cómo debe arrancarlo.

Y eso lo haremos, naturalmente, modificando LILO y fstab. Pero eso quedará para otro día. :-D

01/09/2003

En realidad, lo que queda son ya dos chorradas. De hecho, ni siquiera necesitamos el disco de rescate.

Bien, en primer lugar entramos como root y editamos el fichero /mnt/pruebas/etc/fstab. Cambiamos las siguientes líneas:

	/dev/hda2 / 		reiserfs defaults 0 0
	/dev/hda8 /mnt/pruebas	reiserfs defaults 0 0

Por estas otra:

	# /dev/hda2 	/	reiserfs defaults 0 0
	/dev/hda8 	/ 	reiserfs defaults 0 0

Y ahora vamos a por /etc/lilo.conf.

	[lacofi@claudia lacofi]$ su
	password
	[root@claudia lacofi]# cd /etc
	[root@claudia etc]# cp lilo.conf lilo.conf.kalimero
	[root@claudia etc]# vim lilo.conf

Como veis, conviene hacer una copia de lilo.conf para poder retroceder sobre nuestros pasos. Lo mismo puede decirse de fstab. De todas formas, solo hay que cambiar una linea, la que está marcada en color cian:

	# /etc/lilo.conf - See: `lilo(8)' and `lilo.conf(5)',
	# ---------------       `install-mbr(8)', `/usr/share/doc/lilo/',
	#                       and `/usr/share/doc/mbr/'.

	lba32
	boot=/dev/hda
	install=/boot/boot-menu.b
	map=/boot/map
	delay=50
	message=/boot/message

	menu-scheme=wb:bw:wb:bw
			prompt
			timeout=100

	vga=788
	default=Debian

	image=/vmlinuz
        	label=Debian
        	root=/dev/hda8
        	read-only
        	append="hdc=ide-scsi hdd=ide-scsi max_scsi_luns=1"

Ahora ejecutamos lilo:

	[root@claudia etc]# /sbin/lilo
	Added Debian *
	[root@claudia etc]# cp lilo.conf /mnt/pruebas/etc/. 

Elemental. El directorio "/etc" estaba copiado, no linkado, así que en el próximo arranque, leerá la otra versión que está en /dev/hda8. Por eso conviene copiar lilo.conf al otro lado. ¿Queda algo por hacer?. ¿No?.

	[root@claudia etc]# reboot

Y ya está. En este arranque, /dev/hda2 ni siquiera se monta. Queda libre para instalar lo que queramos (BeOS, OS/2...). Pero esa es otra historia. :-)


  • Sintaxis HTML 4.01 comprobada
  • Enlaces comprobados


Hecho con gvim * Hecho con CSS