Обновление Windows 10 привело к grub rescue

У меня была двойная загрузка Windows 7 и Linux Ubuntu на моем рабочем столе, и сегодня это день, когда они выпустили бесплатные обновления Windows 10. Как здорово! Я получил обновление, и оно устанавливалось, и я ушел, чтобы пойти вздремнуть 30 минут. Однако, когда я вернулся к своему компьютеру, это привело меня к подсказке по спасению.

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

Я получаю следующее, когда набираю ls:

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

После быстрого просмотра людей, которые столкнулись с подсказкой grub rescue, я набрал set и получил следующее

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

Я все еще был немного потерян, обнаружив, что некоторые команды, такие как normal не сработало, а потом я нашел видеоурок, где вы загружаетесь с компакт-диска с образом Linux и запускаете некоторые команды на терминале. К счастью, у меня был свой компакт-диск, и я загрузился оттуда. Когда я набрал sudo fdisk -l в терминал, однако, это то, что я получил:

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

Здесь говорится, что ни в одном из моих устройств нет системы Linux! И я больше не мог следить за видеоуроком...

Я немного дразнил свой мозг и решил, что sda2 содержит мою систему Windows (так как я помню, что мой диск C: имеет около 700 ГБ места). Подумав немного больше, я помню, как выделил около 200 ГБ места на жестком диске чему-то, что связано с Ubuntu при установке Ubuntu. Я точно не помню, какой именно, но я думаю, что это было в основном Ubuntu "место на жестком диске", и в нем не было никаких загрузочных файлов. Я назначил две другие вещи для Linux, но они были очень маленькими по размеру (пока не побили отметку в 1 ГБ).

Итак, кто-нибудь может помочь мне вернуть мой апгрейд в нормальное русло? Я не буду возражать, если мне придется полностью удалить разделы с Linux.

5 ответов

Мой компьютер поставлялся с предустановленной Windows 8, поэтому я сократил раздел Windows, чтобы освободить место для Ubuntu. Вот как это работало в прошлом году. После второй перезагрузки в Windows 10 компьютер больше не загружался. GRUB отображал только grub rescue командная строка Позже я узнал, что проблема возникла из-за того, что Windows как-то изменила схему разделов. Загрузочный раздел (содержащий обычные данные GRUB) больше не был там, где ожидал GRUB. Я не знаю, как и почему это произошло.

Первое, что вы можете сделать в режиме восстановления, это просмотреть разделы с ls команда. Мои были:

  • (Hd0, gpt1),
  • (Hd0,gpt2),
  • и т.п.

Попробуйте выяснить, какой раздел является вашим загрузочным разделом. Там нет завершения Tab, вы должны напечатать его полностью. Я пробовал следующие команды, пока не нашел нужный раздел:

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

и т.п.

Затем введите set в той же подсказке. Он покажет, где GRUB ищет свои файлы. В моем случае (hd0,gpt6) переместился в (hd0,gpt7). Команда set отображает:

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

Чтобы вернуться в обычный GRUB, начните с изменения prefix установка указать на правильный раздел. В моем случае команда была:

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

Затем вы можете переключиться из режима спасения в обычный режим:

insmod normal
normal

Можно было бы также исправить root установка с помощью:

set root=(hd0,gpt7)

Но это не является строго необходимым, так как это не имеет значения для записей цепной загрузки Windows. В обычном меню GRUB вы можете загрузить Windows и завершить обновление Windows. Проблема в том, что вы должны сообщать grub rescue о правильных разделах при каждой перезагрузке. Вот как я это сделал. Я оставил проблему GRUB на потом, потому что я не был уверен, что Windows сделает еще какие-то изменения в разделах или загрузке.

Когда Windows закончила, я начал решать проблемы GRUB. Нажмите e редактировать параметры загрузки для Ubuntu. Я изменил все (hd0,gpt6) в (hd0,gpt7) и Ubuntu загрузился.

Тем не менее, я использую зашифрованный раздел и cryptswap. При загрузке Ubuntu попросил у меня пароль. К счастью, я сохранил его при установке Ubuntu и ввел его при загрузке. Ubuntu загрузился без проблем.

Затем я исправил /boot/grub/grub.cfg файл, где я заменил (hd0,gpt6) с (hd0,gpt7) и выполнил:

sudo grub-install

На тот момент единственной оставшейся проблемой было шифрование. Поскольку номер корневого раздела Ubuntu был увеличен на один (7 вместо 6), раздел подкачки подвергся аналогичному изменению. Я должен был изменить /etc/crypttab файл для указания /dev/sda8 вместо /dev/sda7,

Я использую только два раздела для Ubuntu (root и swap). Если другие операционные системы, сосуществующие с Windows, используют больше разделов, может потребоваться больше изменений. Особенно, если разделы смонтированы в соответствии с их номерами, а не по их UUID. Взгляни на свой /etc/fstab, Если разделы идентифицируются по UUID, проблем быть не должно. Но если есть /dev/... В строках номер должен быть исправлен, если эти разделы были перенумерованы.

Установка Windows (или ее обновление) вместе с Linux может быть проблематичной.

Попробуйте это: https://help.ubuntu.com/community/Boot-Repair



Я использовал это, чтобы исправить проблему после того, как я установил предварительный просмотр Windows 10, и это работало. По сути, он переустанавливает grub для работы со всеми установленными в данный момент операционными системами. Убедитесь, что сказали установить grub на ваш раздел linux (sd#).

Удачи!

Перед сменой разделов сделайте резервную копию и сохраните ее на другое устройство. Если нет, смените на правильный диск. Затем вы можете начать сначала, если вы восстановите неправильный набор с помощью testdisk. Вы просто хотите, чтобы все текущие плюс отсутствовали логические при восстановлении с testdisk.

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

Ваш отсутствующий раздел находится здесь или между началом расширенного раздела в 1547... и первым разделом, показанным в 1915...:

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

Вы можете использовать testdisk, но он использует CHS. Вы должны выбрать все существующие разделы и отсутствующий раздел как логические. Может отображаться много версий в зависимости от того, сколько раз вы меняли разделы вокруг. Поэтому выберите размер, соответствующий отсутствующему, не перекрывая другие текущие разделы. Некоторые, которые правильно восстановили, просто смогли загрузиться, другие должны переустановить grub. И некоторые не смогли исправить восстановление раздела.

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

Другим инструментом восстановления является разделенное спасение. Он использует сектора, но диапазон, который вы задаете, должен находиться за пределами отсутствующего раздела, без перекрытия с текущими разделами. Лучше всего, если вы знаете точное начало и конец. Смотри мужик расстался

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

Пользователь, который использовал разделенное спасение:

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

Это неприятная ошибка в разделителе Windows, а не специфичная для Linux. По иронии судьбы он удалил раздел NTFS в моем случае.

Установщик Windows 10 создает новый раздел (ваш /dev/sda3) вырезанный конец основного раздела Windows sda2 если загрузочный раздел Windows sda1 слишком мал, чтобы содержать среду восстановления Windows 10.

Когда это переписывает таблицу разделов, чтобы сделать это, для каждого логического раздела в расширенной таблице разделов sda4Если он находится на диске до номера предыдущего раздела, он сдается.

В вашем случае ваши разделы Linux были расположены на вашем диске до вашего нового sda5, но имели более высокие номера разделов, чем sda5 имел до передела.

Если вы посмотрите огромные журналы обновления до Windows 10, вы увидите что-то вроде "6 до 5, ничего не делать", а также старые и новые таблицы разделов.

Windows не перезаписывает содержимое удаляемых разделов, поэтому их можно восстановить, если вы сможете найти, где они находятся. В моем случае у меня были резервные копии таблицы разделов, но использование testdisk, как объяснено в ответе oldfred, имеет отличный шанс найти их все. Раздельное спасение будет сложно использовать, поскольку в вашем случае было удалено более одного раздела.

Чтобы использовать testdisk с вашего Ubuntu Live CD, в терминале введите sudo apt-get install testdisk установить его и sudo testdisk бежать.

После восстановления таблицы разделов раздел Linux, содержащий GRUB, может теперь иметь другое число, чем прежде, так что вы все равно можете оказаться в строке восстановления GRUB. Если это так, Boot Repair теперь сможет исправить GRUB.

Опять же, используя ваш Ubuntu Live CD, введите:

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

установить и запустить его.

Теперь Windows может завершить обновление.

Для использования boot-repair вам необходимо установить в BIOS:

  • Включить UEFI (в моем BIOS это так:)

    Устаревшая поддержка DISABLE

  • Отключить безопасную загрузку

Возможно, у вас включена безопасная загрузка, поэтому вы получаете ошибку "неправильно подписанный файл".

Другие вопросы по тегам