Оновлення Windows 10 призвело до рятування


75

Я працював з подвійним завантаженням 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)

Після швидкого огляду людей, які натрапили на рятівний рятувальний рядок, я набрав setі отримав наступне

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

Я все ще розгубився, виявивши, що певні команди на кшталт normalне працюють, і тоді я знайшов відео-посібник, де ви завантажуєтесь із CD-диска 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.


1
Якщо розділ LInux є логічним, Windows не переписує на нього таблицю розділів. Використовуйте тестдиск. Деякі з них використовували testdisk, щоб відновити його, і перевстановили grub в MBR, і все повернулося до норми. Але ви повинні включити всі розділи правильно як первинні та логічні, щоб він працював. cgsecurity.org/wiki/TestDisk_Step_By_Step
oldfred

На макеті вище, схоже, що в кінці диска після нового /dev/sda5або (hd0,msdos5)розділу залишилося лише 3505 секторів, що склало б лише 1,7 Мб, тому розділ Linux навряд чи можна заховати там. Я найкраще здогадуюсь, що запис розділу розділу Linux якось перемістився в це місце (№5 замість №6) і що його тип був незрозуміло змінений. Перше, що потрібно спробувати, було б ls (hd0,msdos5)/у рятувальному запиті GRUB.
Йосип Родін

1
ще одна причина не використовувати Windows, такий неосвічений ОС
Айдін К.

Відповіді:


64

На моєму комп’ютері було встановлено попередньо встановлену 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 я залишив для подальшого, оскільки не був впевнений, чи внести Windows ще якісь зміни в розділи чи завантаження.

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

Однак я використовую зашифрований розділ та заміну крипт. Під час завантаження Ubuntu попросив мене парольну фразу. На щастя, я врятував його під час встановлення Ubuntu і ввів його під час завантаження. Ubuntu завантажився без проблем.

Потім я виправив /boot/grub/grub.cfgфайл , в якому я замінив (hd0,gpt6)з (hd0,gpt7)і виконав:

sudo grub-install

На той момент єдиною проблемою було шифрування. Оскільки число кореневих розділів Ubuntu було збільшено на одиницю (7 замість 6), розділ swap зазнав аналогічної зміни. Мені довелося змінити /etc/crypttabфайл, щоб вказати /dev/sda8замість /dev/sda7.

Я використовую лише два розділи для Ubuntu (root та swap). Якщо інші операційні системи, які співіснують з Windows, використовують більше розділів, можливо, буде потрібно більше змін. Особливо, якщо перегородки монтуються відповідно до їх кількості, а не за їх UUID. Погляньте на своє /etc/fstab. Якщо розділи визначені UUID, проблем не повинно бути. Але якщо є /dev/...рядки, число слід виправити, якщо ці розділи були перенумеровані.


2
Це була чудова відповідь для мене. У мене не було диска Ubuntu, і я оновлював свою Windows з 8.1 до 10 і мав ту ж проблему. Тож ця відповідь отримує від мене додатковий кредит, оскільки я зміг просто ввести її та продовжувати, поки оновлення не буде зроблено. Дякуємо, що врятували моє бекон.
занурюється

2
Це рішення для мене прекрасно спрацювало, коли Win 10 вирішив модернізувати себе і переплутав завантажувальні записи (моє оновлення з 7 до 10
минуло

9
Спробував ls (hd0,msdos1)/ ls (hd0,msdos1)/boot ls (hd0,msdos2)/ etc.усі lsкоманди з команди, і кожен раз, коли вона з'являється error: unkown filesystem.
Жак МАЛАПРЕЙД

2
Дякую, що допомогло. Одне, що мені було не зрозуміло (адже я новачок і в Ubuntu, і в Grub), - це те, що редагування конфігурації grub потрібно було виконати після завантаження в Ubuntu (а не в міні Emacs, який не підтримує збереження файл, мабуть.) Отже, я завантажився, потім відредагував конфігурацію, sudo nano /boot/grub/grub.cfgа потім побіг sudo grub-install /dev/sda(чомусь виклик без параметра не вдався для мене). І лише тоді спрацювали постійні зміни.
Микита Г.

1
Спробував ls (hdo, msdos1) тощо для всіх записів. Отримати помилку невідома файлова система
Ashley G

13

Встановлення Windows (або оновлення) поряд з Linux може бути проблематичним.

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



Я використав її для вирішення проблеми після встановлення технічного попереднього перегляду Windows 10, і вона спрацювала. В основному, це те, що він робить, це перевстановити grub для роботи зі всіма встановленими на даний момент операційними системами. Обов’язково скажіть йому, щоб встановити grub на ваш Linux-розділ (sd #).

Удачі!


Привіт! Дякуємо, що знайшли час, щоб допомогти! Я насправді не надто впевнений, який це розділ! Але я трохи заграю, щоб побачити, чи працює він.
LChaos2

Нема проблем! Завжди радий допомогти.
Патрік

Привіт! Тому я завантажив завантажувальний-ремонтний диск і використав рекомендований ремонт. Я це зробив і перезапустив комп’ютер, але він переносить мене до менеджера завантаження Windows і повідомляє мені, що нещодавно змінена апаратна чи програмна програма могла встановити файл, який підписаний неправильно або пошкоджений. Файл \ Windows \ system32 \ winload.exe, статус 0xc0000428. Натискання клавіші Enter переводить мене до диспетчера завантажень, щоб вибрати операційну систему для запуску, показуючи лише Windows 7. Натискання клавіші Enter у Windows 7 повертає мене до того самого екрану помилок, в результаті чого виникає цикл.
LChaos2

Провівши деякі дослідження, здається, що код помилки (0xc000428) асоціюється з winload.exe, який не перевіряється цифровим підписом. Це щось говорить про це?
Патрік

1
Будь-яке оновлення ситуації @ LChaos2?
hg8

10

Перед тим як змінити розділи, зробіть резервну копію та збережіть на іншому пристрої. Якщо не sda змінити правильний диск. Тоді ви можете почати спочатку, якщо відновите невірно встановлений тест-диск. Ви просто хочете, щоб усі поточні плюс відсутні Логічні при відновленні з 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


3
Я зіткнувся з цією ж проблемою і розлучив шоу "вільний простір", де був Linux. Запустіть порятунок з / до "вільного місця" і ext4 повернувся!
speedogoo

3
Просто хочу зазвучити, щоб сказати, що gparted показав вільний простір там, де раніше був ext4. Ранжирований на розріз, встановлений на сектори, друкуючи розділи, рятуючи з / до «вільного простору» (не забудьте додати значення для секторів до ваших значень) і ext4 повернувся, точно такий же, як @speedogoo. Зовсім не потрібно возитися з гряззю.
Амедей Ван Гассе

2
Оскільки у більшості людей відсутні відсутні розділи, що ***** робить Windows 10 із таблицею розділів? У моєму випадку ext4 знаходився в логічному розділі.
Амедей Ван Гассе

Дякуємо за цю сухар. Мені вдалося відновити загублений розділ моєї дружини за допомогою розділеного порятунку. Пізніше встановити груб, ми знову повернулися до дії.
bheeshmar

7

Це неприємна помилка в учаснику Windows, а не специфічна для Linux. Він іронічно видалив розділ NTFS у моєму випадку.

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

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

У вашому випадку ваші Linux-розділи були розміщені на вашому диску до нового sda5, але мали більш високі номери розділів, ніж sda5до переділу.

Якщо ви подивитеся на величезні журнали оновлення Windows 10, ви побачите повідомлення на кшталт "6 до 5, нічого робити", а також старі та нові таблиці розділів.

Windows не перезаписує вміст видалених розділів, тому їх можна відновити, якщо ви зможете знайти, де вони є. У моєму випадку у мене були резервні копії таблиці розділів, але використання testdisk, як пояснено у відповіді Олдфреда, має чудові шанси їх знайти. Розлучену порятунок буде важко використовувати, оскільки у вашому випадку було видалено більше одного розділу.

Щоб використовувати testdisk з вашого Ubuntu Live CD, в терміналі, sudo apt-get install testdiskщоб встановити його та sudo testdiskзапустити.

Після ремонту таблиці розділів Linux-розділ, що містить GRUB, тепер може мати інше число, ніж раніше, тому ви все ще можете опинитися у рятувальному запиті GRUB. Якщо так, то відновлення пошкодженого завантажувача тепер буде в змозі встановити 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 може завершити оновлення.


Дякую за чітке пояснення, в чому проблема, це мені дуже допомогло. Я опинився в тій же ситуації, що описана в запитанні. Однак testdisk не зміг знайти видалений розділ Linux. Для мене врятований розлучений зробив свою справу, і я зміг продовжити оновлення Windows 10 після цього
Toby

"Windows не перезаписує вміст розділів, які він видаляє" Як це може бути? Новий розділ, який він зробив для мене (після вбивства моїх Linux-розділів), зайняв весь диск. Отже, це не означає, що писання може йти куди завгодно.
Грег Белл

Я не можу висловити, наскільки я тебе люблю
aviggiano

1

Для використання ремонту завантаження потрібно встановити в BIOS:

  • Увімкнути UEFI (у моєму BIOS це :)

    Підтримка спадщини DISABLE

  • Вимкнути безпечне завантаження

Ймовірно, у вас включена безпечна завантаження, тому ви отримуєте помилку "неправильно підписаний файл".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.