Відновлення переміщених .mod-файлів за допомогою grubrescue


33

Я зробив тупу річ ... Я забув, що Ubuntu 10.04 (Lucid Lynx) перейшов на GRUB  2, який поміщає тону * .mod файлів (модулів ядра) /boot/grub. Я думав, що це файли саундтреку помилково, і я перемістив їх. Потрібно сказати, що наступне перезавантаження було травматичним. Мені подарували щось, про що я не пам’ятав ніколи бачити ... підказку "рятування">.

За допомогою виправлення помилки GRUB: "помилка: невідома файлова система", проте я зміг відновити ...

  • Я виявив, що в рятувальній програмі GRUB немає "cd", "cp" або будь-яких інших команд файлової системи, за винятком власної зміни "ls".
  • Тому спочатку мені довелося знайти розділ з /bootкаталогом, що містить vmlinuzфайл та інші файли зображень завантаження ... (наближення до пам'яті про невдалі спроби, а також порожні рядки для наочності, додані 2014-07-10 докзальваж)

    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 
    
  • Я знайшов /bootкаталог, що містить vmlinuzфайл vmlinuz-2.6.32-33-genericна розділі (hd0,2).

  • Потім я вручну завантажився з підказки "рятування рятувальників>". Наступні команди будуть ...

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

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

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • Перезавантаження була успішною, але це було багато роботи.

Чи є простіший спосіб?


1
На мою думку, відновлення завантаження було б простіше. Ознайомтесь з однією з моїх численних відповідей на "Ремонт завантаження", щоб дізнатись про їх використання.
SirCharlo

1
"Найпростіший" спосіб - це не завжди найкращий спосіб. Я категорично не згоден з усіма коментарями, які пропонують використовувати Live CD; завантажуватись з живого компакт-диска в системах, які не мають зчитувач CD / DVD, насправді дуже важко.
Сімон

ican не знаходить розділ у каталозі / boot. Усі розділи за командою ls дають невідомий вихід файлової системи.
Rafed Nole

1
Ваша публікація була дуже корисною для завантаження ядра та initrd вручну, але моя система не могла знайти dev, sys або proc тощо / fstab або sbin / init. Це привело мене до іншої публікації , яка запропонувала завантажити ядро ​​та встановити корінь, як це детально описано в інструкціях до завантаження в документації на grub , наприклад: grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX де Xрозділ /boot, a.b.c-dце версія ядра. Тоді моя система завантажилася чудово! Спасибі!
Марк Мікофський

1
на додаток до [Виправлення помилки GRUB: “помилка: невідома файлова система” [дублікат]] ( askubuntu.com/q/142300/36961 ) ще одна чудова посилання, яка охоплює ці кроки, - як врятувати GRUB 2, що не завантажується, у Linux , Grub 2 керівництво також дуже корисне
Марк Мікофський

Відповіді:


5

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

До речі, я вважаю, що ви, напевно, знайшли .modфайли та виконали, insmod linuxабо linuxкоманда не змогла б.

Єдиним іншим способом, як згадувалося, було б завантаження Live CD та перевстановлення grub2 після chroot'ing до 'зламаної' системи.


Ви абсолютно праві! Я забув, що зробив це. Додано до моєї початкової публікації вище для подальшого використання. Мені потрібно бути більш дисциплінованим у дотриманні ретельних записів у цих ситуаціях. Будь ласка, порадьте, чи потрібні подальші зміни.
DocSalvager

Я також повинен був вказати root під час завантаження ядра, як у документах grub, наприклад grub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
Марк Мікофскі,

Також зауважте, якщо ви знайшли файли .mod, ви можете відновити „рятувальний зв’язок” до повнофункціонального GRUB: # Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal Джерело: gnu.org/software/grub/manual/html_node/…
MegaBrutal

7

Ось декілька загальних та основних інструкцій, які допоможуть при помилках завантаження, таких як GRUB loading stage 1.5 error 15 (наприклад, після встановлення Windows на інший дисковий диск):

  1. Завантаження з LiveDVD (наприклад, на диску Ubuntu Desktop).

  2. Відкрийте термінал і перепишіть конфігурацію grub за допомогою цих команд:

    • sudo mount /dev/sdXY /mnt
    • sudo grub-install --root-directory=/mnt /dev/sdX

Де /dev/sdXзнаходиться диск, на якому встановлено Ubuntu, і /dev/sdXYрозділ на диску, на якому встановлено Ubuntu. Іншими словами, /dev/sdXYмістить /bootтощо.

Використовуйте fdisk -lдля перевірки місця установки Ubuntu.


Не працює. Можливо, якби напрямки були більш конкретними, це спрацювало б.
Тім Стюарт

Коли у мене виникли проблеми grub2 на машині без CD-накопичувача, я зміг відновитись за допомогою мого накопичувача USB-накопичувача Gparted Live. Я завантажився в Gparted наживо. ТОГО я запустив термінал і набрав fdisk -l (це літер ell, а не номер 1). Вихід з цього дозволив мені визначити розділ, який мав кореневий розділ, і звідти я слідував чудовим інструкціям вище, і незабаром я з радістю подвоївся знову .
Вік

4
  1. Завантажте на Live CD

  2. Відкритий термінал (CTRL + ALT + T)

  3. Введіть такі команди:

sudo fdisk -l

І знайдіть свій розділ Ubuntu (повинен бути / dev / sda1, якщо це перший розділ)

sudo mount /dev/sda1 /mnt

sudo mount --bind /sys /mnt/sys

sudo mount --bind /proc /mnt/proc

sudo mount --bind /dev /mnt/dev

sudo chroot /mnt

Тепер перевстановіть Grub2

sudo apt-get install --reinstall grub2

2
Це кращий спосіб кращий за sudo mount /dev/sda1 /mntта sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?

4

У мене була така ж проблема, коли я оновив свою систему.

Я пропоную наступні прості кроки:

  1. Завантажте вашу систему за допомогою живого компакт-диска ubuntu або живого USB.
  2. Відкрийте термінал і запустіть команду sudo add-apt-repository ppa: yannubuntu / boot-repair & & sudo apt-get update
  3. Потім встановіть ремонт завантаження, запустивши команду sudo apt-get install -y boot-repair && boot-repair

  4. Розпочніть ремонт завантаження після встановлення. Наприклад, у меню використовуйте System->Administration->Boot-Repair (лише Ubuntu 10.04) та дотримуйтесь інструкцій.

    Визначення проблеми та її усунення може зайняти 15-20 хв.

Для отримання додаткової допомоги перейдіть за посиланням https://help.ubuntu.com/community/Boot-Repair


0

Ви можете завантажувати живий компакт-диск, встановити жорсткий диск, відкрити nautilus як root та скопіювати ці файли в / завантаження.

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