Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Linux: Cómo actualizar y reconstruir el CD de instalación de Fedora Core 2
P: Encontré su página de actualización de RedHat 9. ¿Cómo creo un nuevo CD de instalación para Fedora Core 2 que ya contiene actualizaciones?
R: Al igual que RedHat 9, Fedora Core 2 proporciona todas las herramientas necesarias para realizar esta tarea. Por consistencia, dividimos nuestro procedimiento en los siguientes 6 pasos.
Dado que el controlador RAID DAC960 de Fedora Core 2 parece tener el mismo problema que el RedHat 9, también hemos incluido una solución para la unidad DAC en nuestro programa.
Paso 1: Preparación
Este programa no es adecuado para principiantes. Si encuentra esta documentación confusa, es mejor pedirle ayuda a un usuario experimentado de Linux.
En primer lugar, se requiere un entorno de construcción adecuado.
Necesita una computadora con Fedora Core 2 y 12 GB de espacio libre en el disco duro.
Los siguientes paquetes también deben instalarse desde el CD de instalación:
anaconda-10.0-5 anaconda-images-10-3 anaconda-help-9.92-1 anaconda-runtime-10.0-5
Debe ser superusuario (root) para continuar desde aquí. Supongamos que el comando se ejecuta desde el shell bash.
Encuentre una ubicación en su disco duro con el espacio necesario y escriba el siguiente comando:
export PYTHONPATH=/usr/lib/anaconda export PATH="$PATH:/usr/lib/anaconda-runtime" export FCBASE='pwd' mkdir -p $FCBASE/fedora/i386
Estos comandos crearán un área de preparación para usar y establecer algunas variables de entorno convenientes.
A continuación, descargue los ocho ISO de instalación desde el sitio web del proyecto Fedora Core al directorio $FCBASE/fedora.
Después de descargar el archivo ISO, debemos extraer su contenido en nuestro directorio de trabajo. Puedes hacer esto con el siguiente comando.
Para cada uno de los cuatro CD de instalación, haga lo siguiente:
mount -o loop FC2-i386-disc1.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt mount -o loop FC2-i386-disc2.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt mount -o loop FC2-i386-disc3.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt mount -o loop FC2-i386-disc4.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt
Para cada uno de los cuatro CD de origen, haga lo siguiente:
mount -o loop FC2-i386-SRPMS-disc1.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt mount -o loop FC2-i386-SRPMS-disc2.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt mount -o loop FC2-i386-SRPMS-disc3.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt mount -o loop FC2-i386-SRPMS-disc4.iso /mnt ; cd /mnt ; tar -cf - * | ( cd $FCBASE/fedora/i386/ ; tar -xpf - ) ; cd $FCBASE ; umount /mnt
Si todo va bien, puede borrar el archivo ISO de instalación. (¡Es posible que necesite espacio!)
Paso 2: Reparación de DAC960
Los siguientes pasos solo son necesarios si está intentando solucionar problemas de arranque con el controlador RAID DAC960. (El CD de instalación lanzado por el proyecto Fedora Core tiene un error que impide que Fedora Core 2 se instale en algunas computadoras).
Si desea omitir este paso, continúe con el paso 3.
Primero, recupere la última actualización de la fuente del kernel de Fedora Core 2 del sitio espejo de Fedora Core. (Al momento de escribir esta página: kernel-2.6.5-1.358.src.rpm)
Instale el RPM escribiendo:
rpm -i kernel-2.6.5-1.358.src.rpm
Vaya al directorio /usr/src/redhat/SOURCES y modifique las siguientes líneas en el archivo kernel-2.6.5-i586.config:
# CONFIG_X86_UP_APIC is not set
cambiarlo a:
CONFIG_X86_UP_APIC=y
A continuación, agregue la siguiente línea debajo de esta línea y guarde el archivo:
CONFIG_X86_UP_IOAPIC=y
Para mantener la compatibilidad con el disco de arranque RedHat original, debe editar el archivo SPECS/kernel-2.6.spec. Cambie las siguientes líneas en el archivo:
%define rhbsys %([ -r /etc/beehive-root ] && echo || echo .'whoami')
llegar:
%define rhbsys %([ -r /etc/beehive-root ])
Vaya al directorio /usr/src/redhat y reconstruya todos los RPM del kernel escribiendo:
rpmbuild -ba --target=i586 SPECS/kernel-2.6.spec
Esto llevará un tiempo, pero si todo va bien, debería haber un nuevo conjunto de RPM del núcleo en este directorio:
/usr/src/redhat/RPMS/i586
Reemplace el kernel BOOT en el directorio $FCBASE/fedora/i386/Fedora/RPMS con la actualización correspondiente en el directorio /usr/src/redhat/RPMS/i386. Para hacer esto, escriba el siguiente comando:
cp /usr/src/redhat/RPMS/i386/kernel-2.6.5-1.358.i586.rpm $FCBASE/fedora/i386/Fedora/RPMS/.
Paso 3: actualizaciones adicionales
Si es necesario en este momento, puede descargar las actualizaciones disponibles desde el sitio espejo de Fedora Core y reemplazar cada paquete RPM en el directorio $FCBASE/fedora/i386/Fedora/RPMS con su actualización.
Paso 4: Limpiar
El proceso de creación del CD original deja atrás muchos archivos. Estos archivos deben eliminarse con el siguiente comando:
find $FCBASE/fedora -name TRANS.TBL -exec rm -f {} ;
Paso 5: construir
La utilidad anaconda de Fedora Core 2 está algo rota, por lo que deberá descargar los siguientes scripts actualizados y colocarlos en el directorio $FCBASE. (Los pasos restantes dependen de que estos estén presentes).
- Construir e instalar
- generar lista
- orden de paquete
Si todo va bien, es hora de pasar a la fase de construcción.
Primero, necesitamos regenerar el archivo hdlist. Haga esto con el siguiente comando:
$FCBASE/genhdlist $FCBASE/fedora/i386
A continuación, cree nuestro archivo de pedido de paquetes emitiendo el siguiente comando:
$FCBASE/pkgorder $FCBASE/fedora/i386 i386 | tee $FCBASE/fedora/pkgfile.'date +%Y-%m-%d'
Ahora, actualice el archivo de instalación ingresando el siguiente comando:
$FCBASE/buildinstall --pkgorder $FCBASE/fedora/pkgfile.'date +%Y-%m-%d' --version 2 --product 'Fedora Core' --release 'Fedora Core 2' $FCBASE/fedora/i386
Paso 6: Crea el CD
Ahora que hemos terminado de construir, es hora de dividir los archivos en sus CD y crear una nueva ISO. El siguiente comando dividirá y recreará el archivo hdlist para cada CD:
RELEASE="Fedora Core 2 (Tettnang) with updates to $(date '+%Y-%M-%d %H:%m')" rm -rf i386-disc[1-9] splittree.py --arch=i386 --total-discs=8 --bin-discs=4 --src-discs=4 --release-string="$RELEASE" --pkgorderfile=$FCBASE/fedora/pkgfile.'date +%Y-%m-%d' --distdir=$FCBASE/fedora/i386 --srcdir=$FCBASE/fedora/i386/SRPMS --productpath=Fedora rm -f $FCBASE/i386-disc1/Fedora/base/hdlist* $FCBASE/genhdlist --withnumbers --fileorder $FCBASE/fedora/pkgfile.'date +%Y-%m-%d' $FCBASE/fedora/i386-disc[1234]
Finalmente, cree un script bash y ejecútelo usando los comandos que se enumeran a continuación. ¡Esto creará una nueva imagen ISO modificada que puede usar para instalar Fedora Core Linux!
#!/bin/sh myname="Joe Blow <joe@joe.blow>" bootimg="isolinux/isolinux.bin" bootcat="isolinux/boot.cat" distname="Tettnang" distvers="2" mkisopts="-R -J -T" bootopts="-no-emul-boot -boot-load-size 4 -boot-info-table" mydate="$(date '+%d %b %Y')" mkisofs $mkisopts $bootopts -V "Fedora Core $distver ($distname) UPDATED Disk 1" -A "Fedora Coret $distver ($distname) update created on $mydate" -P "$myname" -p "$myname" -b "$bootimg" -c "$bootcat" -x lost+found -o "$distname"-i386-disc1.iso i386-disc1 for i in 2 3 4 ; do mkisofs $mkisopts -V "Fedora Core $distver ($distname) UPDATED Disk $i" -A "Fedora Core $distver ($distname) update created on $mydate" -P "$myname" -p "$myname" -x lost+found -o "$distname"-i386-disc${i}.iso i386-disc${i} done for i in 1 2 3 4 ; do mkisofs $mkisopts -V "Fedora Core $distver ($distname) UPDATED Disk $i" -A "Fedora Core $distver ($distname) update created on $mydate" -P "$myname" -p "$myname" -x lost+found -o "$distname"-SRPMS-disc${i}.iso i386-disc$(( $i + 3 )) done