20100618

Cómo crear un dispositivo USB de inicio de Syslinux compatible con Windows PE

Esta es la segunda parte de dos entradas explicando cómo hacer que funcionen discos USB de inicio que no utilicen Mac OS X para arrancar. Ahora hablaremos de cómo usar SysLinux para crear un menú de arranque con varias opciones, integrando en el mismo el arranque de Windows PE que habíamos hecho en la entrada anterior.

Elementos necesarios para crear el dispositivo de arranque:
VMWare Fusion o BootCamp
Windows instalado (o el mismo USB de Windows PE que habíamos creado), o Linux (instalado o en un CD "Live")
Dispositivo USB de almacenamiento compatible

Instrucciones:

Si este USB es nuevo, siguen siendo válidas las recomendaciones de la entrada anterior acerca de la compatibilidad para el arranque. Nosotros vamos a suponer que tenemos el mismo dispositivo que usamos la vez anterior, y que tiene Windows PE instalado.

Conectamos el dispositivo USB al Mac, y abrimos la aplicación Terminal. Vamos a "pelar" el sector de arranque de Windows PE a un fichero. Para ello, localizaremos el identificador de disco, por ejemplo usando el comando diskutil:
$ diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            215.8 GB   disk0s2
   3:       Microsoft Basic Data Windows                 33.9 GB    disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *250.1 GB   disk1
   1:        Apple_partition_map                         32.3 KB    disk1s1
   2:                  Apple_HFS Datos                   249.9 GB   disk1s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *500.1 GB   disk2
   1:        Apple_partition_map                         32.3 KB    disk2s1
   2:                 Apple_HFSX Time Machine            500.0 GB   disk2s2
/dev/disk3
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *4.2 GB     disk3
   1:                 DOS_FAT_32 UNTITLED                4.2 GB     disk3s1

En este caso, por ejemplo, vemos que se trata el disco 3, así que ahora, usando dd, copiamos los primeros 512 bytes, donde está el sector de arranque:
dd if=/dev/disk3s1 of=pe2.bss bs=512 count=1

Si hubiéramos querido hacer esto desde Linux habría sido similar (ajustando el disco de origen). Desde Windows también se podría hacer, pero usando mkbt.exe:
mkbt -c -x letra: .\pe2.bss (donde "letra" es la unidad USB)

Ahora copiamos el archivo con el sector de arranque (pe2.bss) al dispositivo USB, por ejemplo, en un nuevo directorio que llamaremos "syslinux".

Tambíen creamos un fichero de texto con la configuración para SysLinux, en la raíz del dispositivo, y que llamaremos syslinux.cfg. El fichero debe contener, al menos, algo como lo siguiente:
LABEL winpe
    MENU LABEL Windows PE
    KERNEL /syslinux/pe2.bss
    APPEND -
    TEXT HELP
    Arranque de Windows PE
    ENDTEXT

Es importante señalar, sobre todo si se usan acentos, en el fichero de configuración, que la codificación de texto es de MS-DOS - Occidental (DOS Latino 1).

Descomprimimos el archivo de SysLinux, localizaremos el ejecutable de Windows (normalmente en el directorio win32), y lo copiaremos en el dispositivo USB. Esto es para arrancar después desde el USB y hacer la instalación. También es posible hacerlo directamente desde Linux, con el ejecutable correspondiente, o desde una instalación de Windows (en VMWare o Boot Camp).

Arrancamos desde el USB (que aún tiene Windows PE) e instalamos SysLinux; desde el directorio donde hubiéramos copiado syslinux.exe (o bien desde la instalación de Windows o Linux, claro):
> syslinux.exe –f -m –d syslinux letra:  (donde "letra" es la unidad USB)

Esto reajustará el MBR y cambiará el sector de arranque, borrando el que había previamente de Windows PE. El proceso funciona sin problemas aunque hubiéramos arrancado desde Windows PE, porque este utiliza un disco RAM para funcionar, por lo que el dispositivo original de arranque queda libre completamente. De hecho, una vez iniciado Windows PE, podemos desconectar el USB y seguir trabajando únicamente con el disco en memoria.

Ahora es posible ampliar la configuración de syslinux.cfg incluyendo otras entradas, por ejemplo, usando memdisk para cargar una imagen de disquete, o instalando versiones de Linux Live como SystemRescueCD o Geexbox. También es posible crear un menú de inicio gráfico con la extensión vesamenu.c32.

2 comentarios:

  1. Hola amigo, bueno aca tratando de hacer cosas con mi mac al igual q vos, tengo la siguiente consulta con el modo de syslinux tambien hay q usar el PLoP Boot Manager? yo tengo un macboock Pro con procesador intel y me desiluciona que no pueda bootear desde usb, hoy con la cantidad de Live CD que se pueden cargar desde USB es lejos mucho mas practico y economico, soy nuevo en mac y vengo de windows asi q imaginate q no me es muy sencillo muchas tareas y ni hablar usar el terminal con la pilada de comandos, a todo esto muy bueno tu post y la verdad lo lleve a cabo solo a nivel practica, hice el procedimiento del syslinux, tengo refit instalado en mi mac vio el usb como disco pero no arranco, en sintesis y concretamente podrias crear un post de como hacer esto, que el USB sea booteable y poder arrancar Live CD y que al mismo tiempo el USB sea booteable tanto desde PCs como Mac?, Agradecido por tu tiempo y el de compartir cosas de mac dado que la informacion sobre mac son pocas en relacion a otros sistemas. Te dejo mi msn por cualquier cosa sepas de algun link como para llevar a cabo esta tarea. Desde ya gracias
    monfren10@hotmail.com

    ResponderEliminar
    Respuestas
    1. Hola
      por lo que yo se, los Mac pueden iniciar en modo EFI (el habitual), o en modo emulación de BIOS (para iniciar Windows). Sólo puede arrancar desde USB en modo EFI y en discos con un inicio tipo Mac OS X (disco con formato HFS y archivo EFI en el inicio). El modo emulación de BIOS sólo arranca desde CD/DVD o un disco duro interno.

      Por lo tanto, todo lo que estamos hablando en estas entradas (SysLinux, discos en FAT, etc.) no será aplicable para iniciar desde USB. Desconozco si será posible usar rEfit o similares para crear tu propio disco USB de inicio personalizado.

      Eliminar