sudo: Jack of all trades, master of some

bootify 0.2.1: prepara tus dispositivos USB autoarrancables con Windows 7/8 desde Linux

23 comentarios

bootify es un script de Bash para preparar dispositivos USB drives
auoarrancables con los archivos de instalación de Windows 7/8. Puede ser usado para sistemas boot o UEFI.

Dependencias

Asegúrate de que las siguientes herramientas estén disponibles en tu sistema:

Uso

Asegúrate de que bootify.sh sea ejecutable: chmod +x bootify.sh

sudo ./bootify -d [DEVICE] -s [boot|uefi] -i [ISO]

Observaciones

No tengo el tiempo ni los conocimientos suficientes para hacer una GUI. Si alguien está interesado en hacerlo, estoy seguro que sería beneficioso para muchos.
Necesito todo el feedback posible para hacer el script fiable y efectivo.

Descargas

Comentarios desactivados
  1. Ernesto Tur Laurencio 5 años atrás

    Desde ya seguiré la entrada muy de cerca pues muchas veces me encuentro en escenarios donde lo único que tienes a mano son el ISO de Win7 y una PC con DGNU/Linux ;)

    Salu2

  2. En el transcurso del día te envío un prototipo que hice con PyQt5.

    1. @Ozkar

      Chequea esta revisión que está ‘más completa’

      1. @oneohthree

        Si, el prototipo será no-funcional, UI y va que chifla :D

  3. Ostias!, yo tambien quiero ayudar, de hecho quiero ayudar en algo, no tengo nada que hacer. Programo lo que sea en el lenguaje que sea(Excepto Basic/VisualBasic no lo soporto).
    umm. No puedo llegar hasta github!

    1. @ddt

      En el post está adjunto el script.

  4. Mijito, dale suave con las actualizaciones. ;-D

    1. @Ozkar

      HAHAHA, estas eran NECESARIAS.

      1. @oneohthree

        Se, ya las estoy revisando, btw, en Fedora isoinfo es iso-info :D

        1. @Ozkar

          Damn it! no existe ni siquiera un alias?
          Me parece que son dos comandos diferentes pero que hacen lo mismo. Tengo que verificar eso.

        2. @Ozkar

          Sí, son diferentes. isoinfo es isoinfo en cualquier lado :D

  5. barlows 5 años atrás

    hi! ante todo agradecerle por la existencia de este blog lo reviso con regularidad (no tengo conectividad todos los días) y me ha sido de mucha ayuda como otras iniciativas que andan por nuestra red.

    Traté de utilizar el bootify (la versión que aquí publica pues github es un sueño) y presenté problemas con él en una box con KUbuntu 14.04 pues en la orden

    lsblk

    las columnas que recibe el switch “-o” se deben escribir en mayúsculas y no tiene la columna TRAN ni VENDOR. Otro aspecto del que me percaté es que los comandos mkfs.* y parted se encuentran bajo el directorio /sbin.

    me tomé la libertad de modificar su idea por la inminente necesidad de reolverle a mi amigo. Eliminé las consultas a TRAN y VENDOR y en su lugar utilicé RM que pegunta si el dispositivo es removible y acutalicé las rutas de las órdenes bajo /sbin con ests arreglos funcionó de maravillas.

    ¿Bajo que versión ud hizo el script? ¿qué valores devuelve la columna TRAN?. La versión del kernel por si es de ayuda es la 3.13, tampoco sé si en la versión del script que publica en github toma esto en consideración pero si no lo hae considero que debería actualizar este script que de por sí está bien interesante.

    saludos

    1. @barlows

      Esto que escribe significa mucho para mí. La idea del script es precisamente esa, que todos puedan aportar algo.

      ¿Bajo que versión ud hizo el script? ¿qué valores devuelve la columna TRAN?.

      Uso Arch Linux por lo tanto es ese momento era la versión 4 del kernel.
      TRAN: device transport type.

      Sería bueno que publicara aquí los cambios hechos para que todos nos beneficiemos con ellos y yo actualizar el script en ambos lados.

      Lo mejor sería un pull request pero como no tienes acceso a GitHub es una pena.

      1. barlows 5 años atrás
        @oneohthree

        ok, como le comentaba no me conecto con regularidad pero en la noche le prometo que le publico los cambios que realicè para poder usarlo.

  6. barlows 5 años atrás

    Lo prometido es deuda, aquí le dejo los cambios realizados. Solo publicare donde hubo cambios no dispongo de mucho tiempo de conexion

    1: Elimine las columnas TRAN y VENDOR porque en mi sistema no las trae y en lugar de usar TRAN para verificar si es un dispositivo removible utilice RM que devuelve 1 en caso que lo sea y 0 en su defecto.


    function available_devices
    {
    lsblk -ndo NAME,MODEL,SIZE,RM | grep 1 | tr -s " " " "
    }

    2: En esta otra funcion solo actualice las rutas a las ordenes

    function mbr_part()
    {
    BTS="res/bootstrap"
    /sbin/parted -s -a optimal $DEV mktable msdos mkpart primary ntfs 1 100% set 1 boot
    /sbin/mkfs.ntfs -f -L BOOTIFY ${DEV}1
    dd if=$BTS of=$DEV > /dev/null 2>&1 || { echo "Error injecting bootstrap" 1>&2; exit 1; }
    copy_files
    }

    3: Idem 1

    function confirm()
    {
    DSC=$(lsblk -ndo MODEL,SIZE $DEV | tr -s " " " ")
    read -p "$DSC is going to be formated. Do you want to continue? (Y/N)" YN
    if [[ "$YN" == [Yy] ]]
    then
    true
    elif [[ "$YN" == [Nn] ]]
    then
    exit 0
    else
    echo "Please, use 'Y' or 'N'"
    confirm
    fi
    }

    4: Idem 2

    DEP="dd isoinfo lsblk /sbin/mkfs.ntfs /sbin/mkfs.vfat /sbin/parted sha1sum stat 7z"
    for D in $DEP
    do
    type $D > /dev/null 2>&1 || { echo "$D is not ready" 1>&2; exit 1; }
    done

    5: En este caso Pregunte si era un dispositivo removible con RM


    if [[ -z $(lsblk -ndo RM $DEV | grep 1) ]]
    then
    echo "$DEV is not a USB device" 1>&2
    exit 1
    fi

    6: Idem 2, par poder preguntar por la capacidad

    if [[ $(stat -c %s $ISO) -gt $(lsblk -ndbo SIZE $DEV) ]]
    then
    echo "The device capacity is insufficient" 1>&2
    exit 1
    fi

    al final no son la gran cosa pero son los cambios que tuve que realizar para poder “bootifiar” en mi Ubuntu. Al parecer tendra que indagar como es este proceso en otras distribuciones para poderlo estandarizar. Tengase en cuenta que no se nada de BASH Programming de hecho “ud no sabe como yo le envidio que ud sepa tocar la trompeta”

    1. @barlows

      No uso Ubuntu, pero ¿tuviste que especificar las rutas de los binarios para poder ejecutar parted necesariamente?

      ¿Qué te devuelve echo $PATH?

  7. barlows 5 años atrás

    oops!! no salio como esperaba por favor si pudiera editarlo

    1. @barlows

      Sí, es un problema de que no sé por qué algunas etiquetas HTML se pierden en los comentarios y el formato resultante no es el esperado. Afortunadamente yo sí lo puedo ver normalmente. De todos modos los cambios los pusiste en negritas.

      Como dices, realmente no son grandes cambios pero a mucho les pudiera resultar útiles.

      Muchas gracias

  8. Uff Realmente no utilizo ninguna aplicacion para hacer una memoria booteable de Windows ya que a veces en algunas maquinas me han dado problemas y en otras no, para mi la mejor opción y mas facil que nunca me falla es simple, cojo la memoria la formateo y copio el contenido de la ISO de windows en ella y listo.

    1. @Felipe

      No creo que eso funcione como dices. La ÚNICA forma en que eso funciona es cuando el modo de instalación es UEFI o se mantiene el MBR de una preparación anterior, de otra forma ni siquiera arranca la instalación. No por gusto me tomé el trabajo de hacer el script.

  9. Bueno haz la prueba para que veas, lo he hecho en board sin UEFI tambien como el caso de la Intel H61BE y por supuesto la mía que es una P8Z77- VLX que si es UEFI. Realmente yo nunca pensé que eso funcionaría pero un amigo que ni siquiera sabe mucho de informatica lo hacía y me lo comentó un día y me negaba a creerlo. Desde ese dia lo hago así para las Pc de mi trabajo y las que me llevan a la casa.
    Eso si, lo he probado en Windows 7 y Windows 8 varias veces incluso formateando la memoria y me ha funcionado !

    1. @Felipe

      Solo una cosa: si esto fuera posible así no existirían tantas soluciones para crear USBs autoarrancables con Windows.

  10. Estuve buscando sobre ese tema ahora en internet, mira este artículo:
    http://norfipc.com/articulos/instalar-windows-flash-usb-carpeta-local.html

    En el Explica que utilizando el 7zip para extraer el iso para la memoria luego de formatear esta en Fat32 se puede hacer. Yo lo hago con el DaemonToll, monto la imagen y luego la copio al pendrive