Відновлення після аварії "рятування"> "закрито]


25

Спочатку розміщено на AskUbuntu.com ...

AskUbuntu прийняв політику закриття питань щодо версій EOL (End Of Life). Існує також голосовий контингент, щоб їх також видалити. Щоб запобігти можливій втраті цього популярного питання (342335 переглядів на сьогодні), розміщую тут переглянуту версію. --- docsalvager

"Класична" система ...

  • Щеня Linux 5.2.8 (Lucid) на базі Ubuntu 10.04 (Lucid Lynx)
  • Завантажувач GRUB 2

GRUB 2 поміщає ряд *.modфайлів (модулів ядра) в /boot/grub. Видалення цих файлів (думаючи, що вони були замінені звуковими файлами) призвело до невдачі при перезавантаженні та підказці grub rescue>.

Як одужати в цій ситуації?


1
Здається, що це німе питання. Очевидно, ви або відновите видалені файли з резервної копії, або перевстановіть grub (і є багато питань, як це зробити вже)
psusi

Абсолютна статистика перегляду минулого приблизно так само актуальна, як і дані вчорашньої газети.
Антон

Газети з минулого розв’язали незліченну кількість злочинів і відповідали за багато проблем, які зробили світ кращим.
DocSalvager

Мені здається, що завантаження в режим порятунку з DVD та перевстановлення grub звідси, ймовірно, буде ідеальним. Це, мабуть, набагато простіше для більшості людей, оскільки згадана втрата даних повинна бути обмежена файлами в пакеті.
Братчлі

Не кажучи про те, що я не думаю, що виловлювати конкретні файли з initrd не є розумним. Я просто думаю, що це, швидше за все, бентежить людей, як це допомагати. Завантаження в режим порятунку / відновлення є більш поширеною процедурою.
Братчлі

Відповіді:


43

Ця відповідь призначена для інших, на які відповідь DocSalvager не працює.

  1. Я стежив за використанням DocSalvager, lsщоб знайти правильний розділ жорсткого диска. У моєму випадку це було (hd0,msdos5).
  2. Потім я виконав наступні команди, щоб повернутися до звичайного екрана завантажувача grub.

    grub rescue>  set boot=(hd0,msdos5)
    grub rescue>  set prefix=(hd0,msdos5)/boot/grub
    grub rescue>  insmod normal  
    grub rescue>  normal  
    
  3. Після завантаження в Ubuntu я відремонтував завантажувач grub з наступними командами з терміналу.

    sudo grub-install /dev/sda 
    

Зверніться до цього джерела для візуального проходження цього процесу.


6
Я радий, що ви, хлопці, розміщували до закриття
smac89

2
Ідеально - саме та допомога, яка мені потрібна була для завантаження! Я також бігав sudo update-grubраніше grub-install, тому що мій макет розділів змінився.
mwfearnley

Скільки часу займає insmod normalкоманда? Після натискання Enter мій ubuntu висить. Правда, він 'працює' як VM в Oracle VirtualBox.
snark

1
Оновлення: Він зрештою повернувся, error: failure reading sector 0x8019a4 from 'hd0'тому я думаю, що це досить термінал!
snark

легендарна відповідь!
зак

28

Відновлення після аварії в рятувальній роботі ...

  • grub rescue>не підтримує cd, cpабо будь-які інші команди файлової системи , крім своєї власної варіації , lsякі насправді свого роду findкоманди.
  • Отже, спочатку довелося знайти розділ з /bootкаталогом, що містить vmlinuzфайли зображень завантаження та інші файли завантаження ...

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
    • ls без аргументів повертає чотири розділи в цій системі.
    • ls (hd0,4)/bootне знаходить /bootкаталог на розділі (hd0,4).
    • ls (hd0,3)/bootне знаходить /bootкаталог на розділі (hd0,3).
    • ls (hd0,2)/bootзнаходить /bootкаталог на розділі (hd0,2)і містить vmlinuzфайли зображень завантаження та інші файли, які ми хочемо.
  • Щоб вручну завантажуватися з grub rescue>підказки ...

    grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic  
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
    • Виберіть rootвикористання /bootкаталогу на розділі (hd0,2).
    • Завантажте модуль грязі linux.
    • Встановіть цей модуль для використання зображення ядра vmlinuz-2.6.32-33-generic.
    • Встановіть initrd (диск RIT RIT), щоб використовувати зображення initrd.img-2.6.32-33-generic.
    • Завантажте Linux.
  • Це завантажується в командний рядок BusyBox, в якому є всі основні команди файлової системи ( а потім і деякі! ).

  • Потім можна перенести *.modфайли назад у /boot/grubкаталог ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Успішне перезавантаження!

Дивись також ...


Я не можу знайти папку завантаження на кореневому рівні в BusyBox
souparno majumder

1
Образи завантажуваного файлу vmlinuz, ... можуть знаходитись у кореневій файловій системі верхнього рівня, тому спробуйте скористатися лише косою рисою. Це також покаже каталоги найвищого рівня. Якщо завантажувальні зображення не знаходяться в корені верхнього рівня, ви можете почати спробувати найбільш перспективні з каталогів, поки не знайдете їх. Наприклад: ls (hd0,1)/, ls (hd0,2)/, ls (hd0,2)/initramfs/і т.д ..
DocSalvager

У моєму випадку після бігу ls (hd0,7)/bootце показує attempt to read or write outside of disk 'hd0'.
ромашка

На диску hd0 є менше 7 розділів. Можливо також, що на диску є якийсь нерозподілений простір, який не є частиною жодного розділу.
DocSalvager

1
Мені довелося встановити префікс на / boot / grub перед тим, як мені було дозволено запускати insmod linux!
Еміль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.