La actualización de Windows 10 condujo al rescate de grub

75

Estaba iniciando dualmente Windows 7 y Linux Ubuntu en mi escritorio, y hoy es el día en que entregaron actualizaciones gratuitas de Windows 10. ¡Que interesante! Recibí la actualización, y se estaba instalando, y me fui para tomar una siesta de 30 minutos. Sin embargo, cuando volví a mi computadora, me llevó al mensaje de rescate de grub.

error: no such partition.
Entering rescue mode...
grub rescue>

Recibo lo siguiente cuando escribo ls:

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

Después de un rápido vistazo a las personas que encontraron el mensaje de rescate de grub, escribí sety obtuve lo siguiente

grub rescue> set
cmdpath=(hd0)
prefix=(hd0,msdos6)/boot/grub
root=hd0,msdos6

Todavía estaba un poco perdido después de descubrir que ciertos comandos como normalno funcionaban, y luego encontré un video tutorial donde arranca desde un CD de imagen de Linux y ejecuta algunos comandos en el terminal. Afortunadamente, tenía mi CD conmigo y arranqué desde allí. sudo fdisk -lSin embargo, cuando escribí en la terminal, esto es lo que obtuve:

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc03ede74

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848  1547022335   773407744    7  HPFS/NTFS/exFAT
/dev/sda3      1547022336  1547943935      460800   27  Hidden NTFS WinRE
/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

¡Aquí dice que ninguno de mis dispositivos tiene el sistema Linux en ellos! Y no pude seguir el video tutorial más que eso ...

Bromeé un poco con mi cerebro y determiné que sda2 contenía mi sistema Windows (ya que recuerdo que mi unidad C: tiene alrededor de 700 GB de espacio). Después de pensar un poco más, recuerdo asignar alrededor de 200 GB de espacio en mi disco duro a algo relacionado con Ubuntu al instalar Ubuntu. No recuerdo exactamente cuál, pero creo que era básicamente "espacio en el disco duro" de Ubuntu, y no tenía ningún archivo de arranque. Le asigné otras dos cosas a Linux, pero eran de un tamaño muy pequeño (todavía no rompían la marca de 1 GB).

Entonces, ¿alguien aquí puede ayudarme a recuperar mi actualización? No me importará si termino teniendo que eliminar por completo las particiones que tienen Linux en ellas.

LChaos2
fuente
1
Si la partición LInux es una lógica, Windows no reescribe la tabla de particiones con ella. Usa testdisk. Algunos usaron testdisk para restaurarlo y reinstalaron grub a MBR y todo volvió a la normalidad. Pero debe incluir todas las particiones correctamente como Primario y lógico para que funcione. cgsecurity.org/wiki/TestDisk_Step_By_Step
oldfred
En el diseño anterior, parece que solo quedan 3505 sectores al final del disco después de la nueva /dev/sda5o (hd0,msdos5)partición, lo que equivaldría a solo 1.7 MB, por lo que la partición de Linux difícilmente podría ocultarse allí. Mi mejor suposición sería que la entrada de la partición de Linux de alguna manera se desplazó a ese lugar (# 5 en lugar de # 6) y que su tipo fue inexplicablemente cambiado. Lo primero que debe intentar sería ls (hd0,msdos5)/en la solicitud de rescate de GRUB.
Josip Rodin
1
Una razón más para no usar Windows, un sistema operativo tan ignorante
Aydin K.

Respuestas:

64

Mi computadora venía con Windows 8 preinstalado, así que reduje la partición de Windows para hacer espacio para Ubuntu. Así fue como funcionó el año pasado. Después del segundo reinicio en la actualización de Windows 10, la computadora ya no se inició. GRUB solo muestra un grub rescuesímbolo del sistema. Más tarde descubrí que el problema se produjo porque Windows de alguna manera cambió el esquema de partición. La partición de arranque (que contiene datos GRUB normales) ya no estaba donde GRUB la esperaba. No sé cómo y por qué sucedió esto.

Lo primero que puede hacer en el modo de rescate es ver las particiones con el lscomando. Los míos fueron:

  • (hd0, gpt1),
  • (hd0, gpt2),
  • etc.

Intenta averiguar qué partición es tu partición de arranque. No hay Tabfinalización, debe escribirlo completamente. Intenté los siguientes comandos hasta que encontré la partición correcta:

ls (hd0,gpt1)/
ls (hd0,gpt1)/boot
ls (hd0,gpt2)/

etc.

Luego escriba setel mismo mensaje. Mostrará dónde GRUB busca sus archivos. En mi caso (hd0, gpt6) se ha movido a (hd0, gpt7). El comando set mostrado:

prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6

Para volver a GRUB normal, comience cambiando la prefixconfiguración para apuntar a la partición correcta. En mi caso el comando fue:

set prefix=(hd0,gpt7)/boot/grub

Luego puede cambiar del modo de rescate al normal:

insmod normal
normal

También se podría haber arreglado la rootconfiguración con:

set root=(hd0,gpt7)

Pero esto no es estrictamente necesario, ya que no importa para las entradas de carga en cadena de Windows. Una vez en el menú normal de GRUB, puede iniciar Windows y finalizar su actualización de Windows. El problema es que debe informar a grub rescue sobre las particiones correctas en cada reinicio. Así es como lo hice. Dejé el problema de GRUB para más adelante porque no estaba seguro de si Windows haría más cambios en las particiones o en el arranque.

Cuando Windows terminó, comencé a resolver los problemas de GRUB. Presione epara editar las opciones de arranque para Ubuntu. Cambié todo (hd0,gpt6)a (hd0,gpt7)y Ubuntu arrancó.

Sin embargo, uso partición encriptada y cryptswap. En el arranque, Ubuntu me pidió la frase de contraseña. Afortunadamente lo guardé en la instalación de Ubuntu y lo ingresé en el arranque. Ubuntu arrancó sin problemas.

A continuación, he corregido el /boot/grub/grub.cfgarchivo en el que he sustituido (hd0,gpt6)con (hd0,gpt7)y ha realizado:

sudo grub-install

En ese momento, el único problema que quedaba era el cifrado. Dado que el número de partición raíz de Ubuntu se incrementó en uno (7 en lugar de 6), la partición de intercambio sufrió un cambio similar. Tuve que cambiar el /etc/crypttabarchivo para señalar en /dev/sda8lugar de /dev/sda7.

Estoy usando solo dos particiones para Ubuntu (root y swap). Si otros sistemas operativos que coexisten con Windows usan más particiones, es posible que se requieran más cambios. Especialmente si las particiones se montan de acuerdo con sus números y no con sus UUID. Echa un vistazo a tu /etc/fstab. Si las particiones son identificadas por UUID, no debería haber problemas. Pero si hay /dev/...líneas, el número debe corregirse si estas particiones se vuelven a numerar.

nadie
fuente
2
Esta fue una gran respuesta para mí. No tenía disco de Ubuntu y estaba actualizando mi Windows de 8.1 a 10 y tenía el mismo problema. Así que esta respuesta recibe un crédito extra de mi parte, ya que pude ingresarla y continuar hasta que se realizó la actualización. Gracias por salvar mi tocino.
dibs
2
Esta solución funcionó perfectamente para mí cuando Win 10 decidió actualizarse y estropeó los registros de arranque (mi actualización de 7 a 10 se realizó sin problemas)
pedorro
99
Intenté ls (hd0,msdos1)/ ls (hd0,msdos1)/boot ls (hd0,msdos2)/ etc.todas las entradas del lscomando, y cada vez que aparece error: unkown filesystem.
Jacques MALAPRADE
2
Gracias, eso ayudó. Una cosa que no estaba clara para mí (porque soy nuevo tanto en Ubuntu como en Grub) fue que era necesario editar la configuración de grub después de iniciar en Ubuntu (y no en el mini Emacs, que no admite guardar el Aparentemente.) Así que arranqué, luego edité la configuración sudo nano /boot/grub/grub.cfgy luego ejecuté sudo grub-install /dev/sda(por alguna razón, la llamada sin el parámetro falló para mí). Y solo entonces los cambios permanentes funcionaron.
Nikita G.
1
Intenté ls (hdo, msdos1), etc. para todas las entradas. Obtener error sistema de archivos desconocido
Ashley G
13

Instalar Windows (o actualizarlo) junto con Linux puede ser problemático.

Pruebe esto: https://help.ubuntu.com/community/Boot-Repair



Lo usé para solucionar un problema después de instalar la vista previa técnica de Windows 10, y funcionó. Básicamente, lo que hace es reinstalar grub para que funcione con todos los sistemas operativos actualmente instalados. Asegúrese de decirle que instale grub en su partición de Linux (sd #).

¡Buena suerte!

Patricio
fuente
¡Hola! ¡Gracias por tomarse el tiempo para ayudar! ¡En realidad no estoy muy seguro de qué partición es! Pero jugaré un poco para ver si funciona.
LChaos2
¡No hay problema! Siempre me alegro de ayudar.
Patrick
¡Hola! Así que arranqué el disco de reparación de arranque y utilicé la reparación recomendada. Lo hice y reinicié mi computadora, pero me lleva al administrador de arranque de Windows y me dice que un cambio reciente de hardware o software podría haber instalado un archivo que está firmado incorrectamente o dañado. El archivo es \ Windows \ system32 \ winload.exe, estado 0xc0000428. Presionar enter me lleva al administrador de arranque para elegir qué sistema operativo iniciar, mostrando solo Windows 7. Presionar enter en Windows 7 me lleva de vuelta a la misma pantalla de error, lo que resulta en un bucle.
LChaos2
Después de investigar un poco, parece que el código de error (0xc000428) está asociado con winload.exe no verificado por alguna firma digital. ¿Dice algo al respecto?
Patrick
1
¿Alguna actualización sobre la situación @ LChaos2?
hg8
10

Antes de cambiar las particiones, haga una copia de seguridad y guárdela en otro dispositivo. Si no es así, cambie a la unidad correcta. Entonces puede comenzar de nuevo si restaura un conjunto incorrecto con testdisk. Solo desea que todos los actuales y los que faltan sean lógicos cuando se restaura con testdisk.

sudo sfdisk -d /dev/sda > parts.txt

Su partición faltante está aquí o entre el inicio de la partición extendida en 1547 ... y la primera partición mostrada en 1915 ...:

/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Puede usar testdisk, pero usa CHS. Debe elegir todas las particiones existentes y la partición que falta como lógica. Puede mostrar muchas versiones dependiendo de cuántas veces haya cambiado las particiones. Por lo tanto, elija el tamaño que coincida con el que falta sin superponer ninguna otra partición actual. Algunos que se han restaurado correctamente solo pudieron arrancar, otros tienen que reinstalar grub. Y algunos no pudieron corregir la partición de restauración.

http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step

Otra herramienta de restauración es el rescate separado. Utiliza sectores, pero el rango que proporcione debe estar justo fuera de la partición faltante sin superposición con las particiones actuales. Mejor si conoce el comienzo y el final exactos. Ver hombre separado

http://www.gnu.org/software/parted/manual/html_node/rescue.html

Usuario que utilizó rescate separado:

http://ubuntuforums.org/showthread.php?t=1775331&p=10905969#post10905969

oldfred
fuente
3
Me encontré exactamente el mismo problema y me separé muestra "espacio libre" donde había Linux. ¡Ejecute el rescate desde / hasta el "espacio libre" y ext4 está de vuelta!
speedogoo
3
Solo quiero intervenir para decir que gparted mostró espacio libre donde solía estar ext4. Se separó, se ajustó a sectores, imprimió particiones, rescató con el / desde el "espacio libre" (no se olvide de agregar una s para sectores a sus valores) y ext4 regresó, exactamente igual que @speedogoo. No hay necesidad de jugar con la comida.
Amedee Van Gasse
2
Dado que a más personas les faltan particiones, ¿qué demonios está haciendo Windows 10 con la tabla de particiones? En mi caso, ext4 estaba en una partición lógica.
Amedee Van Gasse
Gracias por esta miga de pan. Pude recuperar la partición perdida de Linux de mi esposa usando rescate dividido. Una instalación grub más tarde, volvimos a la acción.
bheeshmar
7

Es un error desagradable en el particionador de Windows, y no es específico de Linux. Irónicamente eliminó una partición NTFS en mi caso.

El instalador de Windows 10 crea una nueva partición (su /dev/sda3) tallada en el extremo de la partición principal de Windows sda2si la partición de arranque de Windows sda1es demasiado pequeña para contener el Entorno de recuperación de Windows 10.

Cuando reescribe la tabla de particiones para hacer esto, para cada partición lógica en la tabla de particiones extendida sda4, si se encuentra en el disco antes del número de partición anterior, se da por vencido.

En su caso, sus particiones de Linux estaban ubicadas en su disco antes de su nueva sda5, pero tenían números de partición más altos que sda5antes de la repartición.

Si mira a través de los enormes registros de actualización de Windows 10, verá un mensaje similar a "6 antes de 5, nada que hacer", junto con las tablas de particiones antiguas y nuevas.

Windows no sobrescribe el contenido de las particiones que elimina, por lo que es posible recuperarlas si puede encontrar dónde están. En mi caso, tenía copias de seguridad de la tabla de particiones, pero usar testdisk como se explica en la respuesta de oldfred tiene una excelente oportunidad de encontrarlas todas. Rescate parcial será difícil de usar ya que se eliminó más de una partición en su caso.

Para usar testdisk desde su Ubuntu Live CD, en un tipo de terminal sudo apt-get install testdiskpara instalarlo y sudo testdiskejecutarlo.

Después de reparar la tabla de particiones, la partición de Linux que contiene GRUB ahora puede tener un número diferente al anterior, por lo que aún puede terminar en el indicador de rescate de GRUB. Si es así, Boot Repair ahora podrá reparar GRUB.

Nuevamente, usando su Ubuntu Live CD, escriba:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

instalarlo y ejecutarlo.

Ahora Windows puede completar su actualización.

Martin Thornton
fuente
Gracias por la explicación clara de cuál es el problema, esto me ayudó mucho. Estaba en la misma situación que la descrita en la pregunta. Sin embargo, testdisk no pudo encontrar la partición de Linux eliminada. Me separé de rescate hizo el truco y yo era capaz de seguir las ventanas de actualización después de 10
toby
"Windows no sobrescribe el contenido de las particiones que elimina" ¿Cómo puede ser esto? La nueva partición que hizo para mí (después de matar mis particiones Linux) ocupó todo el disco. Entonces, esto no significa que las escrituras podrían ir a cualquier parte.
Greg Bell
No puedo expresar cuánto te amo
aviggiano
1

Para usar la reparación de arranque, debe configurar el BIOS:

  • Habilitar UEFI (en mi BIOS es :)

    Soporte heredado DISABLE

  • Deshabilitar arranque seguro

Probablemente tenga habilitado el Arranque seguro, por lo que obtendrá el error "archivo firmado incorrectamente".

iacobus
fuente