domingo, 25 de enero de 2009

Grub4dos desde Dos, boot.ini y Vista/Seven Bootloader

Una de las obsesiones que tengo como técnico pasa por el tema de las herramientas. Los que sean asiduos del blog sabrán que soy fanático de las cosas que me simplifican el trabajo: si puedo bootear el hirens sin tener que llevar un cd encima, mejor. Si en el mismo pendrive puedo poner un par de distros de linux que me permitan testear el hardware, o acceder a inetrnet para buscar soluciones, mejor. Si puedo reparar una máquina a la que no le arranca el sistema operativo sin reinstalar, mucho mejor.

Por eso es que me interesan tanto los bootloaders: son meta-herramientas; aplicaciones que nos permiten iniciar otras, que son las que nos resuelven el problema. No hay nada más frustrante para el técnico que una máquina que no arranca.

Hace unos dias, cuando me compré la notebook, decidí hacerle caso al amigo Reirok, y me puse a aprender a usar Grub4Dos. Este es un proyecto derivado de Grub, con algunas funciones extra: En general, nos permite iniciar casi todo lo que arranque: puede "encadenarse" para correr dos (cargando io.sys), xp (cargando ntldr) o vista (cargando bootmgr), y por suspuesto puede emular diskettes desde una imágen, y cargar cualquier linux que se precie de tal. Consulten el wiki si quieren saber más (recomendado para frikis como yo).

Una ventaja importante que tiene este proyecto a mi modo de ver es que cuenta con muchas formas de iniciarlo. Reseño aquí las que usé hasta ahora:

Desde DOS

Esta es una buena forma de correr Grub desde un diskette de rescate o un pendrive que arranque, por ejemplo, el hirens. Basta con descomprimir el grub4dos en una carpeta (\grub , digamos), cortar el arranque con f5 y ejecutarlo desde la linea de comandos:

c:\grub\grub.exe


Desde el boot.ini de Xp

Esta opcion tuve que usarla en la notebook: instalé Windows Fundamentals, y el bootmanager se comió el inicio de DOS. Además tuve problemas para instalarlo en el MBR y en el disco con wingrub (creo que es porque hay una particion de diagnóstico que tiene su propio cargador), por lo que terminé agregándolo así: Copié grldr y menu.lst a la raiz del c: y edité el boot.ini agregando la linea

c:\grldr="Grub4dos"

Desde ahí, editando el menu.lst, pude probar todas las distros que listo en el post sobre la Notebook (menos slitaz, que se resistió y terminé grabando el cd), descomprimiendolas a distintas carpetas en C:. También tengo un par de diskettes de arranque con utilidades.

Desde El bootmanager de Vista/Seven

Hasta acá, además de mis impresiones, este post no agrega nada al wiki de grub4dos. Pero para este paso se me complicó un poco, por lo que quiero detallar el howto con los pasos extra que hicieron que funcione.

El bootmanager de Vista reemplaza el ya viejo boot.ini, sumando algo de complejidad al proceso de edición. Principalmente , el problema es que los archivos de configuracion no son de texto, sino binarios, y contienen código ejecutable; por lo que se necesita de una utilidad especial para editarlos: bcdedit

Explicito un poco los pasos a seguir para agregar grub:

1) Copiamos los archivos grldr, grldr.mbr y menu.lst a la raiz de alguno de los discos (preferentemente el de inicio)

2) Abrimos una consola en modo administrador (boton derecho sobre la entrada del menú). De otro modo el comando no tendrá acceso a los archivos que hay que modificar

3)Creamos una nueva entrada de tipo bootsector
bcdedit /create /d "GRUB4DOS" /application bootsector

el comando nos da una salida:
The entry {0eb98131-e9b4-11dd-85d4-d5d709602c29} was successfully created.

Entonces marcamos el {id} (boton derecho sobre la consola -> marcar. Al presionar enter la parte marcada se copia al portapapeles) y lo pegamos en el notepad. Lo necesitamos para seguir.

4) Ahora le indicamos al bootloader la particion desde la cual vamos a iniciar
bcdedit /set {0eb98131-e9b4-11dd-85d4-d5d709602c29} device partition=c:
The operation completed successfully.

Por supuesto, el {id} lo pegamos. Yo como soy perezoso escribo la linea en el notepad y la pego entera.

5) Y le indicamos el nombre del bootsector a cargar
bcdedit /set {0eb98131-e9b4-11dd-85d4-d5d709602c29} path \grldr.mbr
The operation completed successfully.

Al final, le decimos que queremos que la opcion quede al final de la lista:

bcdedit /displayorder {0eb98131-e9b4-11dd-85d4-d5d709602c29} /addlast
The operation completed successfully.

Así queda la entrada si la consultamos con bcdedit a secas
Real-mode Boot Sector
---------------------
identifier {0eb98131-e9b4-11dd-85d4-d5d709602c29}
device partition=C:
path \grldr.mbr
description prueba

C:\Windows\system32>


Al reiniciar, tendremos la nueva opcion para elegir, y si todo va bien, tendremos grub funcando.

En caso de error, puede que quieran borrar la entrada del menú recien creada. Para esto podemos pedir la lista con bcdedit, copiar el id de la entrada a borrar e ingresar:
bcdedit /delete {0eb98131-e9b4-11dd-85d4-d5d709602c29}

y listo.

El archivo menu.lst que viene por defecto es una buena muestra de lo que se puede hacer con este juguete. Por lo pronto, a mi me sirve para iniciar el mandriva que el boot del windows seven se cargó junto con el viejo grub.

Disfruten!

Actualizacion: Reirok se dio (bien) por aludido, y nos completa el wiki oficial con este otro, que es mas completo y hace de esta una guia completamente inútil. Gracias!

43 comentarios:

CoskiBukowski dijo...

Que quilombo, me perdiste en la parte de vista/seven.
Sobre todo porque ya estoy hasta las pelotas de leer/escuchar sobre win7...

Igual un abrazo y como siempre info muy útil que seguramente en algun momento caeré a buscar por acá.

Abrazo

Anónimo dijo...

... yo tambien, y por eso no voy a hacer una reseña.
Sin embargo, me parece útil ir aprendiendo a editar/reparar el bootloader que nos va a complicar la vida de aca en adelante.

Anónimo dijo...

Hola, hablamdo de complicarse la vida. estoy haciendo mis primeras armas en maquinas virtuales, ya que en la fabrica para la que laburo tengo un programa que solo corre en win98. como todas las maquinas tienen mil años (y creo que no las tiran por melancolía, porque esta fabrica hace 10años empezó en el garage de uno de los dueños con estas computadoras que alguien ya habia descartado por viejas. jejeje)
Volviendo. las maquinas van murinedo una a una. y la verdad que es ¨casi¨ imposible instalar win98 en un Athlon 5000+ con 2Gb de ram y disco SATA de 250Gb.
asi que probe instalar una maquina virtual con win98 (con virtual pc 2007, en el xp) el programa funciona ok,(a pesar que tiene un HardKey paralelo) pero en un momento es necesario que el programa codifique un archivo en un diskete. y ahi es donde está el problema. porque el programa graba en un diskete de 720kb(HD) y como los disketes que conseguimos son todos de 1.44M (2HD)y la disquetera si la configuro como de 720kb me la toma como una de 5 1/4. existe algun tipo de disketera virtual o algo asi? para hacerle creer al programa que grabe en ese disco virtual y despues yo lo copie a mi HD? o a un disk normal? gracias chicos, les agracederia cualquier aporte. (hablo en plural porque seguro que Coski tambien contesta)
PD: de los Mother viejos (esos que yo tampoco tiro) he sacado varios conectores y capacitores para reparar mothers mas nuevos.

[486] dijo...

Marcos: hay un programita que se llama Virtual Floppy Drive que monta una unidad de diskette falsa, desde la que escribe en una imagen. Igual me parece demasiado. Probaste crear una imagen de floppy de 720K con winimage y montarla como diskette en VPC?

Anónimo dijo...

hola. gracias por el aporte, ya lo solucioné. efectivamente el problema era el disco que era de 1.44 y yo necesitaba uno de 720k. asi que le pregunté a San Google como convertir un disco de 1.44 a 720k y me recetó taparle el agujerito del diskete con una cinta (como haciamos con los viejos casettes) y formatearlo desde DOS con un par de paramentros simples y listo quedó perfecto. Igual, muchas gracias.

ReiRok dijo...

[486] Paso a saludar, y a pasar un link.
Es una guia de Grub4dos.
El link es el siguiente.
http://diddy.boot-land.net/grub4dos/Grub4dos.htm

Saludos.

[486] dijo...

Gracias! La guia está muy buena, cubre cosas que el wiki oficial omite (detalle de find, map, hook etc) y me indica por donde seguir para intentar el chainload de io.sys y ntldr. Ya estoy editando el post para agregar el link.

Anónimo dijo...

HOla, necesito ayuda con esto. Instale esta herramienta en el disco duro de mi portatil usandolo de manera externa con cabe en un pc para hacer experimentos, el tema es que ahora lo quiero reinstalar en mi portatil, pero cada vez que lo formateo, elimino particiones, reinstalo windows, o lo que sea que haga para eliminarlo estos datos vuelven a aparecer. he utilizado herramientas tipo Ontrack, MBRwork, Killdisk, fixmbr, fixboot, fdisk /mbr, y no hay caso; cada ves que instalo windows realiza un chkdsk y esta informacion vuelve a aparecer y cualquier dato que grabe en el disco duro pierde el booteo y npo puedo seguir utilizando windows. hay algun modo de eliminar esto del disco y poder utilizarlo de forma normal?

Te dejo mis datos por si no puedes responder

kaider@hotmail.com
Muchas gracias.
Atentamente
Danny Mérida

486 dijo...

Danny: No termino de entender tu problema... ¿Qué datos siguen apareciendo?
Si puedo suponer que el grub sigue arrancando, hay dos o tres posibilidades:
1) Está en el MBR: con un fdisk/mbr o fixmbr debería haberse ido
2) Arranca desde dos o boot.ini: un formateo simple lo hubiera sacado.
3) Está en el sector de arranque del disco: fixboot hubiera hecho el trabajo.
Yo te recomendaría hacer un formateo a bajo nivel con el Maxtor Powermax (esta en el hirens), aunque por su nombre el killdisk sería lo mismo.
Avisá.

Anónimo dijo...

Gracias de antemano por la atencion, entiendo la explicacion sobre el uso de Grub4dos, solo que no encuentro como grabar el cd (con Ultraiso o Nero)para que me "boote" desde el pc. Ejm si uso Diskem1x con el loader.bin le pongo autoarranque al cd para grabarlo, que hago usando Grub4dos

486 dijo...

Anónimo: si querés hacer un cd para que botee en grub4dos, lo mejor es bajarse una imagen de diskette de win98 y agregarle los archivos, o directamente usar SuperGrubDisk, que podes grabar en un floppy o poner como boot en un cd con la opcion de emulacion de diskette.
Pero... por lo que entendí, vos ya tenes del grub4dos en tu máquina (si no no te aparecería el mensaje), con lo que la prueba tendrías que hacerla ahi, en el shell que te deja el arranque.
Si te estoy entendiendo mal avisá, y explicame de nuevo

Anónimo dijo...

Gracias 486,sobre el cd que botee, se trabajar con el diskette del won98, solo que pretendo hacer todo con el Grub4dos, (cuando utilizo Diskemu1.x desde el ultraiso hago click en loader.bin, luego hago click en "añadir informacion de autoarranque (icono en forma de rueda dentada)", agrego la informacion restante, se graba el Cd y este trabaja bien.Hago lo mismo utilizando GRLDR, el CD arranca bien pero no estoy conciente de hacer lo correcto. No he podido agarrar el hilo sobre el arranque del CD le agradezco informacion.

486 dijo...

Anónimo: sigo sin entender que es lo que necesitás. Por lo pronto, querés un cd que bootee grub4dos. Supongo que es porque no podés hacerlo con un pendrive o un diskette. En fin, no hace falta complicarse mucho: Grub4dos es una versión de grub que funciona desde D.O.S., por lo que para correrlo solo necesitas un arranque en dos (un disco de win98 con el arranque, grub.exe, grldr y un autoexec de una sola linea que diga grub.exe funciona para eso). Si no yo te recomendaría bajarte el ultimo hirens, que ya tiene hecho el arranque y te deja en un bonito menu de grub, del que pasas a la linea de comandos pulsando "c".

Anónimo dijo...

en la pantalla del notebook me sale NO GRLDR


que hago para reparar? si alguien puede dar la solucion al problema

trato de bootear y nada ya que no me funciona la unidad de cd/dvd parece estar dañada.

ayuda ,socorrooooooooo

Anónimo dijo...

como desistalar grub4dos

Sergio Conde Sanchez dijo...

Por favor, necesito ayuda amigos !
Si le podeis echar un OJO a esto, os estare eternamente agradecido...

http://www.forosdelweb.com/f42/ayuda-por-favor-762077/

La sulucion da igual, vale?...
No me importa perder nada ya que lo tengo TODO en un DISCO DURO.

GRACIAS GRACIAS GRACIAS !!!

486 dijo...

Sergio: Algunos activadores de vista y seven usan grub4dos para cargar una rom, que engaña al sistema haciendole creer que se esta ajacutando en una maquina de marca, y asi no te pide la activación. Pero Grub4dos suele fallar, dejandote en esa pantalla. Lo bueno es que te deja una linea de comandos que se puede usar.
Te doy un par de tips como guia, y despues me contas como te fue:
1) Leete mi mini manual de grub4dos (Un boot para dominarlos a todos. es del 20/2/09 Buscalo, no puedo pegar el link)

2)El activador debe haber dejado en la raiz del disco un archivo menu.lst. Podes tratar de acceder a el haciendo esto:

find --set-root /menu.lst
configfile /menu.lst

3)Podés tratar de arrancar el vista desde grub a mano, poniendo:

find --set-root /bootmgr
chainloader /bootmgr
boot

eso debería date el menu de arranque del vista.

4) La más aburrida, podes arrancar con el cd de instalacion de vista y buscar la opcion de reparar el arranque (aunque no estoy seguro de si repara tanto el boot de la particion como el mbr).

Avisá, y vemos como seguir.

Sergio Conde Sanchez dijo...

Solucionado !
MUCHAS GRACIAS !

Anónimo dijo...

Saludos, a todos excelente pagina, pero basta de flores, segui tu mini tutorial para win7 y efectivamente carga el grub4dos, pero se salta el loader de seven, ya lo revise y esta seleccionado el de windows y como opcion 2 el GRUB, pero maquina necia arranca el grub

comentearios extra favor de notificar gustavonoguez@gmail.com

mil gracias

Unknown dijo...

Hola me llamo sancho, y no se porque me salio el grub4dos, seguramente al instilar algo.

Segui los pasos que le diste a "Sergio Conde Sanchez" y pude arrancar el windows 7, pero lo que me gustaria es quitar/eliminar/ el grub4dos o cambiarlo por el que viene de defecto con el windows 7...

Ya que cada vez que reinicio el ordenador me sale el grub 4 dos y tengo que acer siempre lo mismo...

Un saludo y gracias!!!

PD: segui el paso 3...

486 dijo...

drablz: para sacar el grub4dos podes usar el dvd de arranque de seven, que trae la opcion para arreglar el arranque.
Si la secuencia de comandos te funcionó, también podés automatizar el arranque creando un archivo menu.lst en la raiz del disco de arranque (comunmente C:) que seria mas o menos asi:
-----------
timeout 0
default 0

title w7
find --set-root/bootmgr
chainloader /bootmgr

----------
(sin las rayas, of course)
Esto dejaria el grub4dos pero invisible, por lo de timeout 0, y si te lees algo de este blog podes agregarle despues lo que gustes. Suerte, conta como te fue!

Unknown dijo...

GRacias 486 por tu solucion... el dvd de arranque de w7 no me funciono ya que me salia lo mismo.

Cree el archuvio menu.ist con el texto que me as dicho... y no me funciono..

Asin que busque de nuevo en el rei google... y encontre un texto que decia que algunos activadores de w7 pirata podia crear el grub, buque alguno... y encontre uno que podia re-activar la activacion de mi windows... y lo ice y ahora ya se me inicia automaticamente..

Aunque ahora me dice que la copia es pirata... llame al servicio tecnico de donde compre el ordenador y me enviaran en las proximas 24H el codigo de activacion...

GRacias por todo!!!

Anónimo dijo...

cual es el comando para cargar widows 7 ya q me aparece este grub y nose como pasar al windows 7 y los pasos q he seguido aca ninguno me da resultado POR FAVOR AYUUUUDAAAA!!!!!!!!!

FLOR capita6@hotmail.com dijo...

NECESITO AYUDA!
Me mande una cagada,,,
Estaba tratando de activar la version de windows 7 home premium y descargue un programita que te hacia elegir la marca de tu pc, lo hice y se me reinicio la maquina. Al encenderse, me aparece una pantalla de
GRUB4DOS 0.4.4 y me tira un "error 13 invalid or unsupported executable format"
QUE HAGO ANTE ESTO? como puedo volver a mi windows 7 truchito sin validar?
puedo perder todos mis archivos?
POR FAVOR ESTOY DESESPERADA!
les dejo mi mail
capita6@hotmail.com

GRACIAS!

486 dijo...

Capita: despues del error te deja en una linea de comandos? (es decir, podes escribir?)
Si es así podes probar con los comandos que tenes algunos comentarios mas arriba y contarnos como fue.
Avisá.

Anónimo dijo...

Hola! He seguido los pasos para instalar desde El bootmanager de Vista/Seven, y al reiniciar me salen los dos menus, el de windows 7 y el de grub4dos. Mi pregunta es: Como puedo dejar sólo el de grub4dos?

Muchas gracias!

486 dijo...

Anónimo del 17/2: El windows vista o el seven, hasta donde se, solo se pueden cargar desde el loader, con lo que eliminar el menú implica quedarse sin la posibilidad de arrancarlos.
Lo que si se puede hacer es cargar el loader desde grub4dos. Para eso hay que instalar grub4dos como arranque principal (en el mbr), y hacer chainloader del boot de seven. Así podés poner en cero (o uno) el timer del menu del seven para que no moleste. Fijate aca http://tecnicoenlaplata.blogspot.com/2009/02/un-boot-para-dominarlos-todos-jugando.html para empezar y me contás.

Anónimo dijo...

Hola!
Tengo Windows 7 y consigo hacer correctamente la instalación, pero al arrancar desde el boot el menu del GRUB4DOS me sale el siguiente error: "Información: no se puede arrancar la aplicación seleccionada porque la aplicacion no se encuentra o esta dañada.
Archivo: C:\grldr.mbr
Estado: 0xc000000d"

Agradezco de antemano a todo aquel que me pueda echar una mano.
Muchas gracias!

486 dijo...

anónimo del 23/2: Cómo instalaste grub4dos? Copiaste el archivo grldr al C:?
Te recomiendo bootear grub4dos desde un pendrive e intentar bootear el seven desde ahí. Si necesitas ayuda, me encontrás mas seguido en twitter. Suerte!

Anónimo dijo...

El grub4dos lo instalé siguiendo los pasos que hay arriba para windows 7, el archivo grldr si que lo copié a C: y mi intención es bootear varias imagenes iso desde el arranque de mi ordenador, no desde un usb.

Muchas gracias!

Anónimo dijo...

Hola! Alguien me puede decir como arrancar la iso de Backtrack-4 R2?
La mayoria de los scripts que he utilizado no acaban de cargar la iso, y me lanzan a la consola del sistema.
Gracias!!

Hugo dijo...

Excelente el blogggg!!
Saludosss

Anónimo dijo...

he encontrado un tutorial muy practico y con todo lo que senecesita para crea un lápiz de memoria con el Hiren http://goo.gl/e9gRP

Proyecto Byte dijo...

aqui les dejo un tutorial de como crear una pen drive de windows 7 con la herramienta official de Microsoft http://goo.gl/H3vpn espero que les guste

GAZ dijo...

Hola Chicos,
stoy tratando de recuperar el psw de una mini hp con windows starter, y descubri que lo puedo hacer con el Hiren haciendo booteable en una USB, pero al empezar y usar el Grub4dos y en la primera pantalla de Device Name, y querer elegir el tamaño del disco no me encuentra nada o no me da opcion de elegir ni al darle REFRESH, ni mis 2 particiones ni la de la usb, PORFAVOR alguien sabe q hacer? Me SUPER URGE... GRACIAS DE ANTEMANO y saludos

486 dijo...

Que tal, GAZ! Leo tu comentario y lo encuentro medio críptico. Disculpá mi ignorancia, supongo que psw es el arranque, o lo que llamamos bootloader. Supongo también que el windows starter es un windows 7 starter. Y termino de suponer que de algun modo estás abriendo un partition manager, porque el grub4dos no tiene "primera pantalla" ni "refresh". Si podés aclarame esas dudas y decime que es lo que querés hacer, por ahí te puedo dar una mano.

GAZ dijo...

Hola 486 y en vdd grax por responder, y perdon creo q por el stress q llevo trantando de entrar a la mini me bloqueo jaja... mira la mini tiene usuario y contraseña de administrados, cosa q de la contraseña no me acuerdo y NO puedo accesar. Ahora estoy tratando con el Hirens haciendolo en booteable en una usb. Al arracar el grup4dos con el grupinst_gui aparece una primera pantalla donde eleges el device name, eliges Disk y despues el tamaño de la usb pero SORPRESA!! no me aparece la lista de los discos que tengo, obvio tampoco la usb para darle elegir y despues Part list etc., terminar el proceso... espero ya m hayas entendido o no te haya hecho mas bolas jajja... saludos y grax

486 dijo...

Gaz: tenés un problema! Si estás en una cuenta limitada en windows ningun programa va a tener acceso a la lista de dispositivos, y probablemente tampoco pueda escribir en un sector de arranque (como para hacerlo desde linea de comandos), por lo que el proceso de crear el pendrive no creo que puedas hacerlo desde ahi. Creo que vas a tener que buscarte una maquina en la que puedas ser admin.
Cuando tengas el pendrive funcionando podés quitar la contraseña del administrador desde el mini xp (en hirens 12+) con el NTPWedit.
Por cierto: probaste el SDIsoBooter? http://tecnicoenlaplata.blogspot.com/2010/08/el-regreso-del-freak-super-duper-iso.html
Suerte, avisá cómo te fue.

Informatica dijo...

Que quilombo, seguire buscando algo mas sencillo

Anónimo dijo...

Hola 486, sabes, me pasa lo mismo que a todos. Puedo escribir en el menu de grub4dos, pero mi notebook no bootea en el CD ni en el puerto USB.
Antes de enviar a la pantalla roja me sale este menu:

find --set-root --ignore-floppies --ignore-cd /win7ldr

Al parecer no permite que el CD ni el USB funcione.
Cuando sigo las instrucciones de más arriba,

find --set-root /bootmgr
chainloader /bootmgr
boot

Me dice que inserte el CD para reparar, lo tengo, pero como el CD no funciona quedo en el limbo.
Que puedo hacer?
Saludos!

Àngel

[486] dijo...

Angel: no termino de entender lo que te pasa. El grub4dos no puede bloquearte el boot por cd o usb. Supongo que la pantalla roja es el menu de arranque.
Si esos comandos te dejan adónde te pide el cd, lo mas probable es que estes arrancando windows, pero que la instalación tenga un error. (grub4dos no te pide nunca un cd).
Tratá de arrancar con el cd de instalación (normalmente tenés un menú de arranque antes de bootear grub4dos con f8 o f11), y avisá cualquier cosa.
Si te entendí mal te pido que seas mas explícito (cual es el problema, que hiciste, que errores te saltan).
Saludos!

Anónimo dijo...

hola, por favor tengo un problemilla y no puedo seguir.
tenia el vista instalado de primeras y lo lleve a que le pusieran el xp.
al cabo de los años se me ha jodio el xp y no arranca, dice que falta un archivo y no puedo recuperarlo pq tendo el cdrom muerto.
desde el winfromsetupusb e intentado meter denuevo el xp y no hay manera, al me sale un error como este:
filesistem type ntfs, partition type 0x07.
will boot ntldr from drive=0x80, partition=0x0(hidden sectors=0x3f)

me podriais ayudar, puedo entrar en el grub4dos, pero no lo he usado nunca y no se como va.
por favor ayuda.

[486] dijo...

Anónimo del 17/7: En mi experiencia, instalar XP desde un pendrive es un problema. La mejor alternativa que encontré es bootear con un miniXP desde un pendrive que tenga el directorio i386, copiarlo a la raíz del disco y ejecutar la instalación desde la consola de recuperación. En tu situación yo haría una de dos: conseguir un adaptador sata-usb y una lectora (para instalar desde el cd) o instalar windows 7 (que se instala mucho mas fácil desde un pendrive).
El grub4dos no te es de mucha ayuda, porque solo sirve para arrancar sistemas que anden.