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).
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):
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.
December 29th, 2009 - 07:32
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?
December 29th, 2009 - 12:45
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”.
December 30th, 2009 - 06:50
ok.. voy a probar entonces… esto me viene como anillo al dedo.. muchas gracias por el tutorial…