2-3: Linux en Disketes
P-Drok-Array
dr0k@0ri0n.org
Introduccion
El Objetivo de ese texto es dar a conocer como hacer una Mini-Distribucion de linux en disketes o simplemente unos discos de arranque pero con un minimo de aplicaciones.
Ustedes diran, para que nos sirve esto?, pues muy simple, imaginate que se te da~o tu Linux y que no puedes recuperarlo porque no puedes acceder a el pero entonces ya tienes unos super-discos de rescates (la cual trae editor de texto, compilador, etc) y con esto puedes salvar tu informacion; otra es crear o desarrollar una peque~a distribucion de Linux, que en vez de tenerla instalada la podrias arrancar desde varios disketes disquete.
La Idea!
Lo que vamos a hacer es simplemente agarrar un diskete y meter un kernel ya compilado, luego crear un filesystem, llenarlo de las aplicaciones que queramos y mandarlo a un segundo diskette. El primer diskete nos va a servir de guia y en vez de apuntar a un filesystem de un disco duro nos tendria que apuntar al de el diskette.
Que necesitamos?
- Dos Disketes, uno para el BOOT y el otro para el FileSystem.
- Una Computadora con Linux.
- Que el Kernel tenga Soporte para RamDisk y LoopBack.
- Por lo minimo, 4 Jarras de Cafe y una de Agua y una Cajetilla de Cigarros (Opcional).
- Mucha paciencia.
Pasos para la Construccion
1.- Lo primero que debemos hacer es hacernos un kernel de linux, que nos servira para arrancar el sistema. Debemos tener activado la opcion de ram disk support, y la opcion de loopback device support, tambien debemos incluir los modulos que vamos a utilizar (como una unidad ZIP, CD-ROM, Tarjetas de Red, DVD, Sonido, etc).
2.- Debemos hacer un File System, esta parte es la que nos consumira mas tiempo, El tama~o del file system dependera de la computadora que vayamos a usar, el cual sera de 4096 KB.
Para crearlo simplemente hacemos:
#dd if=/dev/zero of=/tmp/fs bs=1k count=4096 // Con esto creamos un
// archivo de 4 MB
// llamado filesystem
// en el direcorio /tmp
#mke2fs -m 0 /tmp/fs // Creamos un sistema de
// archivos ext2
#mount -t ext2 -o loop /tmp/fs /mnt/fs // Montamos el filesystem
// que acabamos de crear
3.- Ahora simplemente debemos incluir en el Filesystem los archivos a utilizar, aqui les dejo una lista de los archivos que pueden incluir:
bin:
- ksh
- more
- dmesg
- ps
- login
- sync
- mount
- umount
- kill
- setterm
- hostname
- telnet
- ping
- ftp
- tar
- killall
- chmod
- chown
- cp
- dd
- df
- du
- ls
- mkdir
- mv
- rm
- ln
- dircolors
- cut
- cat
- stty
- gzip
- domainname
- date@ -> ../sbin/clock
- less@ -> more
- sh
- gunzip@ -> gzip
- zcat@ -> gzip
- bash
etc:
- psdevtab
- inittab
- passwd
- motd
- fstab
- hosts
- termcap
- services
- rpc
- protocols
- networks
- mtools
- hosts.orig
- hosts.deny
- hosts.allow
- exports
- DIR_COLORS
- HOSTNAME
- resolv.conf
- inetd.conf
- ld.so.cache
- shells
- host.conf
- magic
- utmp
- group
- ld.so.conf
- mtab
- kernel
- issue
- profile
- fastboot
etc/rc.d:
- rc.inet
- rc.local
- rc.6
- rc.M
- rc.0
- rc.K
- rc.S
sbin:
- swapoff@ -> swapon
- telinit@ -> init
- reboot@ -> halt
- addswap => Ver Nota Abajo
- chkhd
- clock
- selection
- swapon
- update
- mkswap
- agetty
- init
- shutdown
- halt
- killall5
- ifconfig
- route
usr:
- adm@ -> ../var/adm
- usr/bin:
- mdeltree@ -> mtools
- mrd@ -> mtools
- mren@ -> mtools
- mcd@ -> mtools
- mmd@ -> mtools
- mcopy@ -> mtools
- mdel@ -> mtools
- mdir@ -> mtools
- mformat@ -> mtools
- who
- superformat
- loadkeys
- joe
- mtools
- uptime
- finger
- mcheck
- tput
- traceroute
- host
- split
- sleep
- setfont
- grep
- reset
- usr/sbin:
- ip
- spool@ -> ../var/adm
- usr/local:
- usr/local/bin:
- usr/local/lib:
- lynx.cfg
- usr/local/sbin:
- bootpc
usr/lib:
- es.map
- t.fnt
usr/lib/joe:
- joerc
usr/lib/terminfo:
usr/lib/terminfo/l:
- linux
usr/lib/terminfo/c:
- console
lib:
- libgpm.so@ -> libgpm.so.1
- libdl.so@ -> libdl.so.1
- ld-linux.so.1
- libtermcap.so.2
- libm.so.5
- libc.so.5
- libdl.so.1
- libgpm.so.1
- libtermcap.so.2
- libcurses.so.1
- ld.so
dev:
- /dev/cua0
- /dev/cua1
- /dev/cua2
- /dev/cua3
- /dev/hda1
- /dev/hda2
- /dev/hda3
- /dev/hda4
- /dev/hda
- /dev/hdb
- /dev/hdb1
- /dev/hdb2
- /dev/hdb3
- /dev/hdb4
- /dev/hdc
- /dev/hdc1
- /dev/hdc2
- /dev/hdc3
- /dev/hdc4
- /dev/ram
- /dev/ram0
- /dev/ram1
- /dev/ram2
- /dev/ram3
- /dev/ram4
- /dev/ram5
- /dev/ram6
- /dev/null
- /dev/console
- /dev/zero
- /dev/kmem
- /dev/mem
- /dev/tty0
- /dev/tty1
- /dev/tty2
- /dev/tty3
- /dev/tty4
- /dev/tty5
- /dev/tty6
- /dev/tty7
- /dev/ttyp0
- /dev/ttyp1
- /dev/ttyp2
- /dev/ttyp3
- /dev/ttyp4
- /dev/ttyp5
- /dev/ttyp6
- /dev/ttyp7
var:
- var/adm:
- utmp
- cron
- var/spool:
- var/spool/uucp:
- var/spool/locks:
- var/tmp:
- var/run:
- utmp
home:
- home/DrOk
Directorios Vacios:
- lost+found
- root
addswap: Simplemente creamos este archivo en /mnt/fs/sbin y le incluimos el siguiente script:
#!/bin/bash
MEM=2048
ARCH=/dev/ram1
dd if=/dev/zero of=$ARCH bs=1k count=$MEM
mkswap -c $DISP 2>/dev/null
sync 2>/dev/null
swapon $DISP 2>/dev/null
Tambien se puede determina en donde estan las librerias para los programa con:
#ldconfig -r hvlinux
Con esto conseguimos hacer una memoria virtual de tipo swap (de 2MB), podemos hacer el llamado de este fichero desde el archivo /mnt/fs/etc/rc.d/rc.S para que cada vez que utilicemos estos disketes el automaticamente cree la swap.
Editamos el archivo /mnt/fs/etc/inittab y colocamos las siguientes lineas:
id:3:initdefault:
si::sysinit:/etc/rc.d/rc.S
rc::bootwait:/etc/rc.d/rc.M
ca::ctraltdel:/sbin/shutdown -t3 -rf now
l0::wait:/etc/rc.d/rc.0
l6::wait:/etc/rc.d/rc.6
1::123:respawn:/sbin/agetty 38400 tty1 linux
2::123:respwan:/sbin/agetty 38400 tty2 linux
3::123:respwan:/sbin/agetty 38400 tty3 linux
Con respecto al archivo fstab podemos colocar lo siguiente:
/dev/ram0 / ext2 defaults 1 1
/dev/ram2 swap swap defaults 0 0
none /proc proc defaults 0 0
Si necesitamos mas megas en la ram solo ejecutamos el siguiente script
#!/bin/bash
MEM=2048 # Puedes cambiarlo por los megas que necesites
ARCH=/dev/ram3 # Podemos habilitar el ram3 hasta el ram6
dd if=/dev/zero of=$ARCH bs=1k count=$MEM
mkswap -c $DISP 2>/dev/null
sync 2>/dev/null
swapon $DISP 2>/dev/null
NOTA: La cantidad de memoria que deseas habilitar dependera a la ram que tengas instalado en tu maquina.
4. Ahora simplemente nos queda desmontar el filesystem y mandarlo al diskete y para ello hacemos el siguiente comando:
#umount /mnt/fs; cd /tmp; gzip -9 fs; dd if=fs.gz of=/dev/fd0 bs=1k
count=4096
NOTA: Este es el Segundo Diskete.
Ahora meteremos en el primer diskete una imagen ya compilada (por ejemplo) con:
#cd /boot; dd if=vmlinuz of=/dev/fd0
Listo, ahora nos queda decirle al kernel a que filesystem nos va a apuntar con:
#rdev /dev/fd0 /dev/fd0 // Para indicarle al Kernel que el ramdisk lo
// debe buscar en la fd0.
Y Listo, esto es todo, solo nos queda reiniciar y insertar el primer disco, y luego el nos pedira el segundo y ya tendremos una mini-distri de linux en dos disketes.
Aqui les dejo una Lista de Mini-Disribuciones de Linux, para que las Prueben, las hackeen y demas cosas:
- Brutalware > http://underground.cz/brutalware/
- cLIeNUX > http://metalab.unc.edu/pub/Linux/distributions/cLIeNUX/
- dLITE > http://opensrc.org/dlite/
- DLX > http://www.wu-wien.ac.at/usr/h93/h9301726/dlx.html
- DosLinux > http://www.tux.org/pub/people/kent-robotti/
- DragonLinux > http://www.dragonlinux.nu/
- Floppyfw > http://www.zelow.no/floppyfw/
- Floppix > http://www.algonquinc.on.ca/infosystems/macewal/floppix.html
- Fluf > http://www.upce.cz/~kolo/fluf.htm
- hal91 > http://home.sol.no/~okolaas/hal91.html
- HVLinux > http://hvlinux.sourceforge.net
- LOAF > http://www.ecks.org/loaf/
- Linux Router > http://www.linuxrouter.org/
- LSD > http://wwwcache.ja.net/dev/lsd/
- MicroLinux > http://linux.hr/microlinux/
- Monkey Linux > http://www.spsselib.hiedu.cz/monkey/
- muLinux > http://mulinux.nevalabs.org/
- PocketLinux > http://pocket-linux.coven.vmh.net/index.html.en
- Pygmy Linux > http://pygmy.penguin.cz/
- SmallLinux > http://smalllinux.netpedia.net/
- Tomsrtbt > http://www.toms.net/rb/
- Traveller's > http://members.xoom.com/ror4/tlinux/
- Trinux > http://www.trinux.org/
- Xdenu > http://xdenu.tcm.hut.fi/
- ZipSlack > http://www.slackware.com/zipslack/
FAQ's de este Texto
1. Cuando trato de montar el fs me da error, porque?.
R: Es porque no tienes activado la opcion de loopback en tu kernel.
2. He creado un FS grande y cuando trato trabajarlo en una computadora con menos de 8MB de Ram no me corre?, porque sucede esto?.
R: De Verdad que no se decirte porque pero a mi tambien me ha dado problemas, te recomiendo que hagas otro filesystem de 4MB y lo metas en otro disko y luego lo montes cuando este lista la distri.
3. Donde puedo conseguir mas informacion sobre esto:
R: En Linuxdocs.org, insflug.org, lucas.hispalinux.es, linuxhq.com
4. Que distribucion usa Usted?
R: Actualmente Slackware 7.1
Flames, Basura y otros quimicos enviarlos a /dev/null Comentarios Constructivos, Criticas, Opiniones y demas Vergas enviarlo a dr0k@0ri0n.org