bootify 0.2.1: prepara tus dispositivos USB autoarrancables con Windows 7/8 desde Linux
23 comentariosbootify 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:
ddlsblkisoinfomkfs.ntfsmkfs.vfatpartedsha1sumstat7z
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.
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
En el transcurso del día te envío un prototipo que hice con PyQt5.
Chequea esta revisión que está ‘más completa’
Si, el prototipo será no-funcional, UI y va que chifla :D
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!
En el post está adjunto el script.
Mijito, dale suave con las actualizaciones. ;-D
HAHAHA, estas eran NECESARIAS.
Se, ya las estoy revisando, btw, en Fedora isoinfo es iso-info :D
Damn it! no existe ni siquiera un alias?
Me parece que son dos comandos diferentes pero que hacen lo mismo. Tengo que verificar eso.
Sí, son diferentes.
isoinfoesisoinfoen cualquier lado :Dhi! 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
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
Esto que escribe significa mucho para mí. La idea del script es precisamente esa, que todos puedan aportar algo.
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.
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.
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”
No uso Ubuntu, pero ¿tuviste que especificar las rutas de los binarios para poder ejecutar
partednecesariamente?¿Qué te devuelve
echo $PATH?oops!! no salio como esperaba por favor si pudiera editarlo
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
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.
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.
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 !
Solo una cosa: si esto fuera posible así no existirían tantas soluciones para crear USBs autoarrancables con Windows.
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