Cómo preparar un drive USB para instalar CentOS
Este procedimiento ha sido probado con múltiples instalaciones pero puede no cubrir todas las eventualidades. Caveat instalador.
1. Motivación
Muchos sistemas nuevos, en particular netbooks y notebooks pequeñas, pueden no venir con unidad de CD o DVD; y una instalación por la red puede resultar difícil, impráctica o imposible, dependiendo de la conectividad de red y del soporte del instalador para el hardware de red disponible. Este procedimiento permite una instalación CentOS sin conectividad de red y sin otro medio de instalación que un dispositivo booteable USB y el disco del sistema destino.
2. Prerrequisitos
- Un sistema destino para la instalación que soporte el booteo desde medio USB. Esto puede necesitar ser configurado en el setup de BIOS.
- Un drive USB con suficiente capacidad para contener el medio de instalación (también llamado stick de memoria, pen-drive, flash drive, llave USB, etc.). CentOS 5.4 i386 cabrá en un drive de 4GB; x86_64 requiere más de 4GB. Una instalación mínima con el CD #1 será posible con un drive de 1GB. La misma técnica puede ser usada con un disco rígido USB. Se asume que este procedimiento será realizado dentro de un ambiente GUI (GNOME, KDE, etc.), de manera que el medio USB se automontará.
Un sistema Linux en funcionamiento (posiblemente otra computadora con Linux instalado, corriendo desde un Live CD, o en una máquina virtual) con syslinux (hacer yum install syslinux o instalar usando el administrador de paquetes nativo para la distribución, si no está ya instalado). El autor encontró problemas usando el paquete syslinux de CentOS-5.3/5.4. El paquete provisto por el repositorio CentOS LiveCD Tools funcionó correctamente.
- Un conjunto de imágenes ISO de CDs de instalación de CentOS, o la imagen ISO del DVD, para la arquitectura deseada.
Puede ser necesario cambiar nombres de dispositivo, arquitectura y/o caminos de syslinux de acuerdo a su distribución, situación y preferencias.
¡Tenga precaución al copiar y pegar los comandos que se detallan abajo, y adáptelos a su situación!
3. Procedimiento
Supongamos que el drive USB aparece como /dev/sdg (adapte a su situación, muy probablemente será diferente) y estamos instalando CentOS 5.4 i386.
Hágase usuario root. En el medio USB, cree una partición VFAT pequeña (con 10MB alcanzará) y una partición Linux grande. Haga activa la partición VFAT.
fdisk /dev/sdg
Debe verse algo así cuando esté hecho:Disk /dev/sdg: 7948 MB, 7948206080 bytes 81 heads, 10 sectors/track, 19165 cylinders Units = cylinders of 810 * 512 = 414720 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdg1 * 1 65 26320 b W95 FAT32 /dev/sdg2 66 19165 7735500 83 Linux
- Haga los sistemas de archivo:
mkfs.vfat -n BOOT /dev/sdg1 mkfs.ext2 -m 0 -b 4096 -L DATA /dev/sdg2
- Desconecte y reconecte el medio USB. Las particiones deben montarse bajo /media/BOOT y /media/DATA.
- Copie la o las imágenes ISO de CentOS a la partición ext2. Para ISOs de CD, será:
cd /dir/of/iso/images mkdir /media/DATA/centos mkdir /tmp/cdimage mount -ro loop CentOS-5.4-i386-bin-1of6.iso /tmp/cdimage cp *sum* /media/DATA/centos for i in 1 2 3 4 5 6; do cp -v CentOS-5.4-i386-bin-${i}of6.iso /media/DATA/centos/; sync; done cd /media/DATA/centos grep of6 sha1sum.txt | sha1sum -c - CentOS-5.4-i386-bin-?of6.iso
Para medios DVD reemplace el lazo for de arriba, y las siguientes dos líneas, con:
cp -v CentOS-5.4-i386-bin-DVD.iso /media/DATA/centos/; sync cd /media/DATA/centos grep DVD sha1sum.txt | sha1sum -c - CentOS-5.4-i386-bin-DVD.iso
- Instale y configure syslinux en la partición VFAT y MBR:
syslinux -s /dev/sdg1 dd if=/usr/share/syslinux/mbr.bin of=/dev/sdg cd /media/BOOT cp -rv /tmp/cdimage/isolinux syslinux mv syslinux/isolinux.cfg syslinux/syslinux.cfg rm -f syslinux/isolinux.bin umount /tmp/cdimage <su editor favorito> syslinux/syslinux.cfg
Agregue las instrucciones append en las diversas secciones:
method=hd:sda2:/centos
Para usar kickstart:ks=hd:sda2:/ks.cfg method=hd:sda2:/centos
Use la GUI para extraer con seguridad el medio USB. Vaya al sistema destino, arranque e instale.
4. Notas
Para información general vea la Guía de Instalación.
Durante la prueba de este procedimiento, algunos medios MicroSDHC fallaron y mostraron errores de escritura para todas las imágenes ISO, aun luego de reparticionar y reformatear. Otros medios similares de un fabricante diferente funcionaron bien. Si aparecen errores pruebe con medios diferentes, o reformatee y pruebe de nuevo. El programa para Windows SDHC Formatter ha sido muy útil para medios SD que se rehusaban a cooperar. Use la opción de formato completo con borrado y ajuste de tamaño, no la opción rápida. {{{Format type - FULL(Erase ON)
Format size adjustment ON }}}
- Puede ser necesario usar las ISO de los CDs, ya que algunos usuarios han informado que la imagen del DVD se ha corrompido en el medio USB. Para el autor, tanto las imágenes de CD como de DVD funcionaron.
- El intento de instalar con medios USB protegidos para escritura genera numerosos mensajes de error relacionados con la protección de escritura. No se intentó proseguir con la instalación más allá de estos mensajes.
Durante la instalación, verifique que el instalador Anaconda escriba el registro de arranque en la ubicación correcta, y no sobre el drive USB. Probablemente será necesario usar las "Opciones de cargador de arranque avanzadas" de GRUB y cambiar el orden de los dispositivos, de manera que el dispositivo destino se muestre al tope de la lista, asegurando así la instalación correcta de GRUB. Si esto no se hace, el cargador GRUB será instalado sobre el medio USB, inutilizándolo sin recuperar el MBR syslinux, y dejando el sistema imposible de arrancar. Si se encuentra en este problema, vea el artículo Cómo reinstalar el código de arranque (GRUB).
Un agradecimiento a John Doe por el material básico aportado en el siguiente envío a la lista de correo de los usuarios de CentOS: http://lists.centos.org/pipermail/centos/2009-June/077860.html
Comentarios del remitente original:
Hum, error mío... Yo uso un archivo kickstart y olvidé que tuve que usar la línea siguiente en él (y uso controladores RAID de HP):
bootloader --driveorder=cciss/c0d0,sda --location=mbr
Para el kickstart, uso lo siguiente:
- En syslinux/syslinux.cfg:
append initrd=initrd.img ks=hd:sda2:/ks.cfg method=hd:sda2:/centos
- En /media/DATA/ks.cfg (en sus respectivas secciones):
harddrive --partition=sda2 --dir=/centos ignoredisk --drives=sda bootloader --driveorder=cciss/c0d0,sda --location=mbr
Y, para ser honesto, no debería recibir crédito por esto; encontré la mayor parte de la información en la Web... ^_^
Yo también informé anteriormente que:
- Mi servidor HP aparentemente no acepta arrancar de una llave USB protegida contra escritura.
- Anaconda trata de recuperar el archivo ks.cfg demasiado antes... Una vez que la detección ha terminado (unos 2 o 3 segundos más tarde), si reintento, funciona.
Hay un mensaje de error "cannot mount read/write, will mount read-only" (no puedo montar para lectura/escritura, montaré sólo lectura). (Prefiero proteger contra escritura)
5. Alternativas
UNetbootin ofrece ejecutables para Windows y para Linux y permite crear medios USB booteables para varias distribuciones Linux, incluyendo CentOS.
Una forma alternativa si no se dispone de red, es arrancar de una imagen diskboot.img en un medio USB, tal como se documenta en la Guía de Instalación, y hacer una instalación con imágenes ISO al disco rígido del sistema destino.
El original inglés de esta página fue creado y es mantenido por PhilSchaffner. Los demás colaboradores del Wiki con derechos de edición están invitados a hacer correcciones o adiciones. Otros lectores con comentarios pueden encontrar información de contacto en mi página Wiki.