помилково видалили / завантажили папку та перезавантажили


16

Я помилково видалив папку / boot з моєї файлової системи, перезавантажився, і все, що я отримую зараз, це:

error: file '/boot/grub/i368-pc/linux.mod' not found.

grub rescue>


інше, в цьому випадку папка / boot була повністю видалена. не лише деякі файли з нього, дякую.
Імад Нуарі

Я не знаю, що жодна з відповідей на інше питання є достатньою, щоб це виправити ..
Graeme

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

7
Набагато більша помилка порівняно зі видаленням /boot- це, звичайно, перезавантаження системи до того, як це було виправлено.
Антон

Відповіді:


36

На жаль!

Ось що робити:

  1. Завантажте живий дистрибутив. Це може бути ваш інсталяційний диск Ubuntu або інший, наприклад Knoppix .

  2. Знайдіть диск / розділ, де ви встановили свою кореневу файлову систему. Для цього можна відкрити термінал і запустити sudo parted -lабо sudo fdisk -l. Якщо ви не можете сказати, відредагуйте своє запитання та додайте висновок.

  3. Якщо припустити, що ваш кореневий розділ, який ви знайшли з останнього кроку, є /dev/sdxy( xмає бути інша літера та yмає бути число), то запустіть у терміналі наступні команди:

    mkdir mnt
    sudo mount /dev/sdxy mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo chroot mnt
    
  4. Тепер ви опинитесь в chrootсередовищі, що означає, що тут виконуються команди, еквівалентно виконанню їх у встановленій системі. Перше, що ви хочете зробити, це перевстановити GRUB2 на пристрій, щоб він скопіював правильні файли в /bootпапку. Для цього виконайте такі дії з накопичувачем, на якому увімкнено ваш кореневий розділ (тобто /dev/sdxyз yвилученим номером ( )):

    grub-install /dev/sdx
    
  5. Тепер ви хочете дізнатися, які встановлені вами пакети, які містять файли в завантажувальній директорії, і перевстановити їх. Це замінить зображення ядра, які були видалені серед іншого. Команда пошуку пакетів:

    dpkg -S /boot
    

    І перевстановити їх:

    apt-get --reinstall install ...
    

    Де ...замінено назви пакетів з першої команди. Не включайте коми, просто слід назвати пакети з пробілами.

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

  6. Оскільки ви будете видалити ваші ядра та перевстановити їх, це повинно запустити оновлення GRUB2 автоматично. Але на всякий випадок, якщо цього не відбулося, ви можете запустити:

    update-grub
    
  7. Перезавантажте і все тепер слід виправити. Одне питання, з яким я востаннє робив щось подібне, це те, що Windows встановлює там, де не знайдено, update-grubколи запускається chrootчерез помилку os-prober. Якщо це проблема, просто запустіть sudo update-grubще раз у відремонтованій системі.


@Olivier, спасибі, я спочатку був /dev/sdaxскрізь, а потім змінив його /dev/sdxy.
Граем

Дякую за чудову інформацію - це мене врятувало, одним доповненням. Оскільки у мене є програмний RAID, мені довелося також дотримуватися інструкцій тут: help.ubuntu.com/community/Grub2/Встановлення під час перевстановлення за допомогою методу chroot для запуску mdadm та збирання RAID-членів та виконання монтажу відповідно. Потім, після chroot, перевстановіть пакунки, як описано у цій відповіді, і все добре!
bitfiddler
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.