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

lunes, 28 de julio de 2008

3 formas 3 de instalar XP desde el pendrive.

Algunas veces nos sucede que tenemos que reinstalar el XP en una máquina que no tiene CD/DVD, que no podemos abrir porque está en garantía o porque es una notebook, ...o por lo que sea, porque somos geek y no necesitamos excusas para tratar de hacer algo de un modo distinto a lo que hacemos siempre. Digamos: porque nos aburrimos.

El hecho es que queremos instalar XP desde el pendrive, y ni bien nos ponemos a investigar descubrimos que no viene a ser tan fácil, principalmente porque el sistema no parece estar preparado para eso en lo más mínimo.
Por suerte para nosotros, siempre hay gente curiosa como uno, que ha encontrado formas de hacerlo. Aquí resumo dos métodos de los más nombrados:

El método Roderick: Basicamente, consiste en armarse un xp booteable por ramdisk e iniciar la instalación del sistema desde ahí, lo que sería:

  • Seguir el método que di un par de posts atrás para poner bartpe con slax, hasta el paso 5 (pueden saltarse el 4). (Copio y pego para los haraganes):

1)Bajamos Pebuilder 3110, que incluye el pe2usb y lo descomprimimos en algun lado (a partir de ahora \pebuilder3110a\)

2) a - Modo difícil) Bajamos el service pack 1 de windows 2003 server (330Mb) , lo descomprimimos, sacamos ramdisk.sy_ y setupldr.bin, extraemos ramdisk.sy_ para obtener ramdisk.sys y ponemos ambos archivos en una carpeta llamada \srsp1 dentro de \pebuilder3110a . Este es lejos el paso más tedioso a la hora de armar el bartPE booteable por usb, y el que me frenaba a la hora de experimentar. Para aquellos perezosos como yo, les doy dos opciones: pueden pasar por ese choclo o…
b - Modo chanta) Bajamos este pequeño archivo y extraemos el contenido en ..\pebuilder3110a\srsp1\ (de nada)

3) Armamos el disco con pebuilder.Aquí el amigop Roderick nos dice que debemos activar el plugin “RpcSS needs to launch DComLaunch Service First - SP2 only” si tenemos SP2.


4) ...

5) Corremos pe2usb: Desde la línea de comandos vamos al directorio ..\pebuilder3110a\ y ponemos pe2usb p: (donde p: es la letra del pendrive)

  • Copiar al pendrive la carpeta \i386 del cd de instalación de XP (ojo: muchas veces no funciona si tenemos un XP tuneado, nliteado o cualquier "ado". En lo posible un SP2 liso y llano)
  • Arrancar BartPE desde el pendrive
  • Preparar el disco dónde vamos a instalar (reparticionar, formatear etc)
  • Instalar con esta linea de comandos:

D:\i386\winnt32.exe /syspart:C: /tempdrive:C: /makelocalsource
(suponiendo que el disco dónde queremos instalar es C: y el pendrive se ve como d:)

  • Cuando pregunta si queremos pasar nuestro disco a NTFS, le decimos que no (porque se refiere al pendrive)
  • Continuamos la instalación normalmente.

Este método copia el directorio \i386 al disco rigido, e instala desde ahí. Después del primer reinicio podemos sacar el pendrive y hacer de cuenta que nunca lo pusimos.

El método dos-fan: consiste en armarse un diskette de arranque de windows98 que tenga sys, format, fdisk, xcopy y smartdrv, transladarlo como boot del pendrive con la utilidad de hp o la de hirens y después laburar en D.O.S: particionar con fdisk, formatear, instalar el boot, copiar \i386 y reiniciar sin el pendrive. Una vez ahí puede arrancarse la instalación desde c:\i386 con winnt.exe (versión de 16 bits de winnt32).
Para los que quieran probarlo, el disco de arranque completo y armado se puede conseguir aquí. (Para los que no, igual es un disco de arranque interesante, bájenselo que por ahora es gratis).


Y la yapa: el método 486: No es el mejor, sólo el más retorcido. Y el más divertido también. Ahí va:

  • Hacemos una máquina virtual en virtualbox, con un disco de 3Gb aprox
  • Hacemos la ISO de un BartCD con pebuilder (con las indicaciones de Roderick), y le agregamos el directorio \i386 con magiciso, poweriso o lo que sea, mas el plugin de nuestro programa de imágenes de disco favorito (léase ghost o acronis true image. Yo use ghost porque tenía a mano una versión portable).
  • Arrancamos desde la ISO y formateamos el disco (puede ser NTFS).
  • instalamos (dentro de la máquina virtual) con este comando:

D:\i386\winnt32.exe /syspart:C: /tempdrive:C: /makelocalsource /noreboot

(again, suponiendo que el disco dónde queremos instalar es C: y el pendrive se ve como d:)
  • Al terminar la primera parte de la instalación no reinicia, asi que desde el mismo bartPE hacemos una imágen del disco en nuestro pendrive (aprox 370Mb).
  • Y listo. Ahora cuando queramos instalar el xp basta con arrancar con el pendrive (si se quiere en dos, con el hirens, en un windowsPE, en linux usando ghost con wine etc), volcar la imagen sobre el disco que queremos como sistema, sacar el pen y reiniciar.

Y otra vez: al valiente que quiera probar estos métodos y pueda aportar resultados (buenos o de los otros): los comentarios son todos suyos!

martes, 22 de julio de 2008

Cómo cambiar la letra de la unidad de sistema en XP

Un truco cortito y al pie... bueno, casi

Un poco de backround (ignórelo si quiere, y pase a los bifes):

Hace unos días, tratando de arreglar el boot de un pendrive con el hirens, me cargué el arranque de mi partición de windows. Y tanto me lo cargué que no lo pude restaurar con fixboot, fdisk/mbr, reparando la instalación ni empezando una nueva y cortándola de prepo. Tampoco me ayudo SuperGrubDisk, ni nada. Vayan contando tres horas.

Cómo lo tenía que solucionar en el día (mi esposa tenía un trabajo que hacer) , puse cómo arranque un disco IDE de 20Gb que tengo de temporal, le robé 4Gb e instalé winchiquito, office, ares, drivers, antivirus, etc. Ahí, con todo andando, hice una imágen con Acronis True Image. Dos horas más.

Al otro día, me ocupé de vaciar la partición del viejo windows y hacer un backup ; y después, desde el windows que tenía, sobreeescribí la partición (sin el MBR, que ahí está grub booteando elive).

Cuando cambio el orden de arranque, el sistema inicia windows lo más bien (con un ajuste a los parámetros de grub, que con tanto manoseo ya no sabía dónde estaban las particiones). Pero había un problema: la partición de sistema pasó a ser la unidad G: (comprobado con Inicio->ejecutar->%windir% = g:\windows), pero el Dtaskmanager (recomendable) me mostraba que algunos procesos de sistema se ejecutaban desde C:\windows, que era dónde se ponía el windows duplicado que instalé de emergencia. Probé quitarle la asignación de punto de montaje (en diskmgmt.msc) al c:, y por supuesto el sistema se volvió loco y no arrancó, así que tuve que volver atrás. Y cuenten otras dos horas.

Siete horas después, una búsqueda sobre "change letter system disk xp" me llevó acá, y en un reinicio tenía solucionado el problema:

El método (XP only):

  1. Como administrador, correr regedit.
  2. Ir a HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
  3. Cambiar el nombre de la clave "\DosDevices\C:" por "\DosDevices\Z:" o cualquier letra que esté disponible.
  4. Cambiar el nombre de la clave que pertenece al disco que queremos como C (en este caso, "\DosDevices\G:") a "\DosDevices\C:"
  5. Reiniciar.

Por si no anda, siempre conviene tener a mano un backup para no perderse otras siete horas, o al menos un livecd de XP que tenga un editor de registro "offline".

En este caso, no es enjoy!
Es: ¡Pare de sufrir!

Porno Geek

No voy a hablar de gadgets, porque esto es el subdesarrollo y lo último que me compré fue un MP3 genérico de 2Gb para el día del padre. Esto es porno-porno, aunque no sabría si catalogarlo cómo NSFW, a menos que tu jefe también sea un Geek.

Ayer estaba probando cierto windows Xp "Mini USB edition" (50 Mb) que circula por ahi, para ver si desde ahí se podía instalar un sistema con el método del amigo Roderick (hablando de eso... que foto te mandaste, macho!).
Probado que no se podía (faltan dlls básicas), intenté con algunos portables para ver que jugo se le podía sacar; y entre ellos probé el VLC, abriendo alguno de los videos de mi disco al azar... encontrándome con que, a falta de las librerías más esenciales para el video (openGL y esas cosas), el amigo VLC no se rinde y nos muestra esto:

fuuufffffffffffffyuyuffyf!
(Click para agrandar, ya saben...))


Ni que decir que me quedé viendo...

Para el que quiera repetir la frikada, esta visualización está disponible en las preferencias->ouput modules, chequeando "Advanced options".

miércoles, 16 de julio de 2008

Cómo ser agradecido, o cómo agregar BartPE al pendrive

Desde que empecé con el blog son varios los lectores que llegaron con la duda acerca de cómo puede hacerse un USB booteable para arrancar un Windows XP live.
Hace unos días Ignacio preguntó lo mismo, sumando el factor geek de querer ponerlo en el menú de syslinux junto con lo demás. Le contesté que no sabía lo suficiente, y al día siguiente vino con la respuesta. Y lo mejor es que no se la guardó para él, sino que eligió compartirla con nosotros, que ahora pasamos a ser sus lectores:

Copio y pego el comment (Con tu permiso, Ignacio) :

Respecto a BartPE dentro del pendrive de multiples booteos, no dire que es sencillo pero googleando un poco encontre todo lo necesario.

Primero, descargan las cosas aqui señaladas http://users.telenet.be/Robvdb/BootPEUSB_UK.htm y luego hacen SOLAMENTE EL PASO 1, para descomprimir y alistar los archivos.

Una vez tienen los archivos requeridos tanto para armar de BartPE como los requeridos por este para poder bootear desde el pendrive, siguen las instrucciones DESDE EL PASO 5 en adelante http://www.irongeek.com/i.php?page=security/dual-boot-slax-linux-bartpe-windows-usb , si descargaron el BOOT_Slax.rar provisto por 486 saltense el PASO 7 y solo agreguen dentro del syslinux.cfg una entrada asi:

label bartpe
menu label Bart's PE
kernel pe2usb.bss

Esto para que lo puedan elegir del menu.

Si siguen los pasos en estos links mencionados tendran BartPE tambien funcionando desde el pendrive.

Actualmente tengo en el pendrive un disco de inicio de Win98, BartPE y PUPPY (Tengo un notebook PB S18P de 7" el cual no tiene floppy ni CD y todo esto lo he investigado haciendo recuperaciones del sistema ><).


Y para no decir que yo no hice nada aquí, voy a hacer una reseña de los pasos necesarios en castellano, y por supuesto un pequeño aporte:

Método:

1)Bajamos Pebuilder 3110, que incluye el pe2usb y lo descomprimimos en algun lado (a partir de ahora \pebuilder3110a\)

2) a - Modo difícil) Bajamos el service pack 1 de windows 2003 server (330Mb) , lo descomprimimos, sacamos ramdisk.sy_ y setupldr.bin, extraemos ramdisk.sy_ para obtener ramdisk.sys y ponemos ambos archivos en una carpeta llamada \srsp1 dentro de \pebuilder3110a . Este es lejos el paso más tedioso a la hora de armar el bartPE booteable por usb, y el que me frenaba a la hora de experimentar. Para aquellos perezosos como yo, les doy dos opciones: pueden pasar por ese choclo o…
b - Modo chanta) Bajamos este pequeño archivo y extraemos el contenido en ..\pebuilder3110a\srsp1\ (de nada)

3) Armamos el disco con pebuilder.

4) Instalamos, si ya no lo tenemos, el boot universal con los sistemas que queramos poner.

5) Corremos pe2usb: Desde la línea de comandos vamos al directorio ..\pebuilder3110a\ y ponemos pe2usb p: (donde p: es la letra del pendrive)

6) Copiamos a la raiz del pen el archivo pe2usb.bin, renombrándolo cómo pe2usb.bss, y el archivo mkbt.exe que tenemos que bajar desde acá.

7) Arreglamos el boot corriendo desde la linea de comandos: mkbt -x pe2usb.bss p: y corriendo después bootinst.bat
8) Agregamos a nuestro syslinux.cfg las lineas:

label bartpe
menu label Bart's PE
kernel /pe2usb.bss

9) Booteamos para ver que onda.

Cabe aclarar que este método bootea el xp desde una imagen con ramdisk, y que el tiempo que tarda en cargar la imagen es bastante, asi que conviene mantener la imagen lo más chica posible. Lo mejor viene siendo agregar aplicaciones portatiles al pen fuera de la iso.

La segunda aclaración es acerca de mi fiabilidad: yo seguí el método de Ignacio y me dio un error de booteo “invalid system disk”. Es posible que esté haciendo algo mal, o que la máquina que tengo para probar no se banque el arranque (sin embargo, después del paso 5 el pen bootea en xp lo más bien). Posteo el método porque sé que a nuestro autor le funcionó, y creo que podemos depurarlo a prueba y error. Cualquier feedback en ese sentido es bienvenido.

martes, 1 de julio de 2008

Otro bonito arranque forzado para nuestro pendrive.

Estuve peleando unos días con la máquina de un cliente que hacía cosas raras con el puerto IDE:
  • No reconocía uno de los discos al arranque, pero me lo mostraba en SLAX.
  • No reconocía la unidad de cd para bootear.
  • Me permitió hacer una imagen con Acronis, pero no vio el disco en Ghost para restaurar la copia de seguridad que tenía (arrancando hirens desde el pen).
  • Después de restaurarla desde mi máquina por usb, no arrancaba ningún disco y por fin.
  • Conectando el disco de arranque con el conversor ide-usb arrancaba el sistema (se colgaba, pero arrancaba), y conectandolo al ide quedaba en el fatídico "Verifying DMI pool data..."
Changos!

La cosa es que la máquina me tenía mal: ya había reseteado la bios más de una vez, había intentado con fdisk/mbr y con fixboot (que es lo que dicen en los foros, y alguna vez me funcionó) y estaba pensando en dejarle un diskette puesto con grub para arrancar sin pasar por el MBR, hasta que probé Super Grub Disk.



SGD es un disco de inicio que tiene grub, cargado con montones de scripts para hacer las tareas más variadas. Puede:
  • Iniciar un sistema que esté en cualquier partición (cómo SBM, del que hablé hace casi 2 años)
  • Restaurar el boot de una distribución linux que esté instalada y lo haya perdido por cualquiér motivo.
  • Activar, ocultar y desocultar particiones.
  • Hablarte en castellano. El proyecto tiene una interfaz en castellano con una extensa ayuda sobre el uso de cada opción dentro del propio grub, para los que por principios nunca imprimen una hoja con la ayuda antes de resetear la máquina. Por eso dice la página principal que SGD también es didáctico, y enseña principalmente sobre el proceso de arranque y los usos del propio GRUB.

Lo dicho: Después de probar varias opciones entré en Castellano->Avanzado->GRUB->DesInstala GRUB (MBR) y el disco ide volvió a arrancar sin problemas.

Creo que no es necesario aclarar que no grabé el diskette ni el cd para usar SGD, sinó que me bastó con poner la imágen del diskette sgrub.img (en nombre tiene que tener menos de 8 caracteres) en la carpeta /boot/syslinux del pendrive y hacer una entradita en el menú:

label grub menu label Super Grub Disk Kernel memdisk append initrd=sgrub.img

Descarga (imágen de diskette)

Espero que les sea útil. Cualquier problema chiflen.