viernes, 29 de agosto de 2008

Todavía más fácil: Unetbootin

En estos últimos días dos lectores y amigos del blog (CoskiBukowski, de quién recomiendo su blog y ReiRok, a quien recomiendo abrirse uno. Gracias a los dos!) me hicieron llegar por mail un link hacia la página de esta utilidad: Unetbootin, que viene de Universal NetBoot Installer. Yo, como siempre, me tomé el trabajo de probarla antes de hablar, asi que aquí estoy

¿Y qué hace?

Entre otras cosas, hace automáticamente lo que nosotros venimos haciendo a mano en este blog: tomar la ISO de una distribución de linux y ponerla en un pendrive booteable. Explicitando un poco, lo que hace es, paso a paso:

  1. Extrae el contenido de la iso a la raíz del pen.
  2. Instala el bootloader (syslinux)
  3. Traduce el archivo de configuración de arranque (menu.lst de grub o syslinux.cfg) para construir su propio syslinux.cfg*
Y hace más que eso: Su capacidad principal es la de realizar estos pasos sin la imagen de disco, es decir que si elegimos una de las distribuciones de la lista de disponibles (que es extensa), el programita se encargará de bajarla primero, y después de pasarla al pen. De todos modos, yo prefiero bajar la iso con un programa que se dedique a eso (que tenga soporte proxy, descarga por partes y resume, por ejemplo Gigaget) y pasarla después.

Un detalle muy interesante con respecto a este programita es que no formatea el pendrive en cada instalación, lo que nos gusta particularmente porque nos permite, por ejemplo, poner varias distibuciones que no se pisen entre ellas (guardando el contenido de syslinux.cfg en cada paso y reconstruyendo el archivo a mano al final). Otra ventaja es que nos proporciona un modo de bootear desde el disco rígido en el menú (un punto flaco en el mismo syslinux).
Y de yapa, es portable.

Pruebenlo y me cuentan.

*La "traducción" es literal, es decir que separa la linea del kernel en "kernel" y "append", y pone dentro de "append" la linea "initrd". En algunos livecd, que dependen de opciones específicas para bootear por usb, esas las tenemos que poner a mano. Por ejemplo Geexbox funciona si cambiamos boot=cdrom por boot=sda1

Actualización: el amigo Reirok me corrige con lo del boot. Transcribo parte de su correo:

Otra cosa, recién estaba viendo el ultimo post.
Y vos decís que con el syslinux no podías bootear desde HD.
Por ahí no lo viste pero hay varios módulos en el pack de syslinux.
En el cual hay dos buenos, como chain.c32 y reboot.c32.
(están en sysliux/com32/modules/)
Con estos podes hacer chainloader y reboot del sistema.

Proba esto en el syslinux.cfg

# Boor from Harddisk
LABEL LOCAL
MENU LABEL Boot from Harddisk
Kernel chain.c32 hd0 1

# Reboot
LABEL REBOOT
MENU LABEL REBOOT
Kernel reboot.c32

Son para menu.c32 pero para vesamenu.c32 creo que también funciona.
Gracias por el aporte!

25 comentarios:

CoskiBukowski dijo...

Jeje, gracias por el link y la recomendación ;)

Y por la review del programita, ojalá le sirva a tus lectores.

Un abrazo!

Yayuca dijo...

Maestro, quería pasarle el dato de Unetbootin anteayer, pero antes había que probarlo.
Probé con dos distros (por tener sendos iso a mano): LinuxMint y Puppy.
La única distro que pude hacer andar fue LinuxMint 5.
Con Puppy 4 no hubo caso; formateé el pen en fat32 como se pide, incluso instala el menú de booteo. Pero a la hora de elegir Puppy, no hay caso, no carga.
Igualmente una herramienta excelente, ni siquiera es necesario instalarla en Windows, el exe corre solito.
Ya probaré con un Ubuntu en cuanto termine de descargar la iso.
Ampliaremos.

Anónimo dijo...

Hola como estan ?
Quiero decir que es un gusto ser lector asiduo a este genial blog

Tengo una duda si me lo permiten
esto podria facilitar el tener Hirens boot en el usb o no viene al caso?

[486] dijo...

Yayuca: algo raro está pasando: lo primero que hice fue probar puppy + geexbox, y ambas funcaron: puppy sin cambios y geexbox con el que dice el post. Yo apostaría por una imágen rota o algo parecido. Igual gracias por la intención.
Anónimo: me temo que no. El programita sólo hace lo que dice, y eso sólo funca con linux. It's a shame.

ReiRok dijo...

Paso a saludar.
Mi propio blog, no, creo no tener el tiempo necesario.
Paso por aca por la calidad del blog, ademas los lectores siempre preguntan cosas interesantes.
Para que tener varios, con el tuyo y el de Coski ya tenemos dos muy buenos. Mejor pocos y buenos, con gran material.
Coski, el tuyo lo estoy viendo, si tengo algo orientado al tuyo te mando algo o te aviso.

Abrazo.
P/D: Este programa es parecido a MySlax Creator que use hace ya algun tiempo.

Kike dijo...

Hola, ya hace algun tiempo que leo tu blog y me resulta muy interesante, ya que el tema de pen drives bootables es algo que quiero utilizar para reparaciones de equipos o clonaciones masivas.
He probado este programa y de momento solo he conseguido instalar una distro cada vez, al instalar la segunda pide sobreescribir algunos archivos y creo que ahi debe estar el problema, entiendo que habra que modificar el syslinux.cfg a manubrio. ¿es asi?
Gracias y sigue en esta linea.
Saludos

CoskiBukowski dijo...

Kike, en efecto, hay que modificar a manopla el cfg, backupealo el anterior, fijate como hace el nuevo, y despues fijate como unirlos en uno solo.

Un saludo

Kike dijo...

Funciona.
De momento tengo el Gparted y el Linux Mint.
Gracias.

Javuda dijo...

En varias maquinas el syslinux (sea con lo que sea que lo arme) me tira "boot error" y nada mas. Tuviste este problema? y de ser asi, como lo solucionaste?

486 dijo...

La verdad es que no te ayuda mucho el error... pero por lo que dicen aqui parece ser un problema de ciertas mothers con bio Award, que bootean syslinux sólo si el pendrive simula ser una unidad USB-ZIP. Seguite el link para ver de que se trata, aunque en una primera ojeada no parece muy sencillo (y capaz que te quita compatibilidad con las otras máquinas).
Y de yapa, aca dicen que intentes reformateando en windows. Avisa si te funca.

[486] dijo...

y Coski, gracias por ayudar a Kike... como verás, me gustó tu cuadrito de comments.

ReiRok dijo...

Javuda, respecto lo que te dijo 486.
No te recomiendo cambiar el formato de disco a 63/62 como dice el primer link, ya que no es un standard como 255/63 128/63 64/63 16/63 64/32.
Yo te recomiendo a vos y a TODOS que el formato lo hagan primero con la utilidad de HP, ya que esta escribe en el mbr que crea en el USB, una opción mas para evitar problemas con la INT13. (En fat o fat32 si usan syslinux, si van a usar un arranque con NT boot.ini o Grub4dos pueden usar también ntfs) cuidado esta utilidad como también PETOUSB dan formato a todo el pendrive. Después si pueden hacer las particiones que necesiten desde linux o si usan windows con algún driver especial como dummy.sys o el de hitachi cfadisk.sys pero es mas difícil de usar, estos driver hacen que veamos al pen como USB-HD.
No olvidarse que el arranque pasa primero por el MBR y después al primer sector de la partición a bootear (la activa) y ahi ese código busca el bootloader en este caso syslinux, y syslinux se escribe en el primer sector de la primera partición.
Bueno te cuanto a vos y a todos los que leen los comments que Qemu (Qemu manager) mas facil, después hace un post con esto 486, puede bootear directamente desde un disco físico, claro también el pen, entonces pueden hacer las pruebas desde la maquina virtual sin tener que reiniciar. Los discos se ponen como \\.\PHYSICALDRIVE#. Como dato si funciona en la simulación entonces casi seguro funciona en todas las maquinas, no creo en las que el boot es USB-FDD que es mas viejo.
Así que antes de hacer nada proba lo que tenes ahora con qemu y fijate si ahi te funciona, si te hace lo mismo es porque tenes mal formato de disco.
Me re colgue escribiendo, espero soluciones tu problema y volvé a decirnos como te fue.
Saludos ReiRok.

CoskiBukowski dijo...

je, mauro, es piola el cuadrito inline, la unica desventaja es que no te permite suscribirte por mail, herramienta que yo usaba siempre. Pero los de google dicen q la van a incorporar.
ReiRok, un groso tu respuesta, la verdad le dejé de leer por la mitad xD pero no dudes que ante cualquier problema q tenga booteando syslinux la voy a venir a consultar ;)

Salu2 a to2

[486] dijo...

Me necantó el dato de qemu! yo estaba tratando de hacerlo con virtualbox, por supuesto sin éxito. Lo pruebo un rato y armo el post. Gracias!

NHILS dijo...

Me encantó la aplicacion pero solo funciona en mi pc y yo la quiero correr como usb de rescate en otra maquina ,por favor si alguien sabe como publique el comentario

486 dijo...

NHILS: La aplicacion te prepara el usb para bootear en cualquier máquina que soporte el boot por usb y syslinux. Pero no todas las maquinas se la bancan igual. Ayudaría que nos digas sobre que máquina querés bootear, y que error te da.
¿Es un PIII? (ahi perdiste), ¿es una mother intel? (son mañosas, pero se puede), etc.

jmanuelcool dijo...

Amigo; estoy en la intención de crear un usb con los sabores de ubuntu (kde, gnome, xubuntu y gOS) pero cuando lo hago; a pesar de renombrar los archivos intrd.gz y vmlinuz sólo me funciona la última distro añadida al usb (a pesar de haber editado el syslinux.cfg y añadido todas las entradas correctamente) las otras no arrancan bien; siempre me mandan a la busy box o simplemente arranca con el entorno de la última añadida (ejemplo si añadí ubuntu de última e intento arrancar kubuntu; al final arranca con el entorno gnome) ya no encuentro cómo armarla sin que me de ese fallo ¿sería tan amable de ayudarme, por favor?

486 dijo...

No tengo a mano un cd de ubuntu para fijarme, pero supongo que las distros se pisan en algún lado, lo que quiere decir que lo que tratas de hacer es bastante difícil. Supongo que te larga en la busybox porque esa esta adentro del initrd (que es un sistema de ficheros basico que se monta desde syslinux), pero a la hora de arrancar tenes solo los archivos de la ultima distro que pones.
Si queres explayate un poco, y decinos cómo quedan las carpetas dentro del pen.
Suerte

jmanuelcool dijo...

Bueno, la organización de las carpetas queda asi: http://e.imagehost.org/0004/carpetas.jpg el syslinux lo acomodé de la siguiente manera:

label ubnentry0
menu label ^Probar Ubuntu en Modo LIVE
kernel /casper/ubuntu
append initrd=/casper/ubuntu.gz file=/cdrom/preseed/ubuntu.seed boot=casper locale=es_ES quiet splash --

label ubnentry2
menu label ^Probar Kubuntu en Modo LIVE
kernel /casper/kubuntu
append initrd=/casper/kubuntu.gz file=/cdrom/preseed/kubuntu.seed boot=casper locale=es_ES quiet splash --

label ubnentry4
menu label ^Probar Xubuntu en Modo LIVE
kernel /casper/xubuntu
append initrd=/casper/xubuntu.gz file=/cdrom/preseed/xubuntu.seed boot=casper locale=es_ES quiet splash --

label ubnentry6
menu label ^Probar gOS en Modo LIVE
kernel /casper/gos
append initrd=/casper/gos.gz file=/cdrom/preseed/ubuntu.seed boot=casper locale=es_ES quiet splash ubiquity/reboot=true noprompt -- loglevel=0

label ubnentry7
menu label ^Gparted
kernel /gisolinux/initrd.gz
append initrd=/gisolinux/initrd.gz noapic root=/dev/ram0 init=/linuxrc ramdisk_size=65000

(OJO sólo coloqué algunas lineas para no hacerlo tan largo)

en la carpeta "Casper" renombré los archivos initrd.gz y vmlinuz de cada distribución para que no se sobreescriban; estoy casi completamente seguro que el problema está dentro de la carpeta "isolinux", ya que allí está toda la info de las distribuciones

jmanuelcool dijo...

como que la puse un poco dificil; ya veo que no hemos podido avanzar mucho; sigo haciendo pruebas y obtengo los mismos resultados :'(

486 dijo...

Jmanuel: creo que tu problema esta en los initrd.gz . Estos son una imagen del sistema de archivos basico que se crea en ram, y desde el cual se busca el paquete del livecd propiamente dicho para montar (si no me equivoco es livecd.sqfs). Lo que se puede probar es algo complicado:
1)Renombrar livecd.sqfs como xubuntu.sqfs, y initrd.gz como xubuntu.gz (por ejemplo).
2)Descomprimir el initrd.gz
3)Buscar adentro de los archivos de configuracion referencias a livecd.sqfs y cambiarlas por xubuntu.sqfs
4)Volver a comprimir el paquete.
5)Mdificar el syslinux.cfg y probar el boot.

Yo lo haría con una sola distro para probar; y si funciona entonces debería andar todo el resto.
Avisá cómo te fué.

necroantrax dijo...

hola mi estimado 486, soy nuevo lector de tu blog el cual me a cautivado por toda la info sobre linux que se encuentra en el y como ya notaste soy novato entusiasta de linux. mi problema es el siguiente probe la utilidas en cuestion (Unetbootin) con linux dsl 4.4.9 en mi usb y lo emule con el qemu tal como tu lo enseñaste en este foro y te cuento que me corrio de maravilla pero quise hacer lo mismo con mandriva linux 2008.1 sping y no tuve el mismo resultado carga y todo pero al final da error y se queda en una consola de sh, aclaro que en las dos distros hice los mismos procedimientos que tu explicastes ni quite ni agregue; entonces por que mandiva no me funciono? podrias orientarme por favor? saludos a todos desde nicaragua

486 dijo...

necro: Qemu es un poco delicado. Por ahi no puede iniciar las x por algun problema con compiz (estoy adivinando, verás). Igual el método de qemu es mas para probar el boot (que te anda) que para ver la distro. Probaste arrancar la maquina desde el pen a ver si anda?
Contanos.

CoskiBukowski dijo...

Si la intención es probar el sistema en una maquina virtual, mi programa preferido es el VirtualBox. Podrías probarlo, simplemente creas una nueva maquina virtual, en las preferencias le cargas la imagen ISO y ya estás booteando..

Saludos.

Anónimo dijo...

Hola a todos, al arrancar desde mi pendrive me sale:

BOOT ERROR

le meti el Linux Mint 9 ....