martes, 29 de julio de 2008

Otra vuelta de tuerca: nimblex y BartPE desde el pendrive.

Desde hace un tiempo en este blog venimos, mis lectores y yo, jugando con syslinux. Este es un gestor de arranque muy versatil y simple de usar, que nos permitió poner el hirens y varias distro de linux, mas otro tanto de imágenes de diskettes a bootear desde el pendrive. Pero también tiene sus limitaciones: en este caso; el soporte para bootear un disco físico.

Por eso (y porque SGD me gustó mucho) probé con GRUB. Y la verdad es que me simplificó mucho la tarea a la hora de hacer el pendrive booteable Nimblex-BartPE. Aquí un pequeño how-to:

  • Ponemos el BartPe en el pendrive. Ante cualquier duda consulte aquí. O aqui. El que quiera puede usar tambien PeToUSB si no quiere pasar por la consola.
  • Extraemos el contenido de la iso de nuestro linux favorito con grub (aquí nimblex, porque slax no trae configuracion para grub) en la raíz del pendrive.
  • Con wingrub, instalamos grub en el pendrive en 3 pasos:
  1. Vamos a File->Open y seleccionamos el archivo menu.lst que está en el pen en /boot/grub




  2. Vamos a Tools->Partition list y nos fijamos cual de los discos es nuestro pendrive. En este caso el (2,0)



  3. Vamos a Tools->Install Grub, elegimos MBR y nuestro pendrive, y le damos a Install


  • Ahora sólo queda agregar la entrada del menú para bootear nuestro liveXP. Abrimos menu.lst con un editor de texto y agregamos las líneas:
title XP 486 edition
rootnoverify (hd0,0)

chainloader +1
boot

El truco aquí consiste en arrancar desde el pendrive cómo si fuera un disco, es decir usando el arranque de la partición, sin complicarnos con bootsectors ni nada. Lo bueno es que esto también sirve para arrancar un xp (o win98) que tengamos en la máquina, sólo jugando un poco con los números de disco: (hd1,0) para la primera partición del segundo disco; (hd0,2) para la tercera del primer disco etc. Asi si tenemos particionado el pendrive podemos poner más de un windows (y a eso voy, buscando otro modo de poner el hirens). El la entrada del menú el disco es el (0,0) porque la máquina toma como primero al disco de arranque.

  • Y si quieren, también pueden agregar sus diskettes de arranque: sólo tienen que copiar el archivo memdisk del paquete de syslinux (o saquenlo del boot universal) y la imágen de floppy a iniciar a algun lado (yo usé /boot/grub) y las lineas se agregan como sigue:
title Win98
root (hd0,0)
kernel /boot/grub/memdisk
initrd /boot/grub/win98.img

(todo minúsculas, que si no grub no encuentra los archivos)
Otra enorme ventaja que tiene grub es la capacidad de editar las lineas de comando al vuelo: en la pantalla de las opciones, basta con pulsar "e" sobre cualquier opción para pasar a un editor que nos permite agregar, quitar o modificar líneas para ese arranque, con lo que nos da un montón de prueba y error. Y para valientes también está el shell, y a ver quién es más geek.

(editando la entrada Nimblex-Boot in KDM del cd)

Para los que quieran experimentar: una leída a los menu.lst dentro de la imagen del Super Grub Disk nos da una idea de todo lo que podemos hacer.

Disfruten!

Actualización: en la emoción de que funcione olvidé un detalle: para que nimblex funcione no basta con copiar el contenido de la iso e instalar grub. También hay que modificar levemente el archivo menu.lst, cambiando el parámetro root de (cd) a (hd0,0) y agregando el modificador probeusb a la linea del kernel. En general cada entrada queda así:

title NimbleX 2008 - Boot in KDE
root (hd0,0)
kernel /boot/vmlinuz-nx08 ramdisk_size=7120 probeusb root=/dev/ram0 rw quiet vga=791 splash=silent changes=nimblex.data autoexec=startx
initrd /boot/initrd-nx08.gz
... y si queremos guardar los cambios que vayamos haciendo al sistema (como el fondo de pantalla, la configuración de red o los toques al fstab para que ntfs-3g nos muestre los caracteres especiales) directamente en la carpeta /nimblex podemos reemplazar changes=nimblex.data por changes=/nimblex

23 comentarios:

CoskiBukowski dijo...

Loco si seguimos así vamos a terminar con un pendrive de quichicientos gigas, con todas las distros livecd que existen, con windows, solaris, bsd, el OS de la playstation, el symbian de los celulares, y la madre que los parió jajaja
y de seguro con un bootloader que bootee otros bootloaders como syslinux, grub, GAG, lilo, ntldr, SGD, y la mar en coche xD

En fin, mas alla del comment en joda, impecable laburo, ojalá algun dia sea tan facil como copiar una ISO al pen y que la bootee de buenas y primeras, pero este blog ya es fuente indispensable de info para los pendriveros.

Un abrazo!

PD: no se si seguis checkeando el mail desde el q me mandaste la invite para el elive, por las dudas te mande algo.

ReiRok dijo...

Master, excelente trabajo el tuyo.
Yo hago lo mismo que vos pero uso grub4dos en vez de ISOLINUX.
Y también hago algo parecido pero por PXE, ya que yo lo uso también en redes.
Si hubiera conocido el blog antes no sabes el tiempo que habría ahorrado.
Ahora, por lo que vi usas wingrub, pero este usa grub4dos.
Y las ultimas versiones de este ya cargan ISO, ojo esta en etapa de prueba.
Otras cosas que te pueden interesar, son ISOEMU y avlgomgr.

Te paso un par de foros donde esta toda la posta de estos temas.
Seguro ya los conoces pero por si no te los dejo.
Los tres foros están relacionados.
Los link son de una par de temas así vas viendo.
http://www.911cd.net/forums//index.php?showtopic=20089
http://www.msfn.org/board/How-to-boot-install-from-USB-key-t61384.html&st=219
http://www.boot-land.net/forums/?showtopic=5041

Y la pagina de WinBuilder que como el bartPE.
http://winbuilder.net/news.php

Saludos, voy a venir diariamente.

[486] dijo...

Reirok: se me cae la baba, gracias!

Anónimo dijo...

Che loco la gente que vive al pedo como yo vivimos esperando tu posteo, para cuando??!

ReiRok dijo...

Che maestro un par de cosas.
Como hago para que el newfoxs o el Google Reader para descargar las entradas viejas.
Para hacer comentarios se puede solo desde la pagina o hay otra manera de hacerlo tipo con el newfox.
Para comunicarme con vos por mail como hago, asi te mando alguno link o te mando algo hecho por mi para que lo publiques vos.
Saludos Reirok.

[486] dijo...

Anónimo: posteo cuando se me ocurre algo, o sea no muy seguido. Suporongo que eso mantiene la calidad y toda esa sanata.
ReiRok: es 486.mail en gmail. Tengo hotmail, pero mandarme ahi es como tirar a la papelera. Sólo lo uso para comprobar que ande el msn en lo de los clientes.
Coski: tarde te contesto, pero por ahi te interesa: Con el dato de ReiRok sobre grub4dos puede que algín día sea tan facil como tirar la iso al pendrive y bootear. Por ahora yo estoy probando.

CoskiBukowski dijo...

486: Ojalá. Dejaré que lo pruebe el experto (o sea, vos) y después ilumines a las masas con un post, si es que podés.

Nos vemos.

PD: de onda, te puedo decir "cacho" o "pepe" que es menos descolgado q un número como nick XD jajaja :P

[486] dijo...

Me llamo Mauro, pero no me doy vuelta en la calle si me dicen así. Acepto chavón, che, man, loco, masteroftheuniverse (si, veía he-man de chico) y derivados. Mis hijas me dicen papá, pero si alguien más me dice así estoy seguro de que me quiere cagar.

CoskiBukowski dijo...

Jaja, así que si te viera (además q no te reconocería) te gritara "mauro!" no reaccionarías, pero si te gritara "euu cuatrochentiséi!!" si?
jaja que graaande

Abrazo

Anónimo dijo...

Me dice este fallo al iniciar con grub;
title Hiren's.Boot_9.4
root (hd0,0)
kernel /diskks/memdisk
initrd /diskks/bootHi94.img

!!BootCD files were not found!!

Alguien me ayuda?

486 dijo...

Anónimo: ese error suele darlo cuando no tenés una unidad de cd en el sistema.
Una pregunta: estás tratando de correr el hirens desde una imagen del cd con memdisk? O con una imagen del boot? Tenés alguna página donde detallen el método? Porque si eso funciona nos simplifica la vida!

Anónimo dijo...

Siguiendo las guias de este foro, descarge el hirens.iso, extraje de este el boot con CDmage, pille el memdisk de syslinux, extraje el contenido del hires.iso y lo copie al directorio raiz del penusb, instale el grub y modifique el menu.lst.

en Algo he metido la pata...

[486] dijo...

Anónimo (la proxima ponete un nombre asi sabemos que sos vos): hay algunos problemas en el metodo que describis. El principal es el uso del boot del hirens con memdisk, que no funciona porque el arranque del cd no tiene soporte usb. Para que arranque es necesario instalar un boot de dos en el pen, fijate aca, que te faltan unos pasos. Avisá cualquier problema.

vicent dijo...

Soy el anterior anonimo.
Si ya he probado con el metodo http://tecnicoenlaplata.blogspot.com/2007/08/mini-jautu-hirens-en-el-pendrive-sin.html, y funciona, pero quiero poner el slax con syslinx y esos son los pasos que no consigo.
he seguido con http://tecnicoenlaplata.blogspot.com/2007/09/hirens-y-slax-en-el-pendrive-el-mtodo.html
perdon por ser pesado

486 dijo...

Vicent: creo que ya se cual es tu problema: estas tratando de usar como boot la imagen de diskette sacada de cdmage (corregime si no). Lo que necesitas es bootear con un kernel de dos, que yo llame dos.bss (tiene que tener extension bss, por algun motivo). Te lo dejo en cuatro pasos:
-Poner el hires (lo mas dificil, pero ya lo hiciste una vez)
-Bajarse el boot universal y descomprimirlo en la raiz del pen (deberia crearte una carpeta /boot). El archivo dos.bss ya está ahí.
-Correr desde ahi el bootinst.bat
-Copiar la carpeta slax de la iso al pen (ya debes haberlo hecho)

Eso debería funcar. Saludos!

vicent dijo...

ME explico yo y seguramente que vereis donde puede estar el fallo.
1-Trabajo desde Ubuntu, y desde este formateo el penusb en fat32
2-Extrtaigo de la hirens9.4.iso la carpeta BootCD y la coloco en el penusb
3-Descargo el BootUniversal.rar y lo descomprimo en el penusb
4-en /boot corro el bootinst.sh con la shell
5-reinicio desde el penusb y cuando sale el menu, y elijo la opcion hirens, se queda la pantalla totalmente negra con el guion bajo parpadeando, nisiquiera sale ya el menu del Hirens

486 dijo...

vicent: te faltan dos pasos en el método (que están en el mini jautu).
1.5 - Instalar el boot de dos en el pendrive (por eso no arranca. vos llamas al bootsector dos.bss desde el menú, y este busca los archivos de boot io.sys, msdos.sys y command.com). Lo podés hacer desde linux con qemu en tres pasos:
a)Arrancas qemu con la imagen del hirens como cd y el pendrive como unidad de disco Aca una guia.
b)Vas al mini win98
c)Con boton derecho sobre el disco (pendrive) vas a formatear y pones "copiar solo archivos de sistema"
Aca debería bootear en dos, sin el hirens.
1.75-Copias el contenido de la imagen de diskette que sacaste de cdmage (todo menos jo.sys) a la raiz del pen

vicent dijo...

Sigue sin funcionar...
Lo podeis explicar de forma limpia desde cero?, he instalado el WinXP exproceso para esto con todas las utilidades que se necesitan,tengo la ultima versión de Salax para usb y la última de Hirens 9.4

Un millón de gracias

486 dijo...

Vicent: desde cero sería así. Necesitas el pen, el hirens, el slax, la utilidad para formatear el pen de la pagina de hirens y el qemu. Fijate la guia en el comentario mio mas arriba.
1) Formateas el pen (con la herramienta de la pagina, eso borra hasta las particiones y el mbr)
2) Pones la imagen del hirens en el directorio de qemu y arrancas el qemu con el hirens como cd y el pen como disco, así
"qemu.exe -L . -m 128 -boot d -cdrom .\hiren.iso -hda \\.\PhysicalDrive2 "
3) Arrancas el mini win98
4) Desde ahi formateas el pen con la opcion "copiar archivos de sistema"
5) Tambien desde ahi copias la carpeta bootcd del hirens, y todos los archivos de la unidad "A:" (que son los de arranque en DOS), MENOS el archivo jo.sys.
Acá deberías tener un disco booteable en hirens
Para poner el slax
1) Copias todo el contenido de la iso del slax al pen.
2) Bajas el boot universal y lo descomprimis en la raiz (te sobreeescribe el boot del slax, pero ya tiene el bootsector de DOS)
3) Corres el bootinst.bat

Con eso ya debería andar. Si tenes dudas sobre alguno de los pasos avisá

vicent dijo...

Otra vez el pesado al que falla el asunto.
pasos 1 al 3 OK
4 ¿supongo que en fat32?
5 OK
1 a 3 OK
pero ya no consigo que pase de la pantalla negra con el guión bajo...
Mi usbstick en un RunDisck usb 2.0, quizá sea este el motivo, voy a probar el UNebootin, crees que funcionará?

486 dijo...

vicent: yo estoy usando un kingston de 512, y un generico de 1gb. Los formateo en fat16 (o fat a secas). Serviría que explicites el error.
¿No te muestra el menú de syslinux? (eso sería raro) ¿No te anda el slax, el hirens o ninguno? Antes de instalar el boot del slax: ¿Anduvo el hirens? (al final del paso 5 debería andar. Lo podes probar con qemu.exe -L . -m 128 -boot c -hda \\.\PhysicalDrive2).
Si nones, fijate otro pen (de menos de 2 gb)

Anónimo dijo...

A mi me pas alo mismo que a vicent.

tengo un pendrive de 4 gigas el cual le instalo hirens sin problemas, bootea correctamente y todo. El problema epieza cuando le pongo la acrpeta de SLAX (boot universal) y le corro el .bat, se supone que dentro del boot ya estan las modificaciones necesarias para que corra el hiren con slax, pero al bootear me presenta la pantalla de slax y elijo la opcion para que cargue el hiren pero se queda ahi en negro con un guion parpadeando.

te prometo que lo he hecho por los menos unas doce o trece veces y el resultado es el mismo.

Como dato te puedo decir que lo formateo en fat32 (en fat no me bootea hiren) y que el pendrive es un corsair flash voyager esta nuevo, (una semana) el slax corre sin problemas hiren "ya no" desde que slax esta presente.

esop, espero me puedan ayudar.

Anónimo dijo...

holaaa, un saludo a todos.

reirok, dices que has conseguido arrancar bartpe via pxe????

como lo has conseguido???

porque a mi se me cuelga cuando empieza el servicio tftp.
saludos