Instalar Debian GNU/Linux con Knoppix y debootstrap

Debian GNU/Linux 3.0 esta un poco anticuada, y puede ocurrir que el instalador de Debian Woody no detecte cierto hardware actual. Esto es un problema ahora mismo, si quieres instalar Debian Woody, por ejemplo, en un ordenador con una controladora de disco no soportada por el instalador.

Existe tres soluciones:

  • Recompilar bootfloppies y remplazar el kernel por uno más nuevo.
  • Compilar un modulo para el kernel del instalador de Woody.
  • Instalar el sistema base con Knoppix y debootstrap.

Sin duda la mejor opción es la última, además de ser más recomendable para instalar Debian Woody en un equipo moderno.

Necesitas un CD de Knoppix y si es posible acceso a un mirror desde la máquina. Reinicia tu máquina con el CD de Knoppix dentro. Knoppix detectará, normalmente, todo tu hardware automáticamente.

Una vez la máquina haya terminado de arrancar, comprueba las particiones de tus disco(s) duro(s) con fdisk.

knoppix# fdisk -l

Disk /dev/sda: 18.2 GB, 18200739840 bytes
255 heads, 63 sectors/track, 2212 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdb: 18.2 GB, 18200739840 bytes
255 heads, 63 sectors/track, 2212 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
knoppix#

Crea una partición (ó más), además de la típica partición de swap, y haz la partición raíz (/) bootable.

knoppix# fdisk /dev/sda

The number of cylinders for this disk is set to 2212.
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): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-2212, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2212, default 2212): +2048M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (251-2212, default 251): 
Using default value 251
Last cylinder or +size or +sizeM or +sizeK (251-2212, default 2212): +512M

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

Command (m for help): a
Partition number (1-4): 1

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.
knoppix#

Ahora selecciona un sistema de ficheros para la partición anteriormente creada y activa el espacio de intercambio (swap)

knoppix# mkfs.ext3 /dev/sda1 
mke2fs 1.35-WIP (21-Aug-2003)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1038336 inodes, 2074393 blocks
103719 blocks (5.00%) reserved for the super user
First data block=0
64 block groups
32768 blocks per group, 32768 fragments per group
16224 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

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

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
knoppix# mkswap /dev/sda2
Setting up swapspace version 1, size = 8496709 kB
knoppix#

Monta la nueva partición raíz (/) en /mnt e instala el sistema base con ayuda de debootstrap.

knoppix# mount /dev/sda1 /mnt
knoppix# debootstrap woody /mnt http://source.rfc822.org/debian
[...]
I: Base system installed successfully.
knoppix#

Cuando debootstrap termine, ejecuta base-config para preparar unas configuraciones básicas.

Actualización (gracias a Hasselhoff). Para tener el sistema configurado en el idioma que desees antes de ejecutar, base-config, haz lo siguiente:

apt-get install locales
dpkg-reconfigure console-data
[...]

Y ahora base-config :-)

knoppix# chroot /mnt
chroot# base-config
[...]

Cuando hayas terminado el paso anterior, permance en el entorno chroot, y copia /usr/share/doc/lilo/examples/conf.sample a /etc/lilo.conf y modifica según tus necesidades.

# /etc/lilo.conf: Sample LILO boot loader configuration.

boot=/dev/sda1
root=/dev/sda1
compact
install=/boot/boot.b
map=/boot/map
vga=normal
delay=20
image=/vmlinuz
        root=/dev/sda1
        label=Linux
        initrd=/initrd.img
        read-only

Ahora instala el paquete mkinitrd-tools y modifica /etc/mkinitrd/mkinitrd.conf y donde esta $ROOT pon tu nueva partición raíz (/) (la autodetección falla en el entorno chroot). Este paso solo es necesario si quieres instalar un kernel de Debian.

chroot# apt-get install initrd-tools
Reading Package Lists...
Building Dependency Tree...
The following extra packages will be installed:
  ash cramfsprogs zlib1g 
The following NEW packages will be installed:
  ash cramfsprogs initrd-tools zlib1g 
0 packages upgraded, 4 newly installed, 0 to remove and 1  not upgraded.
Need to get 150kB of archives. After unpacking 512kB will be used.
Do you want to continue? [Y/n] 
Get:1 http://ftp.de.debian.org stable/main ash 0.3.8-37 [71.6kB]
Get:2 http://ftp.de.debian.org stable/main zlib1g 1:1.1.4-1.0woody0 [44.1kB]
Get:3 http://ftp.de.debian.org stable/main cramfsprogs 1.1-3 [19.1kB]
Get:4 http://ftp.de.debian.org stable/main initrd-tools 0.1.32woody.3 [15.1kB]
Fetched 150kB in 0s (807kB/s)
Preconfiguring packages ...
Selecting previously deselected package ash.
(Reading database ... 6065 files and directories currently installed.)
Unpacking ash (from .../archives/ash_0.3.8-37_i386.deb) ...
Unpacking zlib1g (from .../zlib1g_1%3a1.1.4-1.0woody0_i386.deb) ...
Selecting previously deselected package cramfsprogs.
Unpacking cramfsprogs (from .../cramfsprogs_1.1-3_i386.deb) ...
Selecting previously deselected package initrd-tools.
Unpacking initrd-tools (from .../initrd-tools_0.1.32woody.3_all.deb) ...
Setting up ash (0.3.8-37) ...

Setting up zlib1g (1.1.4-1.0woody0) ...

Setting up cramfsprogs (1.1-3) ...

Setting up initrd-tools (0.1.32woody.3) ...

chroot#
# /etc/mkinitrd/mkinitrd.conf:
#  Configuration file for mkinitrd(8).  See mkinitrd.conf(5).
#
# This file is meant to be parsed as a shell script.

# What modules to install.
MODULES=most

# The length (in seconds) of the startup delay during which linuxrc may be
# interrupted.
DELAY=0

# If this is set to probe mkinitrd will try to figure out what's needed to
# mount the root file system.  This is equivalent to the old PROBE=on setting.
ROOT=/dev/sda1

# This controls the permission of the resulting initrd image.
UMASK=022

# Command to generate the initrd image.
MKIMAGE='mkcramfs %s %s > /dev/null'

Una vez terminado, monta /proc e instala el kernel (kernel-image-2.4.18-foo, donde foo es 386, 586tsc, 686, 686-smp, k6, k7, k7-smp) con apt-get, si prefieres un kernel más actual, puedes usar un kernel precompilado o un kernel de Backports (vas a necesitar una línea extra en tu sources.list en este caso, mira más abajo)

chroot# mount /proc /proc -t proc
chroot# apt-get install kernel-image-2.4.18-686                                  
Reading Package Lists...                                                            
Building Dependency Tree...                                                         
The following NEW packages will be installed:
  kernel-image-2.4.18-686 
0 packages upgraded, 1 newly installed, 0 to remove and 1  not upgraded.
Need to get 8696kB of archives. After unpacking 23.8MB will be used.
Get:1 http://ftp.de.debian.org stable/main kernel-image-2.4.18-686 2.4.18-5 [8696kB]
Fetched 8696kB in 2s (3938kB/s)
Selecting previously deselected package kernel-image-2.4.18-686.
(Reading database ... 6104 files and directories currently installed.)
Unpacking kernel-image-2.4.18-686 (from .../kernel-image-2.4.18-686_2.4.18-5_i386.deb) ...

You are attempting to install an initrd kernel image (version 2.4.18-686)
This will not work unless you have configured your boot loader to use
initrd. (An initrd image is a kernel image that expects to use an INITial 
Ram Disk to mount a minimal root file system into RAM and use that for
booting).
As a reminder, in order to configure lilo, you need to
add an 'initrd=/initrd.img' to the image=/vmlinuz
stanza of your /etc/lilo.conf
I repeat, You need to configure your boot loader. 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'll contitnue to see this message whenever you install a kernel 
image using initrd.
Do you want to stop now? [Y/n]n
Setting up kernel-image-2.4.18-686 (2.4.18-5) ...
/boot/initrd.img does not exist. Installing from scratch, eh?
Or maybe you don't want a symbolic link here. Hmm? Lets See.
I notice that you do not have initrd.img symbolic
link. I can create one for you, and it shall be
updated by newer kernel image packages. This is
useful if you use a boot loader like lilo.
Do you want me to create a link from /boot/initrd.img-2.4.18-686 to initrd.img?[Yn] 
/vmlinuz does not exist. Installing from scratch, eh?
Or maybe you don't want a symbolic link here. Hmm? Lets See.
Could not find where the current root file system is mounted!
Please make some arrangements for your system to boot the new
kernel (like running LILO, loadlin, SILO, QUIK, VMELILO, or  
getting a boot floppy).                                      
Please hit return to continue.                               
chroot#

Si quieres instalar un kernel más reciente, añade esta línea en tu sources.list:

deb http://www.backports.org/debian woody kernel-image-2.4.26-i386

Ahora instala kernel-image-2.4.26-1-foo como se muestra arriba. No ocurre nada si se necesita nuevos paquetes (initrd-tools y modutils), son necesarios para las imágenes del kernel recientes.

Lo último que tienes que hacer para terminar es rellenar /etc/hosts, /etc/resolv.conf, /etc/modules, /etc/fstab y /etc/network/interfaces con los valores adecuados en tu caso. Puedes usar y modificar los mismos archivos de Knoppix que ahora estas usando.

# /etc/hosts
127.0.0.1       localhost
192.168.1.2		rollcage.inittab.de		rollcage
# /etc/fstab
/dev/sda1       /               ext3    errors=remount-ro       0       1
proc            /proc           proc    defaults                0       0
# /etc/resolv.conf
search inittab.de
nameserver 192.168.1.1
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line.  Comments begin with
# a "#", and everything on the line after them are ignored.
tulip
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
        address 192.168.1.2
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        gateway 192.168.1.254

No olvides añadir initrd a lilo.conf y ejecutar lilo antes de salir del entorno chroot.

Esto es todo. Ahora puedes salir del entorno chroot, reiniciar la máquina y sacar el CD de Knoppix.

chroot# exit
knoppix# umount /mnt/proc
knoppix# umount /mnt
knoppix# reboot

Nota: Este artículo es una traducción libre del original en ingles Debian GNU/Linux Installation with Knoppix and debootstrap de Norbert Tretkowski. Se agradecen los comentarios.

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.

error en apt-get install locales

no puedo hacer que funcione ya que no me reconoce que que instale los paquetes que baje ya que al momento de chroot /mnt no tengo red para que apt-get busque e intale todo

como le puedo hacer esto gracias

Antes de base-config

Lo único que puedo comentar es que debes hacerlo antes, no después, de base-config.

Problema con Knoppix 3.4 y apt-get

Estimados:

Siguiendo el el procedimiento que proponen, intenté hacer un debootstrap, pero el proceso termino con errores.

Decidí hacer entonces una actualización de debootstrap con apt-get, pero es imposible, ya que knoppix posee el sitema de archivos RO.

Alguna solución??

Saludos!
Lucas

solucion

la solucion es simple, te bajas el paquete, lo descomprimes en cualquier parte, i despues puedes hacer un alias para que te ejecute el debootstrap nuevo con la variable DEBOOTSTRAP_DIR apuntando al sitio correcto.
no se si se entiende, por si acaso alli van los comandos que debes ejecutar

wget http://ftp.us.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.2.45_i386.deb
ar -p debootstrap_0.2.45_i386.deb data.tar.gz | gunzip | tar x
alias debootstrap='DEBOOTSTRAP_DIR=./usr/lib/debootstrap ./usr/sbin/debootstrap'

ten en cuenta que debes substituir los 2 puntos por el path completo del directorio actual si quieres cambiar de directorio antes de ejecutar debootstrap

suerte!

Re: Problema con Knoppix 3.4 y apt-get

No me hagas mucho caso, pero creo que todo el tema de debootstrap se tiene que hacer en algún dispositivo con escritura, como por ejemplo un disco duro. Quizás te has saltado algún paso, de todos modos te comento que funciona, yo personalmente no lo he probado. Suerte

Obviamente, estoy haciendo un

Obviamente, estoy haciendo un debootstrap sobre /dev/hda1.

Mi problema es otro... hasta el momento no he encontrado la manera de hacerlo limpiamente, que funcione y se ajuste como un guante.

Seguramente el debootstrap que viene por defecto en knoppix 3.4 sea viejo. El tema es que me es imposible actualizarlo :(. Hay alguna forma de hacerlo??

Saludos
Lucas.

Sin solución

Lo siento quizás alguien te responda pero yo no he probado esto y no sé exactamente a que te refieres. Suerte.

Muchas gracias por el artícu

Muchas gracias por el artículo. nunca había probado Debian.

Estoy siguiendolo y he tenido que resolver un tema a mano:
Al ejecutar base-config, falla porque el fichero /etc/resolv.conf está vacío.

Lo he resuelto con
cat /etc/resolv.conf > /mnt/etc/resolv.conf

(en mi knoppix /etc/resolv.conf es un enlace a /KNOPPIX/... , de esta manera no copio el enlace, que en el entorno chroot no funciona)

Todo para la comunidad

Muchas gracias por el artículo. nunca había probado Debian.

Pues me alegra horrores que por esta traducción estes usando, o por lo menos, probando Debian. Ya te darás cuenta que es una gran distribución. :-)

Al ejecutar base-config, falla porque el fichero /etc/resolv.conf está vacío.

Lo he resuelto con
cat /etc/resolv.conf > /mnt/etc/resolv.conf

Gracias por el detalle :-D

alguien ha probado con sarge?

intente instalar x este metodo debian sarge xo al hacer el debootstrap me da demasiados errores de dependencias.

Re: alguien ha probado con sarge?

No, de hecho ni lo he pensado. Este artículo esta orientado para Woody, y los cambios entre Sarge y Woody son bastante amplios para no funcionar con este método.

con sarge y hasta con sid

Yo lo hice hace unas semanas con Sid y en este preciso momento con Sarge.
Con Sid funcionó. Con Sarge supongo que también.

Recomiento hacer un apt-get update && apt-get install debootstrap para tener la versión más reciente y no tener que repetir el bootstraping de la distro en caso que falle.

Usuario de LinuxFromScratch

Gracias! Habeis hecho un buen trabajo y me ha dado una excelente idea para hacer mi propia Debian From Scratch. Linux From Scratch (www.linuxfromscratch.org) por si alguno no lo conoce es un proyecto que consiste en aprender como funciona GNU/Linux mediante un excelente libro que paso a paso te enseña a construir tu Sistema Operativo GNU/Linux desde la nada. El gran problema es la gestión de paquetes, aunque hay documentos y varias aplicaciones yo estoy enamorado de apt y dpkg. Ánimo!

Debian From Scratch

Gracias! Habeis hecho un buen trabajo y me ha dado una excelente idea para hacer mi propia Debian From Scratch. Linux From Scratch

De nada, un gusto colaborar con la comunidad. Por cierto tengo que darte una buena noticia para que te ahorres trabajo, y del bueno. Lo que comentas ya existe, se llama Debian From Scratch. Y con la maravillosa herramienta dfsbuild podrás hacer tu propia distribución para tu comunidad de vecinos :-D

Anda pues no lo sabia!

Gracias por el enlace. En la web de LFS en la zona de Hints hay un pequeño articulo para añadir apt y dpkg a LFS pero es bastante complicado y da muchos problemas, incluso el autor lo llama Debian From Scratch, pero no sabia que aparte de ese "hint" existia un proyecto mas potente, no se si sera del mismo autor pero la verdad que ahorra un BUEN TRABAJO como tu dices. Saludos!
P.D.: Escribo desde Lynx ya que estoy compilando la ultima LFS desde SVN ;) asi que disculpad si no sale muy legible.

Noticias semanales de Debian (DWN)

Gracias por el enlace. [...] ahorra un BUEN TRABAJO como tu dices.

De ná, por cierto, estas cosas se conoce leyendo las DWN, te lo recomiendo.

P.D.: Escribo desde Lynx ya que estoy compilando la ultima LFS desde SVN ;) asi que disculpad si no sale muy legible.

Perfecto, sin problemas.... jejeje :)

Un detalle...

Antes de hacer base-config yo haría:

apt-get install locales
dpkg-reconfigure console-data

para tener el sistema configurado en el idioma que desees antes de instalar el mogollón.

P.D.: jeje, voy y pongo este comentario en Barrapunto en vez ponerlo aquí, que es donde interesa. Lamento el crossposting.

Gracias por el detalle

para tener el sistema configurado en el idioma que desees antes de instalar el mogollón.

Muy buen detalle, lo olvidé completamente, como es un artículo originalmente en ingles no se preocupa por las locales. Lo añado al artículo.

P.D.: jeje, voy y pongo este comentario en Barrapunto en vez ponerlo aquí, que es donde interesa. Lamento el crossposting.

Ná, gracias a tí.

Enhorabuena

un articulo muy bueno, mi mas sincera enhorabuena :)
he tenido q usar este sistema varias veces, y la verdad, me tuve q buscar las habichuelas yo solito. menos mal q alguien lo ha documentado.

saludos

natxo, natxo.net

:)

Me parece un artículo muy bueno. Lo voy a intentar probar :)

Un saludo.

Re: Enhorabuena

un articulo muy bueno, mi mas sincera enhorabuena :)

Pues nada gracias de parte del autor, Norbert Tretkowski, y del traductor (el arriba firmante) :-)

he tenido q usar este sistema varias veces, y la verdad, me tuve q buscar las habichuelas yo solito. menos mal q alguien lo ha documentado.

Eso mismo digo yo, menos mal. Existen artículos muy buenos escritos en ingles y no dudaré en traducirlos y colgarlos aquí (con el consentimiento del autor, claro esta).

Documentación

Trinux dijo: "Existen artículos muy buenos escritos en ingles y no dudaré en traducirlos y colgarlos aquí (con el consentimiento del autor, claro esta)".

Además de traducir, que está muy bien y es MUY necesario, junto a los sitios por todos conocidos con documentación sobre Linux, me gustaría recomendar como fuente de inspiración y conocimiento Linux at IBM y, sobretodo y especialmente ya que hay magníficos artículos y tutoriales, developerWorks: Linux, también de IBM.

Saludos

Re: Documentación

fuente de inspiración y conocimiento Linux at IBM y, sobretodo y especialmente ya que hay magníficos artículos y tutoriales, developerWorks: Linux, también de IBM.

Sí, estos sitios ya los conozco. Pero como dijo alguien en barrapunto (o libertonia, no recuerdo) los de IBM España se podrían enrollar y traducirlos ellos mismos.... digo yo; pero desgraciadamente eso es pedir que la montaña vaya a Mahoma ¿no? :-/