Creando Su Propio Linux LiveCD
Author: Luc Parson Email: luc@[Link] Revision: Draft 0.4 Traduccion: Octavio Alfredo Toscano Flores 22 de Marzo del 2007
Indice general
1. Introducin o 1.1. Ambito . . . 1.2. Suposiciones 1.3. Referencias 1.4. Revisiones . 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5 6 7 7 7 7 8 9
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
2. Obteniendo el Software Requerido 2.1. Obteniendo el Linux Slackware . . . . . . . . . . . . . . . . . . . . . . 2.1.1. Accesando al Sitio Web de Slackware . . . . . . . . . . . . . . . 2.1.2. Descargando la Ultima Versin de Slackware . . . . . . . . . . . o 2.2. Obteniendo el LZMA compression patch para el Squash File System . . 2.3. Obteniendo el Squash File System Code . . . . . . . . . . . . . . . . . 2.3.1. Descargando SquashFS . . . . . . . . . . . . . . . . . . . . . . . 2.3.2. Determinando que Kernel de Linux puede SquashFS parchear . 2.4. Obteniendo la Ultima Versin del Kernel que SquashFS Puede Parchear o 2.5. Obteniendo los Linux-Live scripts . . . . . . . . . . . . . . . . . . . . . 2.6. Obteniendo Another Union File System (AUFS) . . . . . . . . . . . . . 3. Instalando Linux Slackware para el LiveCD 3.1. Creando el Ambiente LiveCD . . . . . . . . 3.2. Montando el Slackware CD . . . . . . . . . . 3.3. Instalando los Paquetes Base de Slackware . 3.4. Desmontando el CD de Slacware . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
4. Compilando el Kernel del Sistema completamente
5. Compilando el Kernel para el LiveCD 10 5.1. Creando el directorio temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2. Extrayendo todos los archivos necesarios para la compilacin del kernel y paro cheando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.3. Parcheando el kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.4. Compilando el kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6. Compilando los modulos externos (AUFS y SquashFS + LZMA) 13 6.1. Compilando e instalando AUFS . . . . . . . . . . . . . . . . . . . . . . . . . . 13 6.2. Compilando e Instalando SquashFS con LZMA . . . . . . . . . . . . . . . . . 14 7. Limpieza del entorno LiveCD 8. Instalando el Kernel en el entorno LiveCD 16 17
9. Creando el archivo LiveCD Image
18
Cap tulo 1 Introducin o
1.1. Ambito
El mbito de este documento es para proporcionar un manual de instalacin paso a paso, a o para crear un Linux LiveCD, basado sobre Linux Slackware.
1.2.
Suposiciones
Asumiendo, que antes de proceder con este documento, t tienes acceso a un ordenador que u actualmente tiene un sistema operativo linux, y que t ests familiarizado con la u a compilacin de un Kernel de Linux. o
1.3.
Referencias
Linus-Live scripts desde [Link] Slackware desde [Link] Linux Kernel desde [Link] SquashFS desde [Link] LZMA patches desde [Link] AUFS desde [Link]
1.4.
Revisiones
Cambios Creacin del documento (Draft 0.1) o Correcciones de unos cuntos errores tia pogrcos (Draft 0.2) a Revisado cada comando (Draft 0.3) Agregado el comando Idcong en la seccin o 9 (Draft 0.4). Corregido un error tipogrco a en un comando de la seccin 5 o Fecha el 10 de Marzo del 2007. el 12 de Marzo del 2007. el 15 de Marzo del 2007. el 22 de Marzo del 2007.
Nombre Luc Parson Luc Parson Luc Parson Luc Parson
Cap tulo 2 Obteniendo el Software Requerido
2.1.
2.1.1.
Obteniendo el Linux Slackware
Accesando al Sitio Web de Slackware
El primer paso para obtener el Slackware, es encontrar una web o ftp mirror site, que lleve a la ultima versin de la Distribucin Slackware de Linux. o o Para una lista de todos los mirror sites, visita http:// [Link]/getslack/
2.1.2.
Descargando la Ultima Versin de Slackware o
Desde los mirror sites obtenidos desde la seccin 2.1.1, seleccione su pa o el pa mas o s s cercano a usted, y luego seleccione un mirror site. Click sobre la direccin del mirror, y una lista de carpetas deber aparecer. o a Seleccione la ultima versin disponible que nalice con -iso. Ejemplo: o slackware-11.0-iso/ Dentro de la carpeta ISO, seleccione el primer disco. Ejemplo: [Link] Descarga este arhivo, y quem el ISO en un CD. e
2.2.
Obteniendo el LZMA compression patch para el Squash File System
Para la ultima versin de LZMA visita el siguiente sitio web: o http//:[Link]/ Baje con el Scroll cerca del fondo de la pgina donde indique So, where are the patches, a nally?. Debajo de esta seccin de click sobre LZMA SDK, y descargue este archivo. Hasta la o fecha actual el nombre del archivo es, [Link].bz2.
Tambin debajo de esta seccin de click sobre squashfs-lzma patches, y descargue e o este archivo. Hasta la fecha actual el nombre del archivo es [Link].bz2.(El nombre del archivo contendr la versin Squash FS File System, que es el patch con a o el que trabajaremos).
2.3.
2.3.1.
Obteniendo el Squash File System Code
Descargando SquashFS
Es obligatorio descargar la versin de SquashFS que complementa a la versin LZMA patch. o o Para la versin de SquashFS que complementa el LZMA compression patch, visite el o sitio web de SquashFS en la siguiente URL: [Link] Click sobre la ultima versin de SquashFS, o un poco ms abajo (adelante del parrafo) o a tu puedes dar click sobre download page. Para este documento el LMZA patch descargado fue [Link].bz2, por lo tanto nosotros descargaremos [Link].
2.3.2.
Determinando que Kernel de Linux puede SquashFS parchear
Desde el prompt de la consola, ejecuta el siguiente comando: tar zvft [Link], asumiendo que todos los archivos estn siendo a descargados en su directorio home. Encontrar la ultima versin del Kernel de Linux que Squash puede parchear. Ejemplo: o
drwxr-xr-x phillip/500 0 2007-01-15 [Link] squashfs3.2-r2/kernel-patches/linux-2.6.20/
Esto indica que podemos usar el Kernel 2.6.20 de Linux.
2.4.
Obteniendo la Ultima Versin del Kernel que SquashFS o Puede Parchear
Usando un navegador de web ir a la siguiente URL: [Link] Una lista de archivos deber mostrarse arriba sobre lo pantalla. Baje con el Scroll a la a ultima versin del Kernel que puede ser usada con SquashFS. Para el propsito de este o o documento el archivo [Link].bz2, fue descargado. (El tamao del archivo n fue de 41 Megas de tamao). n
2.5.
Obteniendo los Linux-Live scripts
Usando un navegador de web ir a la siguiente URL: [Link]
Click sobre download. Luego sobre el primer link debajo de la seccin 1, click sobre el link de la ultima versin o o Linux Live, y guardar el archivo [Link], en su directorio home. (El directorio home sera la direccin default). o Luego baje con el scroll al fondo de la pgina. El ultimo link ser un archivo de congua a racin del Kernel, que tiene muchas caracter o sticas de hardware permitidas por default. Estas sern ideales para hacer un LiveCD, como tu desees este CD para trabajar en a casi cualquier PC. Click sobre el .cong link, luego guarde este arhivo. Si tu tienes un navegador web con GUI, luego tu puedes hacer click en el botn derecho del mouse o sobre el .cong link, y seleccionar guardar como.
2.6.
Obteniendo Another Union File System (AUFS)
AUFS no viene en un tar o rpm, as que debemos utilizar CVS para obtenerlo. Desde el prompt mecanografea el siguiente comando: cvs -d:pserver:anonymous@[Link]:/cvsroot/aufs login luego presiona ENTER En el password prompt, simplemente presiona ENTER dejndolo en blanco. a Una advertencia en la conexin del cvs puede aparecer pues un archivo en su o directorio home puede no estar presente. NO HACER CASO DE ESTA ADVERTENCIA. Una vez que el prompt regrese al CVS, mecanografea lo siguiente: cvs -z3 -d:pserver:anonymous@[Link]:/cvsroot/aufs co aufs Luego presiona ENTER Esto crear un directorio llamado aufs, y descargara todos los archivos relacionados a para este proyecto dentro de este directorio. Una vez que el CVS este completado y regrese al prompt, podemos proceder a crear un [Link] con el siguiente comando: tar zcf [Link] aufs Luego presiona ENTER. El directorio AUFS puede ahora ser borrado con el siguiente comando: rm -rf aufs, as ahora tenemos un tar.
Cap tulo 3 Instalando Linux Slackware para el LiveCD
3.1. Creando el Ambiente LiveCD
Cualquier directorio puede ser usado para crear su LiveCD. Para este documento el directorio /live ser utilizado. Crear este directorio con el siguiente comando: a mkdir /live
3.2.
Montando el Slackware CD
Muchos paquetes tienen dependencias a librer pues expandiendonos ms all de este as, a a documento podr ser una prctica de prueba y error. a a Insertar el CD1 de Slackware dentro de su manejador de CD-ROM, luego montar el CD con el siguiente comando: mount -t iso9660 /dev/cdrom/mnt Si el comando anterior no trabaja, entonces su CD-ROM no esta correctamente linkeado al dispositivo cdrom. En este caso tu puedes ejecutar el siguiente comando para ver que dispositivo esta asociado con tu CD-ROM: dmesg | grep -i cd Busca en las l neas algo igual a esto: hdc: SAMSUNG DVD-ROM SD-616E, ATAPI CD/DVD-ROM drive hdd: HL-DT-ST GCE-8483B, ATAPI CD/DVD-ROM drive Ejemplo: Si el CD esta en el dispositivo SAMSUNG, entonces el siguiente comando montar el CD: mount -t iso9660 /dev/hdc /mnt, nota que el dispositivo hdc fue a utilizado.
3.3.
Instalando los Paquetes Base de Slackware
Ahora que los directorios estan creados y el CD esta montado, podremos continuar con la instalacin de los paquetes base de la distribucin Slackware. o o
Cambiate al directorio del CD de Slackware, tecleando el siguiente comando: cd /mnt Entrando a este directorio podremos mecanografear el comando: ls Slackware almacena todos estos paquetes en el directorio llamado Slackware, entremos a este directorio con el siguiente comando: cd slackware Los paquetes base son todos almacenados en el directorio a, que es lo que instalaremos. Entra a este directorio con el siguiente comando: cd a Instala todos esos paquetes dentro de nuesto entorno LiveCD, mecanografeando el siguiente comando: installpkg -root /live *.tgz Si tu estas ejecutando una distribucin que no tenga el comando installpkg tu puedes o siempre hacer el siguiente comando: cd /mnt/slackware/a; for | in *.tgz; do tar zxvf $i -C /live; done
3.4.
Desmontando el CD de Slacware
Al desmontar el cd tu debes primero salir del directorio donde el CD-ROM este montado, mecanografeando cd , t regresaras al directorio home. u Desmonta el CD con el siguiente comando: umount /mnt
Cap tulo 4 Compilando el Kernel del Sistema completamente
Como el linux Live CD utilizar Aufs y SquashFS+Izma como modulos, tendremos que a bootear dentro de la versin del kernel que el linux LiveCD usar. o a Verica tu actual versin del Linux Kernel mecanografeando uname -r. Para este o documento el Kernel 2.6.20 fue descargado (seccin 2.4) y ser utilizado para nuestro o a Linux LiveCD. Si uname -r reporta una versin diferente de Kernel, entonces tu tendras que compilar el o Kernel 2.6.20 del Sistema completamente. ESTO ES CR ITICO EN ESTA OCASION ASEGURATE QUE TU ESTES BOOTEANDO EN LA MISMA VERSION DEL KERNEL EN LA QUE EL LINUX LIVECD FUNCIONARA. Los pasos para compilar un nuevo kernel no sern tratados con est documentacin, como a a o algunas distribuciones linux var en pasos. Hay muchos Kernel Compiling HOWTOs an en el internet para muchas distribuciones diferentes de linux.
Cap tulo 5 Compilando el Kernel para el LiveCD
5.1. Creando el directorio temporal
Crea un directorio donde puedas construir el kernel que el LiveCD usar. Para este a documento el directorio /tmp/livecd ser utilizado. Para Crear este directorio mecaa nografea el siguiente comando: mkdir /tmp/livecd. Luego copia todos los archivos descargados en la seccin 2 dentro del directorio creado o recientemente. Ejemplo: cp /[Link] /tmp/livecd cp /[Link].bz2 /tmp/livecd cp /[Link].bz2 /tmp/livecd cp /[Link].bz2 /tmp/livecd cp /[Link] /tmp/livecd Una vez que todos los archivos sean copiados podremos cambiar a nuestro directorio temporal livecd. Mecanografea: cd /tmp/livecd para cambiar a este directorio.
5.2.
Extrayendo todos los archivos necesarios para la compilacin del kernel y parcheando o
Descomprime el LZMA SDK pero primero crea un directorio para el y descomprimelo dentro. Esto se puede hacer mecanografeando: mkdir lzma443 Luego descomprimelo con el siguiente comando: tar -C lzma443 -jxf [Link].bz2 Descomprime el paquete AUFS mecanografeando lo siguiente: tar zxf [Link] Descomprime el paquete SquashFS mecanografeando lo siguiente: tar zxf [Link] Descomprime los parches LZMA SquashFS pero primero crea un directorio para el y descomprimelo dentro. Esto se puede hacer mecanografeando: mkdir sqlzma-patch 10
Luego descomprimelo con el siguiente comando: tar -C sqlzma-patch -jxf [Link].bz2 Luego nalmente descomprime el kernel con el siguiente comando: tar jxf [Link].bz2
5.3.
Parcheando el kernel
Entra al directorio del kernel mecanografeando el siguiente comando: cd linux-2.6.20 Parchea los kernels AUFS mecanografeando los dos siguientes comandos: patch -p0 <../aufs/[Link] patch -p0 <../aufs/[Link] Parchea los kernels SquashFS utilizando el parche que esta localizado en el directorio de la versin del kernel usado mecanografeando el siguiente comando: o patch -p1 <../squashfs3.2-r2/kernel-patches/linux-2.6.20/squashfs3.2-patch Para este documento, el Kernel 2.6.20 de Linux fue utilizado, por lo tanto el parche dentro del directorio 2.6.20 fue utilizado. Puesto que los parches LZMA afectan ha ambos (LZMA y al kernel), es hora de salir del directorio de los kernels mecanografeando lo siguiente para ir un directorio atras: cd .. Ahora para los parches LZMA, que son el ultimo conjunto de parches que aplicar. En el prompt mecanografea los siguientes 3 parches mecanografeando uno a la vez: patch -p0 <sqlzma-patch/[Link] patch -p0 <sqlzma-patch/[Link] patch -p0 <sqlzma-patch/[Link]
5.4.
Compilando el kernel
Entre al directorio del Kernel de Linux mecanografeando el suguiente comando: cd linux-2.6.20. Si tu usas una versin diferente de kernel, asegurate de cambiarte a la versin del kernel o o 2.6.20. SI USTED CONFIGURA SU KERNEL, ASEGURESE QUE SQUASHFS ESTE PREPARADO! Para usar el archivo .conf que fue descargado en la seccin 2.5, simplemente copia el o archivo dentro del directorio actual. Si el archivo fue descargado en tu directorio home, que es la ubicacin default, mecanografea el siguiente comando: o cp /.cong
11
Luego ejecuta el siguiente comando para congurar el kernel y usar un antiguo archivo de conguracin: o make oldcong Luego para preparar el kernel haremos algunos scripts con el siguiente comando: make scripts Ahora para preparar el kernel, anteriormente compilado, mecanografea el siguiente comando: make prepare El kernel esta ahora listo para ser compilado. Podemos empezar compilando los modulos con el siguiente comando: make modules Luego instala los modulos en el entorno LiveCD con el siguiente comando: INSTALL MOD PATH=/live make modules install Ahora nalmente a compilar el kernel, con el siguiente comando: make bzImage
12
Cap tulo 6 Compilando los modulos externos (AUFS y SquashFS + LZMA)
Ahora volvamos al directorio temporal donde todos estos modulos fuern extra o dos en la seccin 5.1 mecanografea el siguiente comando: o cd /tmp/livecd
6.1.
Compilando e instalando AUFS
Entra al directorio AUFS con el siguiente comando: cd aufs Dos metodos de modicacin del Makele sern documentados aqu como cada uno o a , no es familiar con muchos comandos de linux. Es mejor comprender cules son los cama bios. 1. Mtodo uno, comando e En el prompt, mecanografea este extenso comando en una linea:
cat [Link] | grep -v CONFIG AUFS DEBUG= | grep -v CONFIG AUFS COMPAT= | sed s/KDIR=/KDIR=\/live/ > Makele
(Nota que este comando no inicia y no naliza, esto puede confundir a las personas). 2. Mtodo manual e Copia el Makele proporcionado con el siguiente comando: cp [Link] Makele Con tu editor de texto favorito, abre este archivo, luego has lo siguiente: En la l nea 19, Habr algo parecido a esto: a CONFIG AUFS DEBUG=y. Borra toda esta l nea. En la l nea 21, Habr algo parecido a esto: a CONFIG AUFS COMPAT= Borra toda esta l nea.
13
En la l nea 54, Habr algo parecido a esto: a DIR=/libmodules/$(shell uname -r)/build Cambie esta l nea para que se parezca a esto: DIR=/live/lib/modules/$(shell uname -r)/build Nota que /live fue simplemente insertado al principio del path, para indicar el entorno LiveCD. Compilar AUFS mecanografeando el siguiente comando: make Finalmente copia el mdulo del entorno actual del sistema, pero primero crea el direco torio del mdulo AUFS mecanografeando: o mkdir -p /lib/modules/2.6.20/kernel/fs/aufs luego copia el mdulo en este directorio con el siguiente comando: o cp [Link] /lib/modules/2.6.20/kernel/fs/aufs
6.2.
Compilando e Instalando SquashFS con LZMA
Los parches sqlzma compilarn todo lo necesario. Puesto que estar accesando a lzma, a a squashfs, y al kernel de linux, primero comenzaremos moviendo el parche al entorno temporal. Esto puede hacerse con los siguientes comandos: Primero nos aseguramos que estemos en el lugar correcto mecanografea: cd /tmp/livecd/sqlzma-patch Luego copia todos los archivos al entorno temporal con: cp * .. Luego cambia de directorio al entorno temporal con: cd .. De nuevo hay dos metodos para la modicacin del Makele. o 1. Mtodo de la l e nea En el prompt mecanografea los siguientes dos comandos: (Nota que la primera y la ultima cita tiene que ser removida desde este coman do para no confundir a alguin). e En el promt, mecanografea lo siguiente en una l nea:
cat Makele | sed s/ SqFs = .*/SqFs = fs\/squashfs/ | sed s/ KDIR=/KDIR = \/live/ > Makele2
Seguido por este comando: mv Makele2 Makele 2. Mtodo manual e Usando su editor de texto favorito, abra el archivo Makele. En la l nea nmero 18, Habr algo parecido a esto: u a SqFs = ${Squashfs}/kernel-patches/${kVer}/fs/squashfs Cambia esta l nea por esto: SqFs=fs/squashfs 14
En la l nea nmero 19, Habr algo parecidp a esto: u a KDIR=/lib/modules/$(shell uname -r)/build Cambia esta l nea por esto: KDIR=/live/lib/modules/$(shell uname -r)/build Luego guarda el archivo. Podremos ahora proceder a compilar SquashFS con compresin LZMA, mecanografeano do el siguiente comando: make Ahora para copiar los comandos mksquashfs y unsquashfs al entorno LiveCD, mecanografea: cp squashfs3.2-r2/squashfs-tools/{mk,un}squashfs /live/usr/bin Crea el directorio donde el mdulo squashfs residir en el actual sistema con el siguiente o a comando: mkdir -p /lib/modules/2.6.20/kernel/fs/squashfs Copia los mdulos LZMA en el directorio que fue creado para eso, con el siguiente o comando: cp lzma443/C/7zip/Compress/LZMA C/kmod/{sq,un}[Link] /lib/modules/2.6.20/kernel/fs/squashfs Luego copia el mdulo squashfs en el mismo directorio con lo siguiente: o cp linux-2.6.20/fs/squashfs/[Link] /lib/modules/2.6.20/kernel/fs/squashfs
15
Cap tulo 7 Limpieza del entorno LiveCD
Puesto que nosotros estamos usando el kernel ms reciente con el que Slackware ven a a por default, podemos remover los mdulos viejos que fuern instalados en la seccin 3, o o o con el siguiente comando: rm -rf /live/lib/modules/2.4.33 Luego remueve todos los archivos boot que fuern instalados por Slackware, como estos o son para el kernel 2.4.33 tambin. Remueve estos archivos con el siguiente comando: e rm -rf /live/boot/* Luego remueve los dos links simblicos en /live/lib/modules/2.6.20, pues estarn rotos o a una vez que el LiveCD sea booteado. rm /live/lib/modules/2.6.20/build rm /live/lib/modules/2.6.20/source
16
Cap tulo 8 Instalando el Kernel en el entorno LiveCD
Ahora volvamos al directorio temporal donde el cdigo del Kernel de Linux reside, con o los siguientes comandos: cd /tmp/livecd/linux-2.6.20 Copia el archivo kernel .cong al entorno LiveCD con el siguiente comando: cp .cong /live/boot Copia el archivo system map al entorno LiveCD con lo siguiente: cp [Link] /live/boot Copia el kernel compilado en el entorno LiveCD con lo siguiente: cp arch/i386/boot/bzImage /live/boot/vmlinuz
17
Cap tulo 9 Creando el archivo LiveCD Image
Regresa a tu directorio home con el siguiente comando: cd . Es siempre una buena prctica el linkear todas los librer compartidas en el entorno a as LiveCD antes de cada construccin. Esto se puede hacer ejecutando el siguiente comano do: chroot/live/sbin/ldcong Extraer los Linux-Live scripts, que fuern descargados en la seccin 2.5 en el directorio o o home con el siguiente comando: tar zxf [Link] Entra al directorio donde los Linux live scripts estn localizados mecanografeando: a cd linux-live-6.0.7 Abre el archivo .cong con tu editor de texto favorito. En la l nea 9, habr algo que comienza con: a LIVECDNAME= Cambia esta l nea por el nombre que quieras llamar a tu LiveCD. ejemplo: LIVECDNAME=foobar En la l nea 29, habr algo que comienza con: a ROOT= Cambia esta l nea a: ROOT=/LIVE Luego guarda el archivo. Para constru tu LiveCD corre el comando: r ./build Este ahora creara un dierectorio live date #### en tu directorio /tmp. El numero exacto ser mostrado cuando el script build este completado. Ejemplo: live data 6870 a Cambia de directorio a esta capeta. Ejemplo: cd /tmp/live data ????
18
Mecanografea ls y tu notaras dos directorios. Cambia al directorio LIVECDNAME que fue especicado antes. Ejemplo: cd foobar Luego crea el archivo ISO, ejecutando el comando: ./make [Link] El archivo ISO image ser localizado en /tmp con el nombre del LIVECDNAME espea cicado antes. Ejemplo: /tmp/[Link] Usa tu Software CD Writting/Recording favorito y quema este ISO a un CD. Bootea en cualquier sistema manejando este CD , y divirtete con tu propio Linux e Divirtete, agrega ms paquetes, has un LiveCD que este realmente fantstico y que e a a nadie haya hecho, y compartelo con cualquiera en la comunidad Linux.
19