Instalar Debian en un sistema remoto

Éste tutorial es especialmente útil para aquellos que dispongan de un servidor al que no se puede tener acceso físico o es demasiado costoso desplazarse al lugar donde está alojado. A partir de una instalación cualquiera de Linux, instalaremos un nuevo sistema basado en Debian.

Necesitamos una partición que podamos usar para copiar los archivos del sistema base. Yo disponía de una partición swap de 2GB que es más que suficiente para instalar el sistema base (con alrededor de 200mb es suficiente). Así que prácticamente todo el mundo podrá hacer su instalación con la partición swap.

Lo primero que deberemos hacer es desmontar la partición de swap:
[root@lxb0751 root]# swapoff -a

Para empezar el proceso, debemos cambiar el tipo de la partición de Linux swap a Linux. Suponiendo que el disco es hda:

[root@lxb0751 root]# fdisk /dev/hda

Mostramos las particiones con 'p'.

Command (m for help): p

Disk /dev/hda: 20.0 GB, 20020396032 bytes
255 heads, 63 sectors/track, 2434 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 653 5245191 83 Linux

...
/dev/hda5 1912 2172 2096451 82 Linux swap


Una vez comprobada cual es nuestra partición swap (en este caso la 5), procedemos del siguiente modo (t, cambio de tipo de partición - partición 5 - tipo 83 (Linux)) :

Command (m for help): t
Partition number (1-7): 5
Hex code (type L to list codes): 83
Changed system type of partition 5 to 83 (Linux)

Por último, guardamos los cambios (w). A pesar de lo que diga, NO hay que reiniciar.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.


Creamos el sistema de archivos (ext3) en la nueva partición:

[root@lxb0751 root]# mkfs.ext3 /dev/hda5
mke2fs 1.32 (09-Nov-2002)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
262144 inodes, 524112 blocks
26205 blocks (5.00%) reserved for the super user
First data block=0
16 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.


Montamos la nueva partición en /deb, por ejemplo:
[root@lxb0751 root]# mkdir /deb
[root@lxb0751 root]# mount /dev/hda5 /deb

Si no se dispone de debootstrap en la instalación de Linux que queremos sustituir, debe instalarse para poder descargar el sistema base de Debian. He preparado con alien un par de paquetes de debootstrap, un rpm y un tgz. Lo más sencillo es bajar el rpm en http://www.gra2.com/shared/linux/, descomprimirlo, e instalarlo con rpm --install

[root@lxb0751 root]# wget http://www.gra2.com/shared/linux/debootstrap-0.2.45-0.2.i386.rpm
[root@lxb0751 root]# rpm --install debootstrap-0.2.45-0.2.i386.rpm

Una vez instalado debootstrap, instalamos el sistema base en /deb (usando el mirror de Debian de Switch para Woody). Woody no es la versión más nueva de Debian, lo sé, pero me daba problemas con Sarge. Actualizaremos más tarde.

[root@lxb0751 /]# debootstrap --arch i386 woody /deb http://mirror.switch.ch/ftp/mirror/debian/

En un par de minutos, estará instalado. Si aparece algún warning, ignóralo.

Antes de continuar, debemos copiar los archivos importantes de red en la nueva instalación.

[root@lxb0751 /]# cp /etc/resolv.conf /deb/etc/resolv.conf
[root@lxb0751 /]# cp /etc/hosts /deb/etc/hosts

Debemos copiar también la información de la interfaz de red, usando ifconfig (las dos primeras líneas) y route (la entrada default):

[root@lxb0751 /]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:D0:B7:B8:6A:AB
inet addr:128.142.65.59 Bcast:128.142.255.255 Mask:255.255.0.0


[root@lxb0751 /]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 128.142.1.1 0.0.0.0 UG 0 0 0 eth0


Editamos /deb/etc/network/interfaces
[root@lxb0751 /]# pico /deb/etc/network/interfaces

Con la información obtenida, el archivo quedará así:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 128.142.65.59
netmask 255.255.0.0
broadcast 128.142.255.255
gateway 128.142.1.1


Ahora ya podemos hacer chroot a la nueva instalación:

[root@lxb0751 /]# chroot /deb /bin/bash

Completamos la información sobre la tabla de particiones:
lxb0751:/# nano /etc/fstab

Suponiendo que la partición que usamos era hda5, quedará así:

/dev/hda5 / auto defaults 0 1
proc /proc proc defaults 0 0


Montamos /proc
lxb0751:/# mount /proc

Configuramos el host:
lxb0751:~# hostname lxb0751.cern.ch

Iniciamos la configuración del sistema base (entre otras cosas, asignamos el password de root):
lxb0751:~# /usr/sbin/base-config
Configuring the base system...

En la configuración de apt, seleccionamos http. No usamos dselect, no usamos tasksel. Finalmente, aparecerá algo así:

Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
console-tools-libs
The following NEW packages will be installed:
aptitude coreutils debconf-i18n dselect e2fslibs gcc-3.3-base initscripts libacl1 libattr1 libblkid1
libcomerr2 libconsole libdb1-compat libdb4.2 libdevmapper1.01 libgcc1 libgcrypt11 libgdbm3 libgnutls11
libgpg-error0 liblocale-gettext-perl liblzo1 libnewt0.51 libopencdk8 libpcap0.7 libsasl2
libsigc++-1.2-5c102 libss2 libstdc++5 libtasn1-2 libtext-charwidth-perl libtext-iconv-perl
libtext-wrapi18n-perl libuuid1 slang1a-utf8 sysv-rc zlib1g
94 packages upgraded, 37 newly installed, 1 to remove and 0 not upgraded.
Need to get 34.2MB of archives. After unpacking 39.6MB will be used.
Do you want to continue? [Y/n]
...
Fetched 34.2MB in 5s (6382kB/s)
Preconfiguring packages ...


Es seguro contestar por defecto a todas las preguntas de la instalación.

Do you want to erase any previously downloaded .deb files? [Y/n] y
Press enter to continue.

Select a number from 1 to 5, from the list above.
Enter value (default=`1', `x' to restart): 5

==============================================================================
Mail configuration skipped.


Una vez finalizada, debemos instalar ssh, haciendo especial hincapié en el servidor ssh (Do you want to run the sshd server? -> YES). De lo contrario no podremos acceder a la máquina.

lxb0751:~# apt-get install ssh locales

Igualmente importante es instalar detector, que detectará dispositivos, entre ellos, nuestra tarjeta de red.

lxb0751:~# apt-get install discover
...
Setting up discover (2.0.7-2.1) ...
Discovering hardware: e100


Instalamos uno de los kernel de Debian ya compilados. Más adelante podremos compilar uno.
lxb0751:~# apt-get install kernel-image-2.6-686

If you have already done so, and you wish to get rid of this message,
please put
"do_initrd = Yes"
in /etc/kernel-img.conf. Note that this is optional, but if you do not,
you will continue to see this message whenever you install a kernel
image using initrd.
Do you want to stop now? [Y/n]n
Install a partition boot block on partition /dev/hda5? [Yes] No


Comprobamos que el kernel y el initrd están en /boot:
lxb0751:/boot# ls
System.map-2.6.8-3-686 boot.b config-2.6.8-3-686 initrd.img-2.6.8-3-686 vmlinuz-2.6.8-3-686

Pasamos a configurar GRUB:
lxb0751:/boot# apt-get install grub

En este punto, debemos salir del chroot para poder instalar el nuevo sector de arranque:
lxb0751:/boot# exit
exit


Debemos copiar el kernel e initrd que instalamos previamente a /boot:

[root@lxb0751 /]# cp /deb/boot/initrd.img-2.6.8-3-686 /boot/
[root@lxb0751 /]# cp /deb/boot/vmlinuz-2.6.8-3-686 /boot

[root@lxb0751 grub]# pico /boot/grub/grub.conf

Deberá contener como mínimo lo siguiente (debe estar al principio del archivo) -comprobad que la versión del kernel sea el que indico, puede variar-:

default=0
timeout=10
title Debian 2.6
root (hd0,4)
kernel /boot/vmlinuz-2.6.8-3-686 root=/dev/hda5
initrd /boot/initrd.img-2.6.8-3-686


Con ésta configuración indicamos que inicie Debian 2.6, que está en /dev/hda5 (hd0,4), con la partición / en /dev/hda5, y con el kernel e initrd en el path que indicamos.

Instalamos grub con la nueva configuración:

[root@lxb0751 boot]# grub-install /dev/hda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.


Desmontamos las particions (usando -l):

[root@lxb0751 root]# umount -l /deb/proc
[root@lxb0751 root]# umount -l /deb

[root@lxb0751 root]# reboot

De nuevo conectados al sistema remoto, ya en el nuevo Debian, movemos la instalación a la partición original (suponiendo que la teníamos en /dev/hda1):

lxb0751:~# mkfs.ext3 /dev/hda1

Copiamos a la nueva partición:
lxb0751:~# dd if=/dev/hda5 of=/dev/hda1 bs=1024

Comprobamos que no haya ningún error en la partición:
lxb0751:~# e2fsck -f -y /dev/hda1

La partición destino tendrá el tamaño de la particíón origen, aunque la primera sea mucho más grande. Lo solucionamos con resize2fs:

lxb0751:~# resize2fs -p /dev/hda1

Ahora deberemos modificar de nuevo /etc/lilo.conf para adaptarlo a la nueva situación. Para ello debemos montar la nueva partición y modificar su lilo.conf:

lxb0751:~# mount /dev/hda1 /mnt
lxb0751:~# pico /mnt/etc/lilo.conf

/dev/hda1 / auto defaults 0 1
proc /proc proc defaults 0 0


lxb0751:~# umount /mnt

Debemos modificar también grub:
lxb0751:~# pico /boot/grub/grub.conf

default=0
timeout=10
title Debian 2.6
root (hd0,0)
kernel /boot/vmlinuz-2.6.8-3-686 root=/dev/hda1
initrd /boot/initrd.img-2.6.8-3-686


lxb0751:~# grub-install /dev/hda
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.


Reiniciamos de nuevo:
lxb0751:~# reboot

Una vez conectados de nuevo, borramos la antigua partición de swap y la volvemos a activar como swap:

lxb0751:~# fdisk /dev/hda
Command (m for help): t
Partition number (1-7): 5
Hex code (type L to list codes): 82
Changed system type of partition 5 to 82 (Linux swap)


lxb0751:~# mkswap /dev/hda5
lxb0751:~# swapon -a

En este punto, el sistema ya es completamente funcional y se puede proceder como se desee.





 


Trackback

Trackback URL for this entry:
http://www.gra2.com/trackback.php/instalar-debian-en-un-sistema-remoto

No trackback comments for this entry.

Comments

Post a comment

Dani, eres la caña, cada dia nos sorprendes mas. Me ha sido muy util la guia de instalar debian en un sistema remoto. Enhorabuena, sigue asi. Tambien felicitaciones por in.solit.us y muchas mas cosas. Eres un crack!

Anonymous on Friday, October 13 2006 @ 01:08 PM CEST Reply | #

Buena traduccion ....
seria bacan qe dejes el link del articulo original . (Y)

Anonymous on Sunday, December 03 2006 @ 09:03 PM CET Reply | #

El artículo no es una traducción, es la guía que escribí cuando necesité hacer una instalación remota.

---
www.gra2.com
in.solit.us: Upload and share your files

daniel on Sunday, December 03 2006 @ 11:36 PM CET Reply | #

Search



About

newton.gra2.com is a blog about technology, opinion and random thoughts written by Daniel Alvarez, a computer engineer currently living in Zurich, Switzerland.

Topics

News (20/0)
Manuals (24/0)
Security (7/0)
Music (3/0)
Weeklog (1/0)
Personal (34/0)
Photos (3/0)
Opinion (14/0)
Windows (5/0)

Blogroll

Pros i contres (Jordi)
Entrepa de fusta (Oriol)
Spaghetti Code (Isaac)
Made in net (Eric)
Nogare (Juan)
Blog de Isaac Jimenez
Web d'en Jaume Benet
Montcada Wireless (Fran)
Blog d'en Ricard Forniol
Angela Fabregues
in.solit.us

Libertad Digital
FOX News
The Wall Street Journal
The Washington Times
The Jerusalem Post

Michelle Malkin
Eurabian News
Nihil Obstat
Barcepundit
Expose the left
Davids Medienkritik
Johan Norberg
Ayaan Hirsi Ali

User Functions

:

:


Lost your password?

Latest posts

Stories

No new stories

Comments last 2 days


Trackbacks last 2 days

No new trackback comments

Links last 2 weeks

No recent new links