PDA

Ver la versión completa : Error 17 al cargar el grub ¿?



el fandy
30-05-2008, 18:18
Hola, el otro dia me llego mi cd de ubuntu 8, y decidí instalarlo en mi pc antiguo, amd k-6 a 500mhz, 192 de ram, 1 disco duro de 250gb. Ya tenia instalado el WXP y la partición la hice con el partition magic8: Quedendo el disco duro así:

WXP todo el disco duro 210gb + o - con formato NTFS
Ubuntu 8 resto del disco duro 30gb con formato / en ext3.
Intercambio 300mb + o - el doble de la ram con formato swap.

Creo que mi problema fué dejar a Ubuntu al final (creo)

Ahora al iniciar el pc me sucede que no carga ningun SO, ni Windows ni Ubuntu ¿? me dice esto:

GRUB LOADING PLEASE WAIT

ERROR17

He buscado mucho por google mucho, he encontrado cosas pero no he logrado solucionar el problema. También intenté en el menú de ubuntu instalar solo ubuntu en todo el disco, la instalacion con ubuntu nunca me ha dado problemas, y cuando termina la instalación siempre el error 17, o a veces el error 18. Luego formatee con el cd de WXP y lo volví a instalar, instalé el partition magic, y intenté volver a instalar ubuntu, las pariciones las cree igual que las habia echo, creí que podia ser un error en la instalación de ubuntu y que este no me instalo bien el arranque grub. Así pues al finalizar la instalacion otra vez me ha sucedido lo mismo. Algo he hecho mal, las particiones? la instalacion de ubuntu no me dió ningun error. Hay alguna forma con la que pueda, instalar bien el grub?
Espero que me guieis un poco, y si alguien ya ha echo esto antes y sabe como hacerlo bien espero que me lo diga.

Saludos

j8k6f4v9j
30-05-2008, 20:29
Hay muchas formas de reparar el mbr.

Una de ellas es:
-Arrancas con un sistema operativo alternativo (un GNU/linux, claro), montas la partición del "linux roto" en un directorio cualquiera (por ejemplo, /target)
-Entras en ese directorio. Es decir, entras en la raíz de ese sistema
-ejecutas el comando chroot

Con eso es como si estuviésemos en ese sistema.

-Ejecutas el comando `grub`
-Y en el prompt de grub ejecutas:

root(hd0,0)
(con la anterior línea le dices a grub que arranque desde la primera partición del primer disco)

-y luego:

setup(hd0)
(que significa que debe instalar el cargador en el mbr del primer disco)

Eso suponiendo que el archivo /boot/grub/menu.lst está bien configurado. Hay que tener en cuenta que hicimos chroot, así que el menu.lst del sistema que queremos arrancar se encuentra realmente en /boot/grub/menu.lst y no en /target/boot/grub/menu.lst

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
31-05-2008, 01:45
Hola de nuevo j8. Disculpa por lo que te voy a preguntar, pero soy aun bastante ignorante en todo esto...



Una de ellas es:
-Arrancas con un sistema operativo alternativo (un GNU/linux, claro), montas la partición del "linux roto" en un directorio cualquiera (por ejemplo, /target)
-Entras en ese directorio. Es decir, entras en la raíz de ese sistema
-ejecutas el comando chroot


Con esto te refieres a entrar con ubuntu en live cd (live sesion) no? luego.... ya me he perdido. Debo abrir una terminal, ir a /target, y luego chroot.... (no sé ni donde estoy perdon) explicame esto como lo hago porfavor..



El siguiente paso lo he leido, he intentado hacerlo, en la terminal, unas veces me daba error y otras no ¿?

el documento menu.lst si lo tengo en, /boot/grub/menu.lst

Lo siento veo que lo has explicado bien, pero yo ya me he perdido al principio.

Un saludo

j8k6f4v9j
31-05-2008, 02:26
Con esto te refieres a entrar con ubuntu en live cd (live sesion) no?por ejemplo

luego.... ya me he perdido. Debo abrir una terminal, ir a /target/target es el directorio donde montas la raíz de la partición que tienes instalada en el disco duro, has de hacer algo como
sudo mount /dev/hda3 /targetaunque cambiando /dev/hda3 por la partición correcta

, y luego chroot.... (no sé ni donde estoy perdon) explicame esto como lo hago porfavor..
luego
cd /tarjet && chroot

Y ahí ya sigues con lo demás.

Pero es muy probable que no haga falta nada de esto.

Pega aquí la tabla de particiones que te muestra el comando
cfdisk `mount | sed "s/^\(\/dev\/...[0-9]\).*$/\1/"`o en su defecto
fdisk -l `mount | sed "s/^\(\/dev\/...[0-9]\).*$/\1/"` y te lo confirmo

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
31-05-2008, 17:04
Hola de nuevo.

Cuando hago esto
sudo mount /dev/hda3 /target en mi caso
sudo mount /dev2/hda1 /target me dice mount: el punto de montaje /target no existe (creo que lo hacia bien así) dev2 es la paricion donde está ubuntu, y hda1 es la segunda partición, si fuera windows seria dev1 y hda0 creo¿?



Pega aquí la tabla de particiones que te muestra el comando


Te refieres a esto??



ubuntu@ubuntu:~$ cfdisk `mount | sed "s/^\(\/dev\/...[0-9]\).*$/\1/"`

Uso:
Imprimir versión:
cfdisk -v
Imprimir tabla de particiones:
cfdisk -P {r|s|t} [opciones] dispositivo
Uso interactivo:
cfdisk [opciones] dispositivo

Opciones:
-a: Utiliza flecha en lugar de resaltado.
-z: Empieza con tabla de particiones de cero en lugar de leerla del disco.
-c C -h H -s S: Modifica la idea del núcleo sobre el número de cilindros,
el número de cabezas y el número de sectores por pista.




ubuntu@ubuntu:~$ fdisk -l `mount | sed "s/^\(\/dev\/...[0-9]\).*$/\1/"`
last_lba(): I don't know how to handle files with mode 40555
last_lba(): I don't know how to handle files with mode 40755
last_lba(): I don't know how to handle files with mode 40755
last_lba(): I don't know how to handle files with mode 40755
last_lba(): I don't know how to handle files with mode 40755
last_lba(): I don't know how to handle files with mode 41777
last_lba(): I don't know how to handle files with mode 40755
last_lba(): I don't know how to handle files with mode 41777
last_lba(): I don't know how to handle files with mode 40755
last_lba(): I don't know how to handle files with mode 41777
last_lba(): I don't know how to handle files with mode 40500
No se puede abrir /dev/sdb1

No sé si está mal la particion, o el que estoy mal soy yo.

Si ya lo sé soy un tarugo.

Saludos

j8k6f4v9j
31-05-2008, 19:47
Cuando hago esto en mi caso me dice mount: el punto de montaje /target no existe
Sólo tienes que hacerlo sobre un directorio que exista. Preferiblemente uno vacío. O crearlo tú mismo antes:
mkdir -p /target




(creo que lo hacia bien así) dev2 es la paricion donde está ubuntu, y hda1 es la segunda partición, si fuera windows seria dev1 y hda0 creo¿?
No creo, la parte /dev/ es siempre invariable, es un directorio del sistema, lo que cambia es lo que sigue.


Te refieres a esto??

No sé si está mal la particion, o el que estoy mal soy yo.

Si ya lo sé soy un tarugo.



Nada de eso, fallo mío, no comprobé bien el comando.

Te explico: Yo creo que se trata de una incoherencia entre la configuración de grub (en menu.lst) y la configuración real del equipo.

El error 17 de grub es éste:

5. Error Grub 17

Situación

Listado de Código 5.1: Mensaje Grub

root (hd0,0)
Sistema de ficheros desconocido Tipo de partición 0x7

Error 17 : No se puede montar la partición seleccionada

( root (hd0,0)
filesystem type unknown partition type 0x7

Error 17 : Cannot mount selected partition )

Solución

Este error se presenta si la partición existe, pero GRUB no reconoce el sistema de ficheros.

Tiene que comprobarse la configuración root(x,y) de grub.conf

También, si se está tratando de iniciar Windows, hay que asegurarse de que el archivo grub.conf contiene root (hdX,Y) (o rootnoverify (hdX,Y)) y chainloader (hdX,Y)+1 en su entrada.

Así que lo primero que tienes que hacer es averiguar el dispositivo en el que está realmente la raíz de tu sistema operativo.
Prueba esto a ver:


for i in {a..f};do sudo fdisk -l /dev/sd$i;done


Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
01-06-2008, 20:16
Hola de nuevo j8, ya hice esto



Así que lo primero que tienes que hacer es averiguar el dispositivo en el que está realmente la raíz de tu sistema operativo.
Prueba esto a ver:

Y esto es lo que me ha dado:


To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

ubuntu@ubuntu:~$ for i in {a..f};do sudo fdisk -l /dev/sd$i;done

Disco /dev/sda: 250.0 GB, 250059350016 bytes
255 cabezas, 63 sectores/pista, 30401 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0xce1d0d98

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 26533 213126291 7 HPFS/NTFS
/dev/sda2 30353 30401 393592+ f W95 Ext'd (LBA)
/dev/sda3 26534 30352 30676117+ 83 Linux
/dev/sda5 30353 30401 393561 82 Linux swap / Solaris

Las entradas de la tabla de particiones no están en el orden del disco

Disco /dev/sdb: 1017 MB, 1017117696 bytes
33 cabezas, 63 sectores/pista, 955 cilindros
Unidades = cilindros de 2079 * 512 = 1064448 bytes
Identificador de disco: 0x00000000

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 1 956 993263 6 FAT16
La partición 1 tiene distintos principios físicos/lógicos (¿no Linux?):
físicos=(0, 1, 1) lógicos=(0, 0, 33)
La partición 1 tiene distintos finales físicos/lógicos:
físicos=(217, 32, 63) lógicos=(955, 17, 42)



Me dice que en realidad tengo 5 particiones?? y de donde han salido?? igual son restos de las antiguas instalaciones??

Que chapucero que soy.

Un saludo

j8k6f4v9j
01-06-2008, 21:57
Bien, parece que el disco duro de tu sistema es /dev/sda


Me dice que en realidad tengo 5 particiones?? y de donde han salido?? igual son restos de las antiguas instalaciones??

No, Las particiones que tienes son:


/dev/sda1 * 1 26533 213126291 7 HPFS/NTFS

Partición de güindous
/dev/sda3 26534 30352 30676117+ 83 Linux

Muy probablemente, la partición de tu GNU/linux
/dev/sda5 30353 30401 393561 82 Linux swap / Solaris

Área de intercambio de memoria (swap)


Como aclaración sobre el resto de particiones que te aparecen:


/dev/sdb

Este dispositivo es seguramente un pendrive o stick usb que tenías insertado en el momento de buscar las particiones del sistema.
/dev/sda2 30353 30401 393592+ f W95 Ext'd (LBA)

No es una partición como el resto que hemos visto más arriba, sino que es una partición extendida. Es decir, una partición que contiene particiones. Si te fijas en los números de comienzo y fin de la partición, coinciden con los de la partición swap. Esto es debido a que esta partición extendida contiene la partición swap (es decir, elegiste partición de tipo lógico para el espacio de swap)


Como última nota: Las particiones para distribuciones de GNU/linux no necesitan ser primarias. Por lo que yo recomendaría hacer siempre particiones lógicas cuando se vayan a usar con este propósito. ¿Por qué? Porque con este tipo de discos sólo se permite un máximo de 4 particiones primarias, mientras que las particiones lógicas no tienen este tipo de limitación, son mucho más versátiles.

Lo siguiente es comprobar que la configuración de tu archivo /boot/grub/menu.lst es la correcta. Puedes pegar aquí el contenido de dicho archivo sin temor alguno.

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
01-06-2008, 22:23
/dev/sdb
Este dispositivo es seguramente un pendrive o stick usb que tenías insertado en el momento de buscar las particiones del sistema.

Así es.


Lo siguiente es comprobar que la configuración de tu archivo /boot/grub/menu.lst es la correcta. Puedes pegar aquí el contenido de dicho archivo sin temor alguno.


Aqui está:


menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default 0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=01152748-92d3-4cdb-b29b-51899bdd1dd9 ro

## Setup crashdump menu entries
## e.g. crashdump=1
# crashdump=0

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,2)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## should update-grub lock old automagic boot options
## e.g. lockold=false
## lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title Ubuntu 8.04, kernel 2.6.24-16-generic
root (hd0,2)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=01152748-92d3-4cdb-b29b-51899bdd1dd9 ro quiet splash
initrd /boot/initrd.img-2.6.24-16-generic
quiet

title Ubuntu 8.04, kernel 2.6.24-16-generic (recovery mode)
root (hd0,2)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=01152748-92d3-4cdb-b29b-51899bdd1dd9 ro single
initrd /boot/initrd.img-2.6.24-16-generic

title Ubuntu 8.04, memtest86+
root (hd0,2)
kernel /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1




saludos

j8k6f4v9j
01-06-2008, 22:32
Parece estar bien, pero asegurémonos. ¿Cuál es la salida del siguiente comando?

ls -l /dev/disk/by-uuid/
Edito: El comando blkid no nos sirve, porque no estamos ejecutándolo sobre el sistema "roto"
¿Y el contenido de /etc/fstab?

¡OJO!: Los archivos son los del disco que estamos examinando, no los del sistema de archivos del livecd. Éstos archivos se encuentran en las rutas que estoy dando sólo después del chroot !

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
01-06-2008, 22:44
ls -l /dev/disk/by-uuid/

Sin ejecutar chroot:



ubuntu@ubuntu:~$ ls -1 /dev/disk/by-uuid/
01152748-92d3-4cdb-b29b-51899bdd1dd9
7E70E4F070E4B057
81b5ce2f-9b51-4e64-b2aa-552dfcb232bd


Ejecutando chroot:



ubuntu@ubuntu:~$ chroot
chroot: falta un operando
Pruebe `chroot --help' para más información.
ubuntu@ubuntu:~$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 2008-06-02 18:58 01152748-92d3-4cdb-b29b-51899bdd1dd9 -> ../../sda3
lrwxrwxrwx 1 root root 10 2008-06-02 18:58 7E70E4F070E4B057 -> ../../sda1
lrwxrwxrwx 1 root root 10 2008-06-02 18:58 81b5ce2f-9b51-4e64-b2aa-552dfcb232bd -> ../../sda5


No estaba muy seguro aunque creo que me indicabas eso, ejecutar primero chroot. Lo hago de las dos formas por si acaso, aunque creo que te referias a la segunda forma.


/etc/fstab

Me dá permiso denegado.

Un saludo

el fandy
02-06-2008, 17:26
No habia visto que habis editado.

Un saludo

j8k6f4v9j
02-06-2008, 18:31
Me dá permiso denegado.
Es raro, porque al menos en debian el archivo tiene lectura permitida por todos. A ver qué te da el comando (en el chroot):
stat -c %a /etc/fstab

Debería darte 644

Podría ser ése el error, ya que el error 17 de grub es un error de lectura (normalmente porque intenta leer en un sistema de archivos desconocido)

Si el archivo está bien, lo siguiente sería probar a reinstalar el grub en el sector de arranque del disco duro.


Tienes que hacer el chroot
Ejecutar el comando grub
Desde el prompt de grub : root hd(0,2)
También en el prompt de grub: setup hd(0)
Reiniciar para ver si ha habido suerte


Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
02-06-2008, 20:10
j8, he tenido que formatear, para volver a instalar WXP, mi hermano tenia que imprimir unos trabajos y era urgentisimo, que nada ahora me tocará volver a empezar. Hubiera podido probar lo que me has dicho en el ultimo post, pero ha sido una urgencia.

Me jode porque me hubiera gustado, intentar reparar el error, por si me sucede en otra ocasion, almenos hubiera sabido por donde empezar gracias a los comandos que me has indicado.


Podría ser ése el error, ya que el error 17 de grub es un error de lectura (normalmente porque intenta leer en un sistema de archivos desconocido)

No sé si pudiera ser eso, en fin lo dejamos así.

Ahora intentaré hacer las particiones de nuevo.... sabes como poder evitar el problema del grub error 17? porque seguramente si sigo los mismos pasos me vuelva a dar el mismo problema, aunque podria intentar con lo que me has dicho, intentar reinstalar el grub, después de hacer todo.

Saludos

j8k6f4v9j
03-06-2008, 09:57
Si no has reparticionado el disco, se supone que sólo se formatea la partición de WłNDOW$.

Además, si no hiciste nada raro durante la instalación, es posible que te vuelva a pasar, y nunca está de más ir sabiendo cosillas ;)

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
03-06-2008, 21:56
Hola de nuevo, nada estoy en las mismas, no sé que es lo que hago mal.
Cundo instalé WXP lo eliminé todo, borré todas las particiones.
Ahora he vuelto a instalar ubuntu, pero he utilizado el gparted que lo lleva ubuntu, lo hize a traves del live cd. No hubo problema alguno, y el orden y formato lo he hecho igual (creo) porque el problema ahora es que me sale error 18. Igualmente, primero WXP, luego Ubuntu, y luego swap, en este caso le he dado mayor tamaño a la particion de ubuntu.



Como última nota: Las particiones para distribuciones de GNU/linux no necesitan ser primarias. Por lo que yo recomendaría hacer siempre particiones lógicas cuando se vayan a usar con este propósito. ¿Por qué? Porque con este tipo de discos sólo se permite un máximo de 4 particiones primarias, mientras que las particiones lógicas no tienen este tipo de limitación, son mucho más versátiles.


Yo siempre las he hecho asi, creo si no me he equivocado.

No he tocado nada mas, pero no sé si los comandos que me has indicado anteriormente pueden variar o no para sacar la información. Creo que no así que los expongo a continuación:

La primera comprobación que me indicaste era para averiguar el dispositivo en el que está realmente la raíz del sistema operativo.


for i in {a..f};do sudo fdisk -l /dev/sd$i;done



ubuntu@ubuntu:~$ for i in {a..f};do sudo fdisk -l /dev/sd$i;done

Disco /dev/sda: 250.0 GB, 250059350016 bytes
255 cabezas, 63 sectores/pista, 30401 cilindros
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Identificador de disco: 0xce1d0d98

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 12748 102398278+ 7 HPFS/NTFS
/dev/sda2 30353 30401 393592+ 82 Linux swap / Solaris
/dev/sda3 12749 30352 141404130 5 Extendida
/dev/sda5 12749 30352 141404098+ 83 Linux

Las entradas de la tabla de particiones no están en el orden del disco

Disco /dev/sdb: 1017 MB, 1017117696 bytes
33 cabezas, 63 sectores/pista, 955 cilindros
Unidades = cilindros de 2079 * 512 = 1064448 bytes
Identificador de disco: 0x00000000

Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sdb1 1 956 993263 6 FAT16
La partición 1 tiene distintos principios físicos/lógicos (¿no Linux?):
físicos=(0, 1, 1) lógicos=(0, 0, 33)
La partición 1 tiene distintos finales físicos/lógicos:
físicos=(217, 32, 63) lógicos=(955, 17, 42)



Estavez no sé como, pero creo que a ubuntu esta vez lo he metido aqui:

/dev/sda5 12749 30352 141404098+ 83 Linux

después de swap.

Ahora la segunda comprobación era ver la configuración de /boot/grub/menu.lst



# menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default 0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=3ffeae98-7dd7-495f-b5c7-5e85593dc960 ro

## Setup crashdump menu entries
## e.g. crashdump=1
# crashdump=0

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,4)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## should update-grub lock old automagic boot options
## e.g. lockold=false
## lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title Ubuntu 8.04, kernel 2.6.24-16-generic
root (hd0,4)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=3ffeae98-7dd7-495f-b5c7-5e85593dc960 ro quiet splash
initrd /boot/initrd.img-2.6.24-16-generic
quiet

title Ubuntu 8.04, kernel 2.6.24-16-generic (recovery mode)
root (hd0,4)
kernel /boot/vmlinuz-2.6.24-16-generic root=UUID=3ffeae98-7dd7-495f-b5c7-5e85593dc960 ro single
initrd /boot/initrd.img-2.6.24-16-generic

title Ubuntu 8.04, memtest86+
root (hd0,4)
kernel /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1


Y creo que sí, a ubuntu lo he metido después de swap.


El tercero era:

ls -l /dev/disk/by-uuid/



ubuntu@ubuntu:~$ chroot
chroot: falta un operando
Pruebe `chroot --help' para más información.
ubuntu@ubuntu:~$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 2008-06-04 00:55 0ea7d447-7ba7-4d4e-9682-06929069d928 -> ../../sda2
lrwxrwxrwx 1 root root 10 2008-06-04 01:47 187C-A0F6 -> ../../sdc1
lrwxrwxrwx 1 root root 10 2008-06-04 00:55 3ffeae98-7dd7-495f-b5c7-5e85593dc960 -> ../../sda5
lrwxrwxrwx 1 root root 10 2008-06-04 00:55 4808AEBC08AEA900 -> ../../sda1
ubuntu@ubuntu:~$


El cuarto:


stat -c %a /etc/fstab

Si me da 644


Creo que no me queda nada mas, y creo que no me he saltado nada.

un saludo

j8k6f4v9j
04-06-2008, 01:37
A ver, no sé si en las anteriores pruebas también te ocurrió lo mismo, pero esto es un error, puesto que el comando chroot necesita al menos un argumento, que es el directorio que será la nueva raíz:




ubuntu@ubuntu:~$ chroot
chroot: falta un operando
Pruebe `chroot --help' para más información.

Además, el orden de los comandos tampoco es correcto, primero hay que hacer el chroot, para luego ejecutar los comandos, ya que si no lo que estamos viendo es el resultado de las pruebas para los archivos del livecd

Quizá (si el problema está en el grub que te instala el disco de instalación) baste con ejecutar grub-install. Te he preparado un script muy simple que hace todo de una vez y además intenta instalar el grub de nuevo. Si falla, ya puedes probar a hacerlo desde el prompt de grub.

Tienes que ponerlo en un archivo (por ejemplo script.sh y luego ejecutarlo con:


chmod +x script.sh && sudo ./script.sh

El contenido de script.sh es éste:


#!/bin/sh
echo 1 > /real

umount /dev/sda5 2> /dev/null

mkdir -p /mnt/ubuntu
mount /dev/sda5 /mnt/ubuntu

cd /mnt/ubuntu
chroot .

if [[ ! -f /real ]]; then
echo -n "\n\nEstamos en el chroot ;)\n\n"
else
echo -n "\n\nERROR: El chroot ha fallado ;)\n\n"
fi
echo -e "\n\n##### FSTAB ####\n\n"
echo "Modo:"
echo "--------"
stat -c %a /etc/fstab
echo "Contenido:"
echo "--------------"
cat /etc/fstab

echo -e "\n\n#### UUIDs de DISCOS ####\n\n"
ls -l /dev/disk/by-uuid/

echo -e "\n\n#### GRUB ####\n\n"
echo "Modo de menu.lst:"
echo "-------------------------"
stat -c %a /boot/grub/menu.lst
echo "Contenido de menu.lst:"
echo "------------------------------"
cat /boot/grub/menu.lst


grub-install




Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
05-06-2008, 15:28
Además, el orden de los comandos tampoco es correcto, primero hay que hacer el chroot, para luego ejecutar los comandos, ya que si no lo que estamos viendo es el resultado de las pruebas para los archivos del livecd

Si, supongo que debe ser así, siempre que he hecho chroot me ha dicho lo mismo.

Tampoco puedo crear, directorios ni archivos siempre me da error. Así que nada, entonces siempre he estado viendo el contenido del live cd....


Si falla, ya puedes probar a hacerlo desde el prompt de grub.

No sé a que te refieres con eso, la verdad que formas de instalar y particionar he probado unas cuantas, pero lo he hecho tantas veces que al final ya no tienes ni ganas de volver a intentar nada porque siempre me sucede lo mismo.
Quizás, sea algun problema, entre el disco duro y la bios?? la verdad que y no sé ni que pensar en donde está el problema.

Ya lo dije al principio, que no tengo casi ni idea sobre estas cosas, en fin gracias por la paciencia que has tenido, no pensaba que instalar alguna distribución de linux fuera tan complicado, y diera tantos problemas, o igual es mi pc, que a llegado el momento de renovar....

j8k6f4v9j
05-06-2008, 15:38
Ya lo dije al principio, que no tengo casi ni idea sobre estas cosas, en fin gracias por la paciencia que has tenido, no pensaba que instalar alguna distribución de linux fuera tan complicado, y diera tantos problemas, o igual es mi pc, que a llegado el momento de renovar....

Aprendes rápido, e instalar una distribución de GNU/linux hoy en día está tirado, lo que pasa es que no se pueden prever todos los posibles problemas. Tú estás teniendo uno específico, que es cuestión de mirar con detenimiento. No pierdas la paciencia.

Otra cosa es que has probado varias formas de particionar, todas correctas, pero no distintas distribuciones. Yo no recomiendo ubuntu, tiene demasiados fallos y la verdad sospecho que todo esto es debido a uno de ellos. Puedes probar otra distribución, hay muchísimas, o puedes intentar arreglar el problema por tí mismo, como vienes haciendo. Lógicamente, la primera de las opciones es la más sencilla porque, como te digo, y aunque no pueda estar seguro de ello, pienso que es fallo de ubuntu.

PD: Seguramente no tienes permisos de escritura porque ejecutas los comandos como usuario no privilegiado (ubuntu). Antecede cualquier comando con sudo delante para que se ejecuten como root
sudo comando

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
05-06-2008, 15:50
Otra cosa es que has probado varias formas de particionar, todas correctas, pero no distintas distribuciones. Yo no recomiendo ubuntu, tiene demasiados fallos y la verdad sospecho que todo esto es debido a uno de ellos. Puedes probar otra distribución, hay muchísimas, o puedes intentar arreglar el problema por tí mismo, como vienes haciendo. Lógicamente, la primera de las opciones es la más sencilla porque, como te digo, y aunque no pueda estar seguro de ello, pienso que es fallo de ubuntu.

Ya, sé que hay mas distribuciones, os he leido a todos quejandos de lo mal que funciona ubuntu y que tiene fallos.... por eso también me baje Debian, pero solo el sistema base, con ningun paquete, y probé a instalarlo, junto con WXP y también con todo el disco para el solo, y nada, lo de siempre, de aquí que crea que sea cosa del pc....

Bufff, antes de comentarte el problema, me he esmerado en buscar por ahí, lo que pasa es que nunca me han pasado cosas de estas, y ahora mismo estoy perdido.

Cuando pueda volveré a probar lo que me dices, aunque al final cansa, el otro dia probé también a solo particionar en 2 con WXP ya instalado, y decirle a ubuntu que ocupe el siguiente espacio disponible, y el final ya lo sabes....

Saludos

j8k6f4v9j
05-06-2008, 16:52
Se me ha ocurrido otra cosa: Quizá esté el stick usb conectado siempre, si es así prueba a quitarlo durante la instalación.

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
05-06-2008, 18:09
:confused:He visto que hay diferentes versiones de grub, creo, yo tengo la 1.5 porque me dice:

GRUB Loading stage1.5

GRUB Loading, please wait....

Error 18

Quizás, sea que necesito una version de grub mas vieja? porque mi bios es vieja y esta no la hacepta? ya se me va la pelota...


EDITO: Porque me dices lo del usb, has visto algo en la comprobacion? curiosamente ahora no me funciona, me dice que lo formatee, pero no puedo ni formatearlo ni abrirlo ¿? miro en propiedades y está todo el volumen en uso, pero no me indica que capacidad hay ahí dentro, y no puedo hacer nada con el ahora y lo curioso es que tenia cuatro apuntes que no pesaban nada ESTE PC ME ESTÁ VOLVIENDO LOCO CREO QUE ESTÁ POSEIDO:confused::confused:

EDITO OTRO: He analizado el usb con el tuneup y me dice:


No se ha podido analizar codigo de error 1005(el volumen no contiene un sistema de archivos conocido)

Igual me lo dejé en alguna instalación puesto y .....

j8k6f4v9j
05-06-2008, 19:17
No, eso no es la versión de grub, sino la etapa del arranque.

Ahora sí estoy casi seguro de que es eso, que está buscando la raíz del sistema en el usb, por eso, si está conectado el usb, da error de tipo de sistema de archivos desconocido (no puede cargar la configuración desde el fat (además de que no está ahí), y si lo quitas también falla.

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
05-06-2008, 19:22
Bueno, al usb que le den....

Perdona entonces que sugieres? que deberia de hacer ahora? no volver a ponerlo el usb y ....

j8k6f4v9j
05-06-2008, 19:35
Prueba con el script (como root!) de
http://www.hackhispano.com/foro/showpost.php?p=155448&postcount=17

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
05-06-2008, 19:37
Ahora sí estoy casi seguro de que es eso, que está buscando la raíz del sistema en el usb, por eso, si está conectado el usb, da error de tipo de sistema de archivos desconocido (no puede cargar la configuración desde el fat (además de que no está ahí), y si lo quitas también falla.

Ahora que me acuerdo, la ultima vez que formatee windows, cuando llegué al punto donde me salen las particiones, me salieron la de WXP, UBUNTU, SWAP, y luego habia otra a parte que me ponia MBR, y detectaba unos 900 y pico mb este usb tiene 1gb, lo que detectaba era el usb que me lo dejé ahí metido, puede que sea este el problema? que detecte el stick como el arranque? no sé si me estoy confundiendo, porque anteriormente en anteriores instalaciones, y formateos, no lo tenia puesto ¿me estoy volviendo loco?

Que sugieres que haga ahora?

el fandy
05-06-2008, 20:55
Esto es imposible.

Hecho lo del script, nada, no me lo detecta y siempre como root como me has dicho, pero nada me decia que no encontraba el archivo.... con este pc es imposible

j8k6f4v9j
05-06-2008, 21:09
Es simplemente por la sintaxis. Debes aprender a moverte por el sistema de archivos mediante la línea de comandos:

Para ver los archivos de un directorio:
ls
Para ejecutar un archivo del directorio como root:
sudo ./archivo

Además, es mejor siempre pegar el error exacto de un comando, porque si me dices "no encuentra el archivo", no tengo posibilidad de saber si se trata de este error:
ls ejemplo.sh
ls: no se puede acceder a ejemplo.sh: No existe el fichero o el directorioque significa que no hay un archivo llamado ejemplo en el directorio en el que nos encontramos, o de este otro:
bash: ejemplo.sh: command not found
que es el resultado de intentar ejecutar un comando del directorio actual sin proporcionar la ruta correcta hacia el archivo al intérprete de comandos, ya que éste busca el programa en $PATH, el lugar donde se almacenan los binarios y ejecutables del sistema.
La forma correcta de ejecutar un script ubicado en el directorio actual es:
sh ejemplo.sho incluso
./ejemplo.shsi el archivo tiene activado el bit de ejecutable.

Como digo, para poder guardar un registro de lo que se ha hecho y lo que no, así como lo que a funcionado y lo que no, es necesario aportar tanto los comandos utilizados y la sintaxis exacta que se ha usado, así como el error o salida también exactos que hemos obtenido con ellos

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:
[/QUOTE]

el fandy
06-06-2008, 00:15
He, descargado el super grub disk, lo he metido y he logrado arrancar windows, me ha dicho que tenia que instalar '' ahora no me acuerdo '' y al reiniciar '' solo inicia windows'' ja, el solito se ha reparado, la madre que lo .... matriculó:mad:

el fandy
10-06-2008, 01:17
Hola j8, al fin he visto lo que es el grub, si el dichoso grub, al final me he decidido en instalar ubuntu8 en mi portatil, y todo perfecto a la primera¡¡¡¡¡ he entrado en vista y todo ok y luego en ubuntu y todo ok, la partición recovery de vista creo que también esta bién,.......
Bueno, después de intentarlo y intentarlo de nuevo,y otra vez en mi vieja pc lo he dejado por imposible, supongo que si otra vez me ocurre el mismo error no sabré como solucionarlo, aunque siempre puedo volver a probar lo que me has indicado anteriormente....

Ahora intentaré aprender un poco, leer sobre el tema y cogerme fuerte a los manuales que haya..... por el momento no sé muy bien como configurar el modem, que espero que no me cueste tanto como el dichoso error del grub.......

Bueno, gracias por tu paciencia, aunque solo he empezado.......

Un saludo

hystd
10-06-2008, 03:32
Buenas! me alegro que se te solucionara... aun así veo que dices:


Bueno, después de intentarlo y intentarlo de nuevo,y otra vez en mi vieja pc lo he dejado por imposible, supongo que si otra vez me ocurre el mismo error no sabré como solucionarlo, aunque siempre puedo volver a probar lo que me has indicado anteriormente....


Acabo de leer el transcurso del hilo, y bueno está muy bien las herramientas y sobre todo la solución que te da mi compañero j8.

Creo que es conveniente tener un poco de información al respecto antes de usar las herramientas que te lo dan ya todo hecho, es decir creo conveniente ser capaz de reparar el problema a "pelo", como un buen l33t xD.

A ver, no se por donde empezar, asi que empezaré por el principio :)

En la arquitectura x86, cuando se inicia el sistema, el procesador accede a la memoria ROM (BIOS), para empezar a ejecutar instrucciones. Dichas instrucciones corresponden a un pequeño firmware, que permite tomar el control del sistema y hacer un breve chequeo de los componentes hardware. Si todo ha ido correctamente inicia el arranque desde la primera unidad física indicada por dicho programa en la secuencia de arranque. Si el intento es fallido, repite la operación con la segunda unidad de la lista y así hasta que encuentre una unidad arrancable.

Suponiendo que, como es lo normal, la unidad arrancable es el disco duro, entonces el programa de la BIOS accederá al dicho disco y procederá a leer su primer sector. (Primeros 512 bytes, que corresponden al Sector de Particiones, es decir al Sector 0, según direccionamiento LBA, o cilindro 0, cabeza 0, sector 1, según direccionamiento CHS).

Una vez leidos esos 512 bytes, se transfieren a la memoria RAM, y allí suceden varias cosas...

De esos 512 bytes, los primeros 446 bytes corresponden al Master Boot, que no es más que un programa el cual tomará el control después de haberlo hecho el programa de la BIOS (el firmware). Los siguientes 64 bytes corresponden a la tabla de particiones, que cometaré a continuación, y por último los 2 últimos bytes, que corresponden con la firma (siempre tienen el mismo valor).

Los primeros 446 bytes, son los que solían modificar los antiguos virus de MSDOS, para corromper el sistema y hacerlo no arrancable. Es decir el virus machacaba el código bueno del masterboot, por el suyo propio, cuya única misión era mostrar un mensajito en pantalla, y si sobraba espacio se ponían NOP's para completar los 446 bytes... (qué tiempos...xD).

Este detalle puede ser el que te esté provocando todos los problemas, !y no!, no quiere decir que tengas un virus, sino que algún/os byte/bytes de esos 446 se haya modificado, que puede ocurrir... no obstante continúa leyendo...

Los siguientes 64 bytes, que corresponden con la tabla de particiones, indican como estarán distribuidas las particiones. En esa tabla hay 4 entradas (4 filas) de 16 bytes cada una. Es por ello por lo que sólo se pueden tener 4 particiones primarias. Dependiendo del contenido de cada uno de esos 16 bytes harán que la partición signifique una cosa u otra. Por ejemplo el primer byte indica que si la partición es activa (valor 80h) o no (valor 00h), es decir, si en el byte 447 del sector de partición hay un 80, quiere decir que esa partición es arrancable, y si hay un 00 quiere decir que vaya a buscar los siguientes 16 bytes de la tabla de particiones para ver si hay un 80.

Esto supone otra hipótesis para tu problema, puede que de esos 64 bytes, tengas el primer byte de todas las entradas de la tabla a 00h. Y piénsalo, es muy facil modificar un 80h por un 00h, (80h=1000 0000, y 00h=0000 0000), sólo varía un bit!!! es muy fácil que se pueda modificar un bit, pero muy improbable que de todos los gigas que tenga el disco precisamente se tenga que cambiar ese... xD

Otra información adicional que aparece en las entradas de la tabla, (de las 4 entradas de 16 bytes) son: el número de sectores que tendrá dicha partición (corresponde con los últimos 4 bytes de esos 16). Los 4 bytes, a partir del octavo byte indican en dónde se encuentra el sector de arranque de dicha partición (dónde comienza el sistema operativo instalado), así como el cuarto byte indica el tipo de formato que tendrá la partición (FAT32, NTFS, EXT, SWAP, etc... o si será una partición extendida, la cual contendrá particiones lógicas).

Por ultimo, los dos últimos bytes del sector de partición, (los primeros 512 bytes del disco), corresponden a la firma, siempre tienen el mismo valor: AA55h

Y vale, la teoría está muy bien, y dirás ¿para qué me sirve a mi eso?, pues bien, si verdaderamente quieres diagnosticar el problema, lo mejor es leer esos 512 bytes, volcarlos a un fichero o en pantalla, y ponerte a contar bytes, como un verdadero l33t, y ver si esos bytes son correctos. De no serlos, puede proceder a modificarlos (en vez de leer esos 512 bytes, ahora los escribes xD).

Para poner un ejemplo, aquí muestro mi sector de partición, lo he hecho en mi equipo, sólo tiene una partición y corresponde a NTFS:



33 C0 8E D0 BC 00 7C FB 50 07 50 1F FC BE 1B 7C BF 1B 06 50 57 B9 E5 01 F3 A4 CB BD BE 07 B1 04 38 6E 00 7C 09 75 13 83 C5 10 E2 F4 CD 18 8B F5 83 C6 10 49 74 19 38 2C 74 F6 A0 B5 07 B4 07 8B F0 AC 3C 00 74 FC BB 07 00 B4 0E CD 10 EB F2 88 4E 10 E8 46 00 73 2A FE 46 10 80 7E 04 0B 74 0B 80 7E 04 0C 74 05 A0 B6 07 75 D2 80 46 02 06 83 46 08 06 83 56 0A 00 E8 21 00 73 05 A0 B6 07 EB BC 81 3E FE 7D 55 AA 74 0B 80 7E 10 00 74 C8 A0 B7 07 EB A9 8B FC 1E 57 8B F5 CB BF 05 00 8A 56 00 B4 08 CD 13 72 23 8A C1 24 3F 98 8A DE 8A FC 43 F7 E3 8B D1 86 D6 B1 06 D2 EE 42 F7 E2 39 56 0A 77 23 72 05 39 46 08 73 1C B8 01 02 BB 00 7C 8B 4E 02 8B 56 00 CD 13 73 51 4F 74 4E 32 E4 8A 56 00 CD 13 EB E4 8A 56 00 60 BB AA 55 B4 41 CD 13 72 36 81 FB 55 AA 75 30 F6 C1 01 74 2B 61 60 6A 00 6A 00 FF 76 0A FF 76 08 6A 00 68 00 7C 6A 01 6A 10 B4 42 8B F4 CD 13 61 61 73 0E 4F 74 0B 32 E4 8A 56 00 CD 13 EB D6 61 F9 C3 49 6E 76 61 6C 69 64 20 70 61 72 74 69 74 69 6F 6E 20 74 61 62 6C 65 00 45 72 72 6F 72 20 6C 6F 61 64 69 6E 67 20 6F 70 65 72 61 74 69 6E 67 20 73 79 73 74 65 6D 00 4D 69 73 73 69 6E 67 20 6F 70 65 72 61 74 69 6E 67 20 73 79 73 74 65 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2C 44 63 DA 65 DA 65 00 00 80 01 01 00 07 FE FF FF 3F 00 00 00 82 E4 50 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA

Lo azul => master boot (primeros 446 bytes)
Lo verde => tabla de particiones (64 bytes)
Lo rojo => la firma (2 bytes).

Analicemos la tabla de particiones. Como dije, sólo tengo una partición y es con NTFS, por tanto de las 4 entradas de 16 bytes:



80 01 01 00 07 FE FF FF 3F 00 00 00 82 E4 50 09
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


El 80 indica que es una partición arrancable (partición activa), y observa como en las demás permanece a 00h

Los tres siguientes bytes (01 01 00), indican el comienzo de la partición.
El siguiente, el cuarto byte que indica el formato, que en mi caso es 07h => NTFS.

Los tres siguientes (FE FF FF), indican el fin de la partición.

Los cuatro bytes siguientes, es decir los cuatro siguientes a partir del octavo (3F 00 00 00), indican la dirección de comienzo del sector de arranque de la partición.

Y por último, los cuatro últimos (82 E4 50 09), corresponden al número de sectores que tendrá partición. En concreto, al tener una sóla partición que ocupa el tamaño máximo del disco, tenemos que: 0950E482, (cuidado con la notación little endian), son: 156296322 sectores, si cada sector son 512 bytes, tenemos 80023716864 bytes, que traducidos a GigaBytes son 80 GB aproximadamente...

¿Cómo implementar esto? Pues bien, si es posible arrancar el sistema entonces es muy fácil hacerlo mediante la API de Windows. Pero en tu caso como no es posible hacerlo arrancable, lo único que queda son dos opciones:

Instalas un segundo disco duro, el cual debes ponerlo como maestro. Arrancas desde ese disco duro, y a través de la API leer del otro disco el primer sector (suponemos que en el disco con el que arrancas hay Windows). Si no lo hubiera tendrías que acceder a los registros de la controladora IDE (suponiendo que el disco es ATA y se conecta a través de la interfaz IDE) para especificar el disco, el cilindro, la cabeza, el sector, etc...

O bien, (es lo que me mola xD, pero requiere de un poco más de tiempo), hacer un programa en algún PC disponible, que llame a las interrupciones de la BIOS para el manejo del disco. Esto es, la INT 13h.

Optando por esta última opción, debes especificar:
1) en AH la función: un 2 para indicar que es una lectura.
2) en AL el número de sectores a leer: un 1 porque solo vas a leer un sector
3) en CX el cilindro/sector. (los bits 0-5 indican el número de sector, los bits 6-7 lo dos bits más significativos del cilindro, y bits 8-F los 8 bits menos significativos del cilindro). Por tanto debes especificar CX=01, (cilindro 0, sector 1).
4) en DH el número de la cabeza: cabeza 0, por tanto DH=0;
5) en ES:BX debes especificar el puntero al bufer donde se almacenarán los datos. Puedes poner un offset (desplazamiento cualquiera), dentro del espacio de memoria de tu código, y luego ir allí para recoger la información.

Uff, espero haber sido ameno, y sobre todo haber ayudado.

Un saludo

hystd
10-06-2008, 03:41
PD. se me olvidó comentar que lo que hacen los gestores de arranque como el grub, lilo, o el de Windows, es acceder a esta información (de estos 512 bytes, acceder a los 64 bytes de la tabla de partición) y mostrar un menú en función del contenido de ésta.

Las otras herramientas de reparación, tales como fdisk, y demás lo que hacen es restaurar el masterboot (los 446 bytes) por si fue dañado o modificado por un virus. En concreto si mal no recuerdo era con fdisk /mbr.

A mi me gusta ser más friqui, y hacerlo todo a pelo...xD

un saludo.

j8k6f4v9j
10-06-2008, 13:00
Este detalle puede ser el que te esté provocando todos los problemas, !y no!, no quiere decir que tengas un virus, sino que algún/os byte/bytes de esos 446 se haya modificado, que puede ocurrir... no obstante continúa leyendo...
Es grub quien da el mensaje de error, señal de que el sistema está encontrando correctamente el mbr del disco. No está ahí el fallo.


Los 4 bytes, a partir del octavo byte indican en dónde se encuentra el sector de arranque de dicha partición (dónde comienza el sistema operativo instalado), así como el cuarto byte indica el tipo de formato que tendrá la partición (FAT32, NTFS, EXT, SWAP, etc... o si será una partición extendida, la cual contendrá particiones lógicas).Y aquí es dónde digo yo que está el fallo. Si ubuntu está dando mal la dirección del dispositivo, el error que sucede es justo el que está obteniendo.

Recordemos que estamos hablando de dispositivos sata. Es decir, que tanto sata como usb se contabilizan como dispositivos del mismo tipo a ojos del sistema operativo, si se quita un dispositivo cambia el orden de todos y ya no encuentra el archivo menu.lst donde esperaba hallarlo.

Muy buena la explicación hystd, con todo lujo de detalles.

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad:

el fandy
13-06-2008, 10:31
Ostya, esto no lo habia leido yo. Joder el manual te lo has currado, bueno no se que decir, intentaré hacer algo, siempre que pueda claro, la putada es que no tengo otro disco duro para hacer lo que dices, aunque intentaré hacerlo desde WXP, que como dices se puede.... buf solo hay un problema, estas cosillas no se me dan muy bién.

Gracias de verdad hystd, no lo habia visto, y seguro que me puede servir, sino a mi a otros.

Te lo has currado de verdad no tengo palabras para agradecerte...

Gracias portodo chicos.

Saturos
13-06-2008, 23:07
hola.

pues a recomendacion de j8k6f4v9j me he leido el tema, y me ha sido de mucha ayuda, pero no logro solucionar mi problema, supongo por que tengo lilo y no grub...

pero pronto dejare esto en manos de algun tecnico :(

ciao!!

j8k6f4v9j
14-06-2008, 01:10
Con lilo es más fácil aún.

Una vez haces el chroot (con el binario del sistema que quieres reparar, es decir, /mnt/roto/usr/sbin/chroot /mnt/roto, suponiendo que has montado el sistema roto bajo /mnt/roto), sólo tienes que ejecutar el comando `lilo` como superusuario.

Salu2



http://img359.imageshack.us/img359/6631/celliigy4.pngKeep on Rollin' :mad: