Как восстановить систему после случайного удаления всех ядер?

Я пытался удалить старые ядра, но, должно быть, я удалил все ядра на своем ноутбуке Ubuntu 11.04. Есть ли какой-нибудь способ исправить это с помощью загрузки по USB или установки жесткого диска в другой системе?

Загрузитесь с live CD (или live USB), смонтируйте некоторые системы, запустите chroot и установите ядро. После успешной установки ядра размонтируйте файловые системы.

  1. Открытый Терминал
  2. Смонтируйте раздел Ubuntu: sudo mount /dev/sdXY /mnt
  3. Смонтируйте несколько специальных разделов:

    sudo mount --bind /dev /mnt/devsudo mount --bind /proc /mnt/procsudo mount --bind /sys /mnt/sys
  4. (необязательно) Когда вы подключены к сети, используйте DNS-серверы из вашей рабочей среды (в противном случае имена хостов могут быть не разрешены).:

    cp /etc/resolv.conf /mnt/etc/resolv.conf
  5. Chroot в /mnt: sudo chroot /mnt
  6. Установите ядро Linux: apt-get install linux-image-generic (не требуется sudo, так как вы являетесь root после chroot)
  7. После успешной установки ядра извлеките chroot и размонтируйте некоторые файловые системы:

    exitsudo umount /mnt/syssudo umount /mnt/procsudo umount /mnt/devsudo umount /mnt
  8. Перезагрузите компьютер и извлеките компакт-диск или USB: sudo reboot

Этот расширенная процедура объясняет большинство осложнений, которые могут возникнуть, включая проблемы с подключением к Интернету в chroot, не зная, какой пакет ядра установить (до Ubuntu 12.10 он не будет всегда быть linux-image-generic), не зная с самого начала, какой раздел или даже какой физический диск содержит / файловой системы и имеющий отдельный /boot раздел.

Я не писал это со ссылкой ни на одну из других приведенных здесь процедур, хотя вы заметите некоторые сходства. Я действительно основывал его, в общих чертах, на процедура здесь (хотя эти инструкции предназначены для чего-то совершенно другого, я их тщательно адаптировал, и копируются только некоторые команды, а не прозаические).

Вы удалили все пакеты ядра, и Ubuntu не может загрузиться без установленного ядра. Таким образом, решение заключается в загрузке с live CD / DVD / USB, chroot в установленную систему и установите в нее ядро.

  1. Загрузитесь с компакт-диска Ubuntu live CD/DVD или флэш-накопителя live USB.

  2. Выбрать Попробуйте Ubuntu (не Установите Ubuntu).

  3. Когда появится рабочий стол, убедитесь, что вы подключены к Интернету. Если это не так, подключитесь к Интернету. Один из способов узнать, подключены ли вы к Интернету, - это открыть веб-браузер. Вы даже можете следовать остальным инструкциям, открыв этот ответ Ask Ubuntu в своем веб-браузере в системе live CD/DVD/USB. Я настоятельно рекомендую это сделать.

  4. Откройте окно терминала с помощью Ctrl+Alt+T.

  5. В окне терминала выполните эту команду, чтобы вывести список ваших разделов:

     sudo parted -l

    Вы увидите что-то вроде этого (но это не будет именно так вот так):

    Model: VMware, VMware Virtual S (scsi)Disk /dev/sda: 21.5GBSector size (logical/physical): 512B/512BPartition Table: msdosNumber  Start   End     Size    Type      File system     Flags 1      1049kB  20.4GB  20.4GB  primary   ext4            boot 2      20.4GB  21.5GB  1072MB  extended 5      20.4GB  21.5GB  1072MB  logical   linux-swap(v1)Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0has been opened read-only.Error: Can't have a partition outside the disk!
  6. Изучите полученные выходные данные, чтобы определить имя устройства раздела, содержащего / файловая система системы Ubuntu, установленной на жестком диске (который вы ремонтируете).

    • Если у вас есть только один ext4 перегородка, вот она какая.

    • Если у вас есть более одного ext4 раздел, это, вероятно, первый. Однако, если первый из них очень мал - менее гигабайта, - тогда это может быть отдельный /boot раздел (запомните и это тоже).

      Пожалуйста, обратите внимание, что независимо от того, является ли или нет boot находится в списке под Flags имеет очень мало общего с тем, является ли раздел отдельным /boot раздел. Моя система, информация о которой приведена выше, делает нет иметь отдельный /boot раздел.

    • Имя устройства для раздела начинается с имени устройства для физического диска, указанного сразу после Disk во второй строке. Затем просто добавьте номер раздела в конец этого. Итак, имя устройства для раздела, содержащего мой / файловая система - это /dev/sda1. Вот две строки, в которых я нашел эту информацию:

      Disk /dev/sda: 21,5ГБ
       1      1049kB 20,4ГБ 20,4 ГБ основная загрузка ext4
    • Если у вас более одного физического диска, вы получите более одного списка, подобного тому, что показано выше. Но если у вас не установлена другая Unix-подобная система, у вас, вероятно, будет только один диск, содержащий ext4 разделы, по крайней мере, без их преднамеренного создания на другом диске. Если у вас есть несколько дисков с ext4 перегородки, затем ext4 раздел, содержащий ваш / файловая система, вероятно, находится на диске, который тоже содержит linux-swap раздел.

    • Это возможный что ваша система Ubuntu / файловая система находится на разделе типа, отличного от ext4. Когда это происходит, это почти всегда ext3, и почти всегда в довольно старой системе. Это очень необычно, если только вы сами намеренно не настроили все таким образом.

    Запомните имя устройства раздела, содержащего ваш / файловую систему (или запишите ее). Если это отличается от /dev/sda1, тогда вы замените /dev/sda1 с его помощью выполните следующие действия.

    (Если это выглядело так, как будто у вас есть отдельный /boot раздел, запомните имя устройства и для этого тоже.)

  7. Установите на / файловой системы для /mnt, и установить его /dev файловая система:

    sudo mount /dev/sda1 /mntsudo монтировать --привязать /dev /mnt/dev
  8. Проверьте, имеет ли поврежденная система Ubuntu, которую вы ремонтируете, отдельный /boot перегородка, которая должна монтироваться отдельно. (Если вы являетесь конечно это не так, вы можете пропустить это.)

    Чтобы проверить, запустите:

    ls /mnt/boot

    Если есть вывод (например grub memtest86+.bin memtest86+_multiboot.bin, но не обязательно именно это), то сломанная система /boot находится в том же разделе, что и его / и вам не нужно ничего монтировать, чтобы получить к нему доступ.

    Но если выхода нет, то вам придется смонтировать /boot файловая система:

    sudo mount ЗАГРУЗОЧНЫЙ РАЗДЕЛ /mnt/загрузка

    Заменять BOOT-PARTITION с именем устройства в /boot раздел (см. шаг 6 выше).

  9. chroot в поврежденную систему смонтируйте оставшиеся важные виртуальные файловые системы и установите некоторые важные переменные среды:

    sudo chroot /mntmount -t proc none /procmount -t sysfs none /sysmount -t devpts none /dev/ptsexport HOME=/rootexport LC_ALL=C
  10. Определите, работает ли доступ в Интернет из chroot около pingиспользование какого-либо надежного хоста, который, как известно, нормально реагирует на запросы:

    ping -c 5 www.google.com

    Вы должны увидеть что-то вроде этого:

    PING www.l.google.com (74.125.131.147) 56(84) bytes of data.64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=1 ttl=44 time=61.3 ms64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=5 ttl=44 time=66.6 ms--- www.l.google.com ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 4006msrtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
    • Если это выглядит в основном так, и число перед % packet loss составляет менее 100, то подключение к Интернету в chroot работает:

      5 packets transmitted, 5 received, 0% потери пакетов, время 4006 мс

      Это работает, так что вы можете пропустить шаг 11.

    • Если это выглядит в основном так, и число перед % packet loss равно 100, соединение нуждается в устранении неполадок. Убедитесь, что соединение в системе live CD (например, через веб-браузер или выполнив ту же команду в отдельном, не-chrootвкладка/окно терминала) работает. Убедитесь, что вы правильно вводите команду. Воспользуйся www.google.com если вы там еще не были.

    • Если вывод совсем не похож на приведенный выше, но вместо этого говорит ping: unknown host www.google.com, то сеть еще не работает в chroot.

  11. Настройте сеть в chroot. Пропустите этот шаг, если у вас нет unknown host ошибка на шаге 10 выше.

    Чтобы настроить сеть, создайте резервную копию поврежденной системы hosts файл и скопируйте поверх системного компакт-диска live CD hosts и resolv.conf файлы. (Вам не нужно создавать резервную копию версии сломанной системы resolv.conf, поскольку этот файл автоматически восстанавливается "на лету".)

    Открыть новая вкладка терминала (Ctrl+Shift+T) или, если вы предпочитаете, новое окно терминала (Ctrl+Shift+N, или просто Ctrl+Alt+T). Выполните в нем следующие команды:

    sudo cp /mnt/etc/hosts /mnt/etc/hosts.oldsudo cp /etc/hosts /mnt/etc/hostssudo cp /etc/resolv.conf /mnt/etc/resolv.confexit

    exit команда в конце закрывает новую вкладку/окно.)

    Повторите шаг 10 выше, чтобы убедиться, что доступ в Интернет теперь работает из chroot. Так и должно быть.

  12. Выясните, какой пакет ядра должен быть установлен. Обычно это будет linux-image-generic.Но не всегда.

    Если вы не уверены, какой из них установить, это будет частично зависеть от того, какой выпуск Ubuntu вы установили, а частично от другой информации. Если вы не уверены, какой выпуск Ubuntu вы установили, выясните это, выполнив эту команду (в chroot, нет в отдельном окне/вкладке терминала):

    lsb_release -r
    • В Ubuntu 12.10 (следующий выпуск Ubuntu, который в настоящее время находится в разработке), он всегда будет linux-image-generic. (См. этот, этот, и этот.)

    • В Ubuntu 12.04 LTS вероятными возможностями являются linux-image-generic и linux-image-generic-pae. (В отличие от предыдущих версий, 12.04 больше не имеет отдельных серверных и настольных ядер.)

      • Если установленная система Ubuntu (которую вы исправляете) имеет 64-разрядную версию, используйте linux-image-generic. (linux-image-generic-pae применяется только к 32-разрядным системам.)

        32-разрядная система Ubuntu может быть установлена на 32-разрядном или 64-разрядном компьютере. Кроме того, вы можете использовать 32-разрядный или 64-разрядный live CD для исправления 32-разрядной установленной системы. Так что, если вы не знаете, является ли установленная система Ubuntu является 32-разрядной или 64-разрядной, проверьте, выполнив эту команду (в chroot, нет в отдельном окне/вкладке терминала):

        dpkg-architecture -qDEB_HOST_ARCH_BITS

        Результатом будет либо 32 или 64.

        (Пожалуйста, обратите внимание, что uname -m является нет правильный способ найти эту информацию, потому что даже при запуске в chroot, который расскажет вам об архитектуре запущенное ядро, который является ядром системы live CD, а не ядром установленной (сломанной) системы.)

      • Если установленная система Ubuntu (которую вы исправляете) является 32-разрядной версией, лучшее ядро для использования будет зависеть от того, сколько у вас оперативной памяти. Я рекомендую:

        • linux-image-generic если у вас меньше 3 ГБ оперативной памяти
        • linux-image-generic-pae если у вас 3 ГБ оперативной памяти или больше.

        (Именно так установщик Ubuntu выбирает, какой из них настроить, с тех пор как установщик получил возможность устанавливать ядра PAE. Видеть резолюция к эта ошибка. Если вы хотите узнать, что такое PAE, см. эта статья в Википедии. Если вы хотите узнать больше о PAE в Ubuntu, см. эта вики-страница Ubuntu.)

        Если вы не знаете, сколько у вас оперативной памяти, выполните эту команду, чтобы узнать:

        grep MemTotal /proc/meminfo

        Который указан в килобайт. Для преобразования в гигабайты, разделить на 1 048 576 (10242).

        • 3 гигабайта = 3 145 728 кБ
    • В выпусках Ubuntu до 12.04, вероятными возможностями являются linux-image-generic, linux-image-generic-pae, и linux-image-server.

      • Если вы используете серверную систему Ubuntu, используйте linux-image-server.
      • В противном случае следуйте приведенным выше рекомендациям для систем 12.04.
  13. Это тот момент, которого вы так долго ждали! Установите ядро в поврежденную систему.

    (Как и раньше, за исключением случаев, когда явно указано иное, эти команды выполняются в chroot, а не в отдельном окне/вкладке терминала.)

    apt-get updateapt-get -y install linux-образ-универсальный

    Заменять linux-image-generic с любым другим пакетом ядра, который вы решили установить на шаге 12 выше, если он отличается.

  14. Если вам пришлось выполнить шаг 11 для настройки сети в chroot, восстановить старую hosts файл. Если вы пропустили шаг 11, пропустите и этот шаг.

    Чтобы восстановить его, выполните эту команду:

    cp /etc/hosts.old /etc/hosts
  15. Размонтировать файловые системы, exitвыходя из chroot:

    umount /proc || umount -lf /procumount /sys /dev/ptsexitsudo umount /mnt/dev /mnt
  16. Выключите систему live CD/DVD/USB, извлекая live CD/DVD или флэш-накопитель USB. Загрузитесь в систему, установленную на жестком диске, который вы только что отремонтировали. Вы установили в него пакет ядра (и в рамках установки предоставляемое им ядро будет добавлено обратно в загрузочное меню GRUB2). Если все работало правильно, ваша система должна загрузиться без проблем. (Я думаю, вполне возможно, что на этот раз загрузка займет немного больше времени, чем обычно.)

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не тестировал вышеуказанную процедуру на все возможные Система Ubuntu, так что, возможно, в ней есть ошибка, которую я не идентифицировал.

В будущем я рекомендую всегда стараться сохранять два ядра установлены. Хорошо иметь два на случай, если один из них по какой-либо причине перестанет работать (вы можете выбрать другой в меню загрузки GRUB2). Кроме того, если вы намерены сохранить два ядер, и вы случайно удаляете на одно больше, чем намеревались, и перезагружаетесь, у вас все еще остается одно для загрузки.

Я просто хотел добавить свой опыт, который я получил сегодня при обновлении до Willy. Я немного прибрался и обнаружил, что у меня есть только memtest. google привел меня к пониманию того, что я удалил ядра. Одним из ограничений, которые у меня были, была медленная сеть, и поэтому загрузка полного ISO была невозможна. Поэтому я использовал Минимальный компакт-диск Ubuntu (Только 40 МБ) и загрузился на нем. После обнаружения аппаратной опции (которая помогла мне подключиться к беспроводной сети) Я перешел к варианту оболочки. Я последовал инструкциям @Lekensteyn, и мне это удалось. однако есть несколько вещей: вы должны скопировать resolv.conf прежде чем перейти к chroot, иначе ваш DNS будет испорчен, и поскольку у вошедшего в систему пользователя есть root, sudo нигде не нужен.

Я знаю, что он старый, но я подумал, что добавление этого ответа повысит ценность для тех, кто столкнется с этой проблемой.

Когда я удалил свое ядро, я нашел это решение на форумах Ubuntu. Я следил за каждым шагом, и система была восстановлена. Надеюсь, это вам поможет.

Chroot может работать, chroot означает, что при запуске системы вы меняете корневую файловую систему. Например, вы начали с live CD, но изменили корневой каталог "/" на тот, где установлена ваша ubuntu.

Допустим, ваша ubuntu установлена в / dev / sda2, тогда вы можете попробовать следующие команды:

Код:

sudo mount /dev/sda2 /mntsudo cp /etc/resolv.conf /mnt/etc/sudo cp /etc/hosts /mnt/etc/sudo mount --bind /dev/ /mnt/devsudo chroot /mntmount -t proc none /procmount -t sysfs none /sysmount -t devpts none /dev/ptsexport HOME=/rootexport LC_ALL=Cdbus-uuidgen > /var/lib/dbus/machine-iddpkg-divert --local --rename --add /sbin/initctlln -s /bin/true /sbin/initctl

теперь вы root "/" находится в /dev/sda2, попробуйте установить ядро

apt-get updateapt-get install linux-image-2.6.32-26-genericupdate-initramfs -cv -k allupdate-grub

Мне пришлось немного порассуждать здесь, так как мне никогда раньше не приходилось этого делать, но это должно быть об этом. Не знаю, получаете ли вы какое-либо предупреждение об ошибке fstab (например, не удается найти root).

Теперь вам нужно кое-что почистить и размонтировать смонтированные разделы:Код:

rm /etc/resolv.confrm /etc/hostsrm /var/lib/dbus/machine-idrm /sbin/initctldpkg-divert --rename --remove /sbin/initctlumount /proc # if this doesn't work try umount -lf /procumount /sysumount /dev/ptsexitsudo umount /mnt

И вы можете перезагрузиться, чтобы посмотреть, сработало ли это.

URL-адрес для потока: http://art.ubuntuforums.org/showthread.php?t=1688928

После того, как я вчера удалил старые ядра из Trusty14.04 (FTR: Я сделал нет удалите два самых последних!) моя система больше не загружалась. ЖРАТВА показала

Error: File not foundError: You need to load the kernel first

Понятия не имею, почему.

Затем я последовал за ним Превосходные инструкции Элайи Кагана устанавливать linux-image-generic с концертного компакт-диска. Он действительно установил 150 МБ нового ядра, но, к сожалению, это не решило проблему.

К счастью, я нашел эта страница. В Boot-Repair инструмент все сделал правильно, моя система снова работает.

По теме: Как восстановить удаленные файлы в /boot? (vmlinuz отсутствует, система не boot)