¿Qué hacer cuando recibo un error de "intento de leer o escribir fuera del disco 'hd0'" y la Reparación de arranque no resuelve el problema?

35

Traté de instalar Xubuntu 13.10 en una computadora más antigua. Noté algunas dificultades durante la instalación que pueden ser relevantes para mis problemas. Notablemente:

  1. La resolución de la pantalla fue extremadamente baja. Las ventanas eran mucho más grandes que la pantalla y tuve que moverlas para llegar al botón "Siguiente".

  2. El cursor del mouse era una mancha de colores que parpadeaba todo el tiempo.

La instalación terminó e intenté reiniciar la computadora. Inmediatamente obtuve:

error: attempt to read or write outside of disk 'hd0'. 
Entering rescue mode... 
grub rescue>

Hice un disco USB Boot Repair , lo inicié y elegí la reparación predeterminada. La aplicación me dijo que el problema está reparado y que si esto no resuelve mi problema, debería mostrar este enlace a alguien que pueda ayudarme.

¿Qué debería hacer después? Ya intenté instalar Ubuntu y Xubuntu, ambos sin éxito.

EDITAR:

Encontré una solución alternativa.

  1. Inserte el Xubuntu live USB
  2. Seleccione "probar Xubuntu"
  3. En el menú de configuración, seleccione "instalar Xubuntu"

Esto solucionó el problema para mí. Como está resuelto, no puedo probar la respuesta.

Martin Drozdik
fuente
(casi) duplicado de askubuntu.com/questions/229715/…
Reinier Post

Respuestas:

36

Localice la partición en la que Linux está presente con la ayuda de la siguiente técnica

grub rescue > ls
(hd0) (hd0, msdos9)
grub rescue > ls (hd0,msdos9)/
grub rescue > ls (hd0,msdos8)/
grub rescue > ls (hd0,msdos5)/ # suppose this is root and bootloader of linux
grub rescue > ls (hd0,msdos5)/
grub rescue > set root=(hd0,msdos5)
grub rescue > set prefix=(hd0,msdos5)/boot/grub
grub rescue > insmod normal
grub rescue > normal

Ahora, aparece el menú de arranque del sistema. Arrancar en linux.

sudo update-grub
sudo grub-install  /dev/sda # If the drive is hd0 the equivalent is sda, if it's hd1 then use sdb

Esto corrige el cargador de arranque.

usuario223882
fuente
17
No veo qué debería hacer esto. Especificas muchísimos comandos, ninguno de los cuales tiene sentido para mí. ¡Agregue un poco más de texto explicativo! ¿Por qué "cuenta atrás" de msdos9 a 5? ¿Cómo ves que "esto es Linux"? En mi caso se muestra (hd0, msdos1)! No puedo "contar hacia atrás", y una vez que configuro root y prefijo y hago "insmod normal" recibo exactamente el mismo mensaje de error que antes. Lo siento. Esta no es una respuesta con la que cualquiera pueda trabajar. :(
Zordid
13
Tan pronto como insmod normalescribo recibo el mensaje nuevamente: "error: intento de leer o escribir fuera de la partición"
user643722
2
dices "supongamos que esto es Linux" sin decir cómo puedo saber cuál es Linux. Cada vez que escribo insmod normal, me devuelve "error: sistema de archivos desconocido", esto no funciona para mí. Además, ¿puedes explicar por qué sucede esto en primer lugar?
msknapp
1
Lo mejor que he conseguido es otro indicador de grub. El menú nunca aparece.
jbo5112
2
Estoy de acuerdo con @Zordid: solo una lista de comandos crípticos sin una explicación de lo que hacen estos comandos no solo no es suficiente, sino que podría ser potencialmente peligroso.
Johsm
27

Para cualquier otra persona que tenga este problema:

Esto me estaba sucediendo donde una nueva instalación o reparación de grub funcionaría y reiniciaría, pero la próxima vez que reinicie, obtendría este mismo "intento de error de lectura". La mayoría de las veces obtendría un kernel panic y la computadora necesitaría un reinicio completo.

Seguí algunos consejos e hice una nueva instalación usando las opciones avanzadas (no use "borrar disco e instalar ubuntu") usando estas configuraciones de partición:

  1. Cree una partición ext4 de 1 GB (1024 MB) al comienzo del disco; montado en "/ boot"
  2. Cree su espacio de instalación deseado en ext4 montado en "/" MENOS su área de intercambio
  3. Use el espacio restante para el intercambio. (TODAS las particiones serán primarias)
  4. En el menú desplegable de instalación de arranque, seleccione su partición "/ boot". ¡No es la raíz de la unidad predeterminada!
Andrés
fuente
Esto funcionó para mí cuando los comandos en la respuesta aceptada obtenían "El sistema de archivos no se reconoce". Terminé usando el mismo conjunto de sistemas de archivos, pero esta pequeña partición dedicada / de arranque fue lo que solucionó mi problema. Gracias.
GregHNZ
Parece que esto también funciona si / boot es la única partición primaria.
Aaron Mason
Me uní a este sitio solo para decir que esto también funcionó para mí. La pequeña partición de arranque era lo que necesitaba para que esto funcionara al colocar Ubuntu en un HDD externo. ¡Gracias!
rayryeng - Restablecer Monica
Me ayudó: tenía una gran partición (> 5 TB) /, agregando una partición pequeña / de arranque solucionó el problema
neutrinus
¿Se puede hacer esto sin eliminar la partición existente? Tengo una gran partición con todos mis datos comenzando al principio del disco.
pir
6

Se puede resolver fácilmente a través de la solicitud de rescate de Grub. La primera respuesta no está completa y obtuve el mismo error al principio. Así es como funciona:

Primero, necesitamos encontrar la partición primaria. Aquí será donde residirán los archivos esenciales necesarios para que arranque Linux, así que ingresamos esto:

Grub> ls

Ahora debería ver una lista comparable a (hd0) (hd0, msdos5) (hd0, msdos1). Tenga en cuenta que puede tener particiones diferentes a las mías, así como múltiples unidades, pero el proceso es el mismo.

Ahora busque las particiones para encontrar el primario -

Grub> ls (hd0)
Grub> ls (hd0,msdos5)
Grub> ls (hd0,msdos1)

Hasta que grub muestre una lista de archivos en esa partición o muestre el tipo de sistema de archivos y la fecha de la última modificación.

En segundo lugar, debemos configurar algunas cosas una vez que hayamos encontrado nuestra partición primaria:

Grub> set prefix=(hd0,msdos1)/boot/grub
Grub> set root=(hd0,msdos1)
Grub> set

Una vez que se ejecuta el último comando set, Grub generará una lista de diferentes parámetros. Ahora verifiquemos que hemos establecido la raíz y el prefijo correctos:

Grub> ls /boot

Grub debería generar una lista de archivos contenidos en / boot.

Tercero, necesitamos establecer el punto de montaje y cargar el núcleo -

Grub> linux /vmlinuz root=/dev/sda1
Grub> initrd /initrd.img

Y, por último, arrancamos el sistema.

Grub> boot

Si termina arrancando en el shell busybox, simplemente ingrese fsck /dev/sda1. Después de eso solo ingrese exity su sistema se iniciará normalmente.

Zach Parker
fuente
Me salvó la vida, gracias!
Timmah
3

Resolví este problema moviendo mi partición de Linux cerca del comienzo del disco duro. Cuando la partición de Linux estaba al final de mi HDD de 120 Gb (40 Gb desde el final) obtuve este problema. Ninguna solución no funcionó. Después de mover la partición de Linux al espacio de 40 Gb a 80 Gb, el problema desapareció.

John
fuente
1
¿Cómo se mueve la partición de Linux al comienzo del disco?
pir
1

Después de buscar muchas horas probé esta solución y funciona bien para reinstalar el núcleo:

sudo dpkg --configure -a
sudo apt-get install --reinstall linux-image-$(uname -r)
Zeyad Assem
fuente
0

Estoy logrando este problema cuando he usado el disco vmdk del paquete de máquina virtual OVA en virt-manager / QEMU / KVM. La máquina virtual estaba fallando con este mensaje de error.

La solución fue convertir vmdk en qcow2:

qemu-img convert -O qcow2 MyAppliance-disk1.vmdk MyAppliance.qcow2

Y para usar la imagen convertida en virt-manager en su lugar.

Honza
fuente
0

Tuve este problema al intentar instalar Ubuntu 18 Server y Xubuntu 18 en un servidor Dell. Al seleccionar UEFI en lugar de Legacy en el menú del BIOS, se solucionó.

arzach84
fuente