MeltIT
5Dec/093

HOW-TO PENDRIVE booteable con GRUB – NTFS + ext2

El proposito de esta guia es explicar el proceso para la creacion de un pendrive booteable.

indice
A. Introduccion
B. Creando particiones con fdisk
C. Dando formato a la particion ext2
D. Instalando GRUB
E. Creando menu.lst para GRUB
F. Instalando MemTest86+
G. Dando formato a la particion NTFS

A)
Test case: SuperTalent PICO C 16GB
Explicacion: Teniendo un pendrive de tal magnitud, el sistema de archivos FAT32 tendia a corromperse. El objetivo era crear un pendrive booteable (que era con SYSLINUX @ FAT32) con NTFS.
Problemas encontrados:
-SYSLINUX no corre en NTFS.
-Windows "lee" una sola particion en unidades USB (no permite unidades particionadas).

Solucion pensada: Particionar para tener un sistema NTFS y la vez tener otra particion booteable.

Datos extras encontrados:
-Windows solo "monta" LA PRIMERA particion de un pendrive.

Requerimientos:
-Pendrive
-Linux (Livecd/virtualpc/nativo) con GRUB
-GParted para linux, aunque se puede hacer sin este, que solo lo vamos a usar para dar formato a la particion.

El pendrive perdera toda la informacion, hacer backup antes.

TODO:
-Agregar instalacion de Ubuntu
-Agregar GParted
-Agregar imagenes

B) Creando particiones con fdisk:
Guia:
1) Conectar pendrive al sistema Linux. (En mi caso use Debian).Conectando pendrive a linux
2) Al conectar en la consola (tty1), aparece algo como lo siguiente:
En mi caso el pendrive es [sdb]. (Nota, se puede encontrar el mismo mensaje usando "dmesg | tail")
3) Ingresamos "fdisk /dev/sdb", donde sdb es el disco que les aparecio. (Tambien lo pueden encontrar en el GParted):Proceso del fdisk
3.1) Ponemos "o" para borrar la tabla de particiones.
3.2) Ponemos "n" para una nueva particion:
3.2.1) "p" para PRIMARIA (primary partition).
3.2.2) "1" para especificar el numero de particion 1. (Esta va a ser la particion NTFS)
3.2.3) First cylinder: (default 1): Le damos enter. (Significa desde el comienzo del disco/ultima particion)
3.2.4) Last cylinder: Aca podemos especificar el numero de cilindro o la cantidad de MB o KB. En mi caso voy a usar cerca de 13GB, pongo: "+13000M"

!!!! Para calcular el tamaño, podemos ir a "fdisk > p" y ahi nos dice: Units = xxxxxx bytes. En mi caso las unidades son de 1MB cada uno. Lo que puedo hacer es, crear primero la particion 2, empezando de TOTAL - 1500 (1.5GB~) y luego la particion 1 con el espacio restante !!!!
!!!! O podemos utilizar el sistema que se utilizo aca, que seria crear la primera particion y usar el resto !!!!

3.3) Repetimos "n" para nueva particion:
3.3.1) "p" para primaria
3.3.2) "2" para el numero de particion 2. (Esta va a ser la particion donde pondremos el boot, en este ejemplo va a ser ext2)
3.3.3) First cylinder: (default xxxx [primer cilindro disponible]): Le damos enter. (Significa desde el comienzo de la ultima particion)
3.3.4) Last cylinder: (default xxxx [ultimo cilindro]): Le damos enter en default asi termina en el fin del disco.

### Hasta ahora creamos una nueva tabla de particiones y creamos las 2 particiones ###

3.4) Procedemos a cambiar los tipos de particiones:[imgR]10[/imgR]
3.4.1) "t" para cambiar el tipo de particion:
3.4.1.1) "1" para cambiar el tipo de particion de la particion 1
3.4.1.2) (con L podemos ver una lista de todos los tipos) en este caso vamos a ponerle el tipo NTFS (HPFS/NTFS), que es el codigo HEX "7"

## La particion 2 no requiere cambio de tipo, ya que por default es 83 (Linux). ##

3.5) Por ultimo, vamos a cambiar el flag de particion de boot:
3.5.1) "a" para cambiar el flag
3.5.1.1) "2" para el numero de particion.

3.6) Verificamos que todo este correcto:
3.6.1) "p" para imprimir tabla de particiones, en mi caso:

3.7) Finalmente, "w" para escribir cambios y salir.

C) ### Dando formato a la particion ext2 ###:
"mkfs.ext2 -v /dev/sdb2"
- Mi unidad era sdb, entonces es sdb2 porque es la particion 2.

D) Instalando GRUB:
[Ahora a montar la particion]:
[Creamos un directorio] mkdir /mnt/usbdisk
[Montamos] mount /dev/sdb2 /mnt/usbdisk

### Copiando archivos "stage" requeridos para grub ###
!! Informacion: Los archivos STAGE estan en el directorio /boot/grub en Debian/Ubuntu, porque estos instalan GRUB, descarga mas abajo !!
[Cambiamos de directorio] cd /boot/grub
[Creamos directorio destino] mkdir /mnt/usbdisk/boot
[Creamos directorio destino] mkdir /mnt/usbdisk/boot/grub
[Copiamos los archivos stage] cp *stage* /mnt/usbdisk/boot/grub

### Instalando grub ###
[Iniciamos el prorgama] grub
@ Definimos la raiz (root): En mi caso era sdb2, en grub la numeracion es (hd0,0),(hd0,1),(hd1,0) [seria hdX,Y; siendo X el numero de disco, Y la particion]: en mi caso: (hd1,1) @
[ Definir raiz: ] root (hd1,1)
@ Obtendremos un mensaje: Filesystem type is ext2fs, partition type 0x83 @
[ Instalamos ] setup (hd1)
@ Va a buscar los archivos stage y dsp va a poner Done @
[ Salimos ] quit

E + F)
### Creando menu.lst ###
!! En este ejemplo vamos a crear un menu.lst con el memtest86+, lo pueden descargar y extraer manualmente clickeando el link abajo !!

[Cambiamos directorio] cd /mnt/usbdisk/boot
[Creamos directorio images para organizar: ] mkdir images
[Cambio direcotrio] cd images/
[Descargando memtest86+ ] wget http://www.memtest.org/download/4.00/memtest86+-4.00.bin.gz
[Extrayendo .gz ] gunzip -d memtest86+-4.00.bin.gz
[Renombramos (opcional) ] mv memtest86+-4.00.bin.gz memtest86
[Vamos al directorio de grub] cd ..
[ ... ] cd grub
[ Creamos un archivo menu.lst ] touch menu.lst
[Procedemos a editar el archivo, en mi caso voy a usar nano] nano menu.lst

-- Contenido del archivo menu.lst --

default 0
timeout 30
color cyan/blue white/blue

#Memtest86
title Memtest86+
root (hd0,1)
kernel /boot/images/memtest86
#/Memtest86

-- Explicacion del archivo:

default: Numero de opcion por defecto
timeout: Tiempo limite para auto-bootear
color: Colores

title: Titulo de la opcion
root: raiz
kernel: imagen a bootear

[Para agregar nuevos, copiar las ultimas 3 lineas]

Ctrl + O = Guardar
Ctrl + X = Salir

### Terminando: ###
[Cambiamos directorio ] cd /
[Desmontamos particion] umount /dev/sdb2
[Expulsamos disco] eject /dev/sdb

G)
### Dando el formato a la particion NTFS ###
En windows:
- Boton derecho a mi pc -> "Administrar"
- Sobre el menu izquierdo: Administrador de discos
- Buscamos la unidad removible, que va a estar particionada en 2:
- Boton derecho a la particion 1 -> Formatear: Ahi seleccionan NTFS, Formato Rapido, Tamaño de asignacion predeterminado -> Formatear.

El pendrive esta listo.
Si falta info, o necesitan algun paso mas detallado, avisen que se agrega. Las imagenes las termino de armar y las agrego.

Comments (3) Trackbacks (0)
  1. No me quedo algo claro… cuando definis la raiz (root) en tu caso tenes que declarar root (hd1,1) dado que tenes un disco (hd0) y el pen (hd1).. en caso de que tuvieras mas de un disco ¿sería otro numero el hd del pen?

  2. Si tenes más de un disco, tenes que ver el numero que es.

    Si tenes todos hdX (IDE) o sdX (SATA), entonces es el mismo:
    sda = hd0
    sdb = hd1
    sdc = hd2

    De todas formas, si queres ver las unidades: “sudo fdisk -l | less”.

  3. ok.. voy a probar entonces… esto me viene como anillo al dedo.. muchas gracias por el tutorial…


Leave a comment

 

No trackbacks yet.