Как восстановить систему после случайного удаления всех ядер?
69
Я пытался удалить старые ядра, но я, должно быть, удалил все ядра на своем ноутбуке Ubuntu 11.04. Есть ли способ исправить это через загрузочный USB-накопитель или смонтировать жесткий диск в другой системе?
Загрузитесь с live CD (или live USB), смонтируйте несколько систем, загрузитесь в него и установите ядро. После успешной установки ядра размонтируйте файловые системы.
Открытый терминал
Смонтируйте раздел Ubuntu: sudo mount /dev/sdXY /mnt
Смонтируйте несколько специальных разделов:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
(необязательно) Когда вы подключены к сети, используйте DNS-серверы из вашей среды Live (в противном случае имена хостов не могут быть разрешены):
cp /etc/resolv.conf /mnt/etc/resolv.conf
Закрепите в /mnt:sudo chroot /mnt
Установите ядро Linux: apt-get install linux-image-generic(sudo не требуется, поскольку вы являетесь пользователем root после chroot)
После успешной установки ядра вытащите chroot и размонтируйте некоторые файловые системы:
Это то, что я бы предложил. Я не понимаю, почему это не сработает.
Оли
Хорошо, спасибо за подтверждение. Я также добавил этапы завершения, размонтирование /mnt. Ubuntu обычно заботится о размонтировании / синхронизации файловых систем, но для меня это выглядит чище.
Лекенштейн
1
@MaheshKatta Сначала вам нужно смонтировать RAID. Таким образом, вместо второго шага (где вы монтируете один диск) вы будете отображать /dev/mdxxxдиск - предполагая, что это mdadm.
Оли
4
@James Edit /etc/resolv.conf(удалите его, если это символическая ссылка) и вставьте что-то вроде nameserver 8.8.8.8этого (публичный DNS-сервер Google). Замените его при необходимости.
Лекенштейн
3
Nvm. Похоже, мне пришлось редактировать файл в самом chroot. Возможно, вам следует добавить ответ, cp /etc/resolv.conf /mnt/etc/resolv.confпрежде чем переходить к chroot. В любом случае, это сработало для меня
Питер Рейвс
56
Эта расширена процедура учитывает большинство осложнений , которые могут возникнуть, в том числе проблем с подключением к Интернету в chroot, не зная , какое ядро пакет для установки (до Ubuntu 12.10, это не всегда будет linux-image-generic), не зная , с самого начала , какой раздел или даже какой физический диск содержит /файловую систему и имеет отдельный /bootраздел.
Я не писал это со ссылкой на какие-либо другие процедуры здесь, хотя вы заметите некоторые сходства. Я основал это, свободно, на процедуре здесь (хотя эти инструкции для чего-то совершенно другого, я их сильно адаптировал, и копируются только некоторые команды, а не проза).
Вы удалили все пакеты ядра, и Ubuntu не может загрузиться без установленного ядра. Поэтому решение состоит в том, чтобы загрузиться с живого CD / DVD / USB chrootв установленную систему и установить в нее ядро.
Загрузитесь с живого CD / DVD-диска Ubuntu или USB-флешки.
Выберите Попробовать Ubuntu (не устанавливать Ubuntu ).
Когда появится рабочий стол, убедитесь, что вы подключены к Интернету. Если нет, подключитесь к Интернету. Один из способов проверить, подключены ли вы к Интернету, - открыть веб-браузер. Вы даже можете следовать остальным инструкциям, разместив этот ответ Ask Ubuntu в своем веб-браузере, в системе live CD / DVD / USB. Я настоятельно рекомендую это сделать.
Откройте окно терминала с помощью Ctrl+ Alt+ T.
В окне терминала выполните эту команду, чтобы вывести список разделов:
sudo parted -l
Вы увидите что-то вроде этого (но это будет не совсем так):
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number 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/sr0
has been opened read-only.
Error: Can't have a partition outside the disk!
Изучите полученный вывод, чтобы определить имя устройства раздела, содержащего /файловую систему системы Ubuntu, которая установлена на жестком диске (который вы восстанавливаете).
Если у вас есть только один ext4раздел, это один.
Если у вас более одного ext4раздела, вероятно, это первый раздел. Однако, если первый размер очень маленький - меньше гигабайта - тогда это может быть отдельный /bootраздел (помните, что тоже).
Обратите внимание, что то boot, перечислено в списке или нет Flags, очень мало связано с тем, является ли раздел отдельным /bootразделом. Моя система, чья информация указана выше, не имеет отдельного /bootраздела.
Имя устройства для раздела начинается с имени устройства для физического диска, которое указывается сразу после Diskвторой строки. Затем просто добавьте номер раздела в конце этого. Итак, имя устройства для раздела, содержащего мою/ файловую систему, таково /dev/sda1. Вот две строки, где я нашел эту информацию:
Disk /dev/sda: 21.5GB
1 1049kB 20.4GB 20.4GB primary ext4 boot
Если у вас есть более одного физического диска, вы получите более одного списка, как показано выше. Но если у вас не установлена другая Unix-подобная система, вероятно, у вас будет только один диск с ext4разделами, по крайней мере, без намеренного создания их на другом диске. Если у вас есть несколько дисков с ext4разделами, то ext4раздел, содержащий вашу /файловую систему, вероятно, находится на диске, который также содержит linux-swapраздел.
Это возможно , что ваша система Ubuntu в /файловой системе на перегородке другого типа , чем ext4. Когда это происходит, это почти всегда ext3, и почти всегда в довольно старой системе. Это очень редко случается, если вы не намеренно настроили все таким образом.
Запомните имя устройства раздела, содержащего вашу /файловую систему (или запишите его). Если он отличается от этого /dev/sda1, вы замените /dev/sda1его в следующих шагах.
(Если выглядело, как будто у вас есть отдельный /bootраздел, запомните имя устройства для этого тоже.)
Смонтируйте /файловую систему /mntи смонтируйте ее /dev:
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
Проверьте, имеет ли сломанная система Ubuntu, которую вы восстанавливаете, отдельный /bootраздел, который необходимо монтировать отдельно. (Если вы уверены, что это не так, вы можете пропустить это.)
Чтобы проверить, запустите:
ls /mnt/boot
Если есть вывод (например grub memtest86+.bin memtest86+_multiboot.bin, но не обязательно именно так), то сломанная система /bootнаходится в том же разделе, что и ее, /и вам не нужно ничего монтировать для доступа к ней.
Но если нет выходных данных, вам придется смонтировать /bootфайловую систему:
sudo mount BOOT-PARTITION /mnt/boot
Замените BOOT-PARTITIONна имя устройства /bootраздела (см. Шаг 6 выше).
chroot в сломанную систему, смонтируйте оставшиеся важные виртуальные файловые системы и установите некоторые важные переменные среды:
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
Определить , если доступ в Интернет работает изнутри с chrootпомощью pingING некоторые надежного хозяина , который , как известно, обычно отвечают на пинги:
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 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms
64 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 4006ms
rtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
Если это выглядит в основном так, а число до этого % packet lossменьше 100, то подключение к Интернету в chrootработает:
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
Это работает, так что вы можете пропустить шаг 11 .
Если это выглядит в основном так, а число перед этим % packet lossравно 100, соединение требует устранения неполадок. Убедитесь, что соединение в системе live CD (например, через веб-браузер или с помощью той же команды в отдельной, не chrootредактируемой вкладке / окне терминала) работает. Убедитесь, что вы вводите команду правильно. Используйте, www.google.comесли вы еще не были.
Если выходные данные совсем не похожи на вышеприведенные, а вместо этого говорят ping: unknown host www.google.com, что сеть еще не работает в chroot.
Настройте сеть в chroot. Пропустите этот шаг, если вы не получили unknown hostошибку в шаге 10 выше.
Для настройки сети создайте резервную копию hostsфайла сломанной системы и скопируйте систему hostsи resolv.confфайлы live CD . (Вам не нужно создавать резервную копию сломанной версии системы resolv.conf, так как этот файл автоматически восстанавливается на лету.)
Откройте новую вкладку «Терминал» ( Ctrl+ Shift+ T) или, если хотите, новое окно «Терминал» ( Ctrl+ Shift+ Nили просто Ctrl+ Alt+ T). Запустите эти команды в нем:
(Команда exitв конце закрывает новую вкладку / окно.)
Повторите шаг 10 выше, чтобы убедиться, что доступ к Интернету теперь работает изнутри chroot. Должно.
Выясните, какой пакет ядра должен быть установлен. Обычно так и будет 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 (1024 2 ).
3 гигабайта = 3 145 728 кБ
В Ubuntu выпускает прежде , чем 12.04, вероятно , возможности linux-image-generic, linux-image-generic-paeи linux-image-server.
Если вы работаете с системой Ubuntu Server, используйте linux-image-server.
В противном случае следуйте приведенным выше советам для систем 12.04.
Это момент, которого вы так долго ждали! Установите ядро в сломанной системе.
(Как и раньше, за исключением случаев, когда явно указано иное, эти команды выполняются в chroot, а не в отдельном окне / вкладке терминала.)
Выключите систему live CD / DVD / USB, извлеките live CD / DVD или флэш-накопитель USB. Загрузите систему, установленную на жестком диске, который вы только что отремонтировали. Вы установили в него пакет ядра (и в процессе установки его ядро будет добавлено обратно в загрузочное меню GRUB2). Если все работает правильно, ваша система должна загрузиться без проблем. (Думаю, на этот раз загрузка может занять немного больше времени, чем обычно.)
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не проверял вышеописанную процедуру на каждой возможной системе Ubuntu, поэтому возможно, что в ней есть ошибка, которую я не идентифицировал.
В будущем я рекомендую всегда пытаться сохранить два установленных ядра. Хорошо иметь два на случай, если один из них перестанет работать по любой причине (вы можете выбрать другой в меню загрузки GRUB2). Кроме того, если вы намереваетесь сохранить два ядра и случайно удалили еще одно ядро и перезагрузиться, у вас все равно остается одно для загрузки.
Это может быть лучшим письменным объяснением того, как сделать что-то сложное в Linux, которое я когда-либо читал. Спасибо
ZincX
Вау, это так супер-полезно! Огромное спасибо!
Rafał Cieślak
2
Большое спасибо, Элия, - тупо удалив все мои образы с Linux, ты спас мне бекон. Единственный сбой, который у меня был, был на шаге: sudo cp /etc/resolv.conf /mnt/etc/resolv.conf Я получил ошибку «cp: не писать через висячую символическую ссылку` /mnt/etc/resolv.conf '». Я нашел эту ветку и следовал инструкциям одного автора: «rm /mnt/etc/resolv.conf» перед «cp /etc/resolv.conf /mnt/etc/resolv.conf» для решения проблемы с символьными ссылками.
@ xcal400 в /etc/resolv.confнастоящее время управляется resolvconf, он будет автоматически генерироваться при использовании NetworkManager и может быть безопасно удален с помощью, rm /etc/resolv.confкак вы узнали.
Лекенштейн
3
Этот должен быть принятым ответом. Спасибо!
Жан-Мишель Гарсия
0
Когда я удалил свое ядро, я нашел это решение на форумах Ubuntu. Я следил за каждым шагом, и система была восстановлена. Надеюсь, это поможет вам.
Chroot может работать, chroot означает, что при запуске системы вы меняете корневую файловую систему. Например, вы начали с живого CD, но изменили корень "/" на тот, где установлена ваша Ubuntu.
Допустим, ваша Ubuntu установлена в / dev / sda2, тогда вы можете попробовать следующие команды:
теперь вы root "/" на / dev / sda2, попробуйте установить ядро
apt-get update
apt-get install linux-image-2.6.32-26-generic
update-initramfs -cv -k all
update-grub
Я должен был сделать небольшую догадку здесь, так как я никогда не должен был делать это раньше, но это должно быть об этом. Не знаю, если вы получаете предупреждение об ошибке fstab (например, не могу найти root).
Теперь вам нужно почистить некоторые вещи и размонтировать смонтированные разделы: Код:
Почему бы вы заменить /etc/hostsи удалить /sbin/initctl? Это там по причине.
Лекенштейн
Кажется, что это в конечном счете основано на LiveCDCustomization ; некоторые шаги не нужны для восстановления уже установленной системы. В частности, не нужно ничего делать с /sbin/initctlили dbus-uuidgenили dpkg-divert. Вы , возможно , потребуется заменить /etc/hostsдля подключения к Интернету, но обычно не, и если вы делаете, вы должны поставить исходное состояние . В установленной системе (а не на live CD, который загружается, а затем распаковывает файловую систему squashfs), вам не нужно запускаться update-initramfsили даже update-grubпосле установки ядра.
Элия Каган
Кроме того, поскольку эта процедура не устанавливает метапакет ядра, ядро может не обновляться должным образом позже, если только метапакет не установлен. Кроме того, linux-image-2.6.32-26-genericбольшинству людей не удастся установить ядро.
Элия Каган
0
После того, как я вчера удалил старые ядра из Trusty14.04 (FTR: я не удалил два самых последних!), Моя система больше не загружалась. GRUB показал
Error: File not found
Error: You need to load the kernel first
Понятия не имею почему.
Затем я последовал прекрасным инструкциям Элии Каган по установке linux-image-genericс live CD. Было установлено 150 МБ нового ядра, но, к сожалению, это не решило проблему.
К счастью, я нашел эту страницу . Boot-RepairИнструмент получил это право, моя система работает снова.
Я просто хотел добавить свой опыт, который я прошел сегодня в повышении до Вилли. Я немного прибрался, и я обнаружил, что у меня только один тест. Google привел меня к пониманию, что я удалил ядра. У меня было одно ограничение - медленная сеть, поэтому загрузка полного ISO не была вариантом. Поэтому я использовал Ubuntu Minimal CD (только 40 МБ) и загрузился на нем. После определения аппаратной опции (которая помогла мне подключиться к беспроводной сети) я перешел к опции оболочки. Я следовал инструкциям @Lekensteyn, и мне это удалось. Тем не менее, кое-что: вы должны скопировать, resolv.confпрежде чем переходить в chroot, иначе ваш DNS будет испорчен, и, поскольку вошедший в систему пользователь не нуждается ни в каком sudo, ни root.
Я знаю его старый, но я думал, что добавление этого ответа добавит ценность тем, кто столкнется с проблемой.
Ответы:
Загрузитесь с live CD (или live USB), смонтируйте несколько систем, загрузитесь в него и установите ядро. После успешной установки ядра размонтируйте файловые системы.
sudo mount /dev/sdXY /mnt
Смонтируйте несколько специальных разделов:
(необязательно) Когда вы подключены к сети, используйте DNS-серверы из вашей среды Live (в противном случае имена хостов не могут быть разрешены):
/mnt
:sudo chroot /mnt
apt-get install linux-image-generic
(sudo не требуется, поскольку вы являетесь пользователем root после chroot)После успешной установки ядра вытащите chroot и размонтируйте некоторые файловые системы:
sudo reboot
источник
/mnt
. Ubuntu обычно заботится о размонтировании / синхронизации файловых систем, но для меня это выглядит чище./dev/mdxxx
диск - предполагая, что это mdadm./etc/resolv.conf
(удалите его, если это символическая ссылка) и вставьте что-то вродеnameserver 8.8.8.8
этого (публичный DNS-сервер Google). Замените его при необходимости.cp /etc/resolv.conf /mnt/etc/resolv.conf
прежде чем переходить к chroot. В любом случае, это сработало для меняЭта расширена процедура учитывает большинство осложнений , которые могут возникнуть, в том числе проблем с подключением к Интернету в
chroot
, не зная , какое ядро пакет для установки (до Ubuntu 12.10, это не всегда будетlinux-image-generic
), не зная , с самого начала , какой раздел или даже какой физический диск содержит/
файловую систему и имеет отдельный/boot
раздел.Я не писал это со ссылкой на какие-либо другие процедуры здесь, хотя вы заметите некоторые сходства. Я основал это, свободно, на процедуре здесь (хотя эти инструкции для чего-то совершенно другого, я их сильно адаптировал, и копируются только некоторые команды, а не проза).
Вы удалили все пакеты ядра, и Ubuntu не может загрузиться без установленного ядра. Поэтому решение состоит в том, чтобы загрузиться с живого CD / DVD / USB
chroot
в установленную систему и установить в нее ядро.Загрузитесь с живого CD / DVD-диска Ubuntu или USB-флешки.
Выберите Попробовать Ubuntu (не устанавливать Ubuntu ).
Когда появится рабочий стол, убедитесь, что вы подключены к Интернету. Если нет, подключитесь к Интернету. Один из способов проверить, подключены ли вы к Интернету, - открыть веб-браузер. Вы даже можете следовать остальным инструкциям, разместив этот ответ Ask Ubuntu в своем веб-браузере, в системе live CD / DVD / USB. Я настоятельно рекомендую это сделать.
Откройте окно терминала с помощью Ctrl+ Alt+ T.
В окне терминала выполните эту команду, чтобы вывести список разделов:
Вы увидите что-то вроде этого (но это будет не совсем так):
Изучите полученный вывод, чтобы определить имя устройства раздела, содержащего
/
файловую систему системы Ubuntu, которая установлена на жестком диске (который вы восстанавливаете).Если у вас есть только один
ext4
раздел, это один.Если у вас более одного
ext4
раздела, вероятно, это первый раздел. Однако, если первый размер очень маленький - меньше гигабайта - тогда это может быть отдельный/boot
раздел (помните, что тоже).Обратите внимание, что то
boot
, перечислено в списке или нетFlags
, очень мало связано с тем, является ли раздел отдельным/boot
разделом. Моя система, чья информация указана выше, не имеет отдельного/boot
раздела.Имя устройства для раздела начинается с имени устройства для физического диска, которое указывается сразу после
Disk
второй строки. Затем просто добавьте номер раздела в конце этого. Итак, имя устройства для раздела, содержащего мою/
файловую систему, таково/dev/sda1
. Вот две строки, где я нашел эту информацию:Если у вас есть более одного физического диска, вы получите более одного списка, как показано выше. Но если у вас не установлена другая Unix-подобная система, вероятно, у вас будет только один диск с
ext4
разделами, по крайней мере, без намеренного создания их на другом диске. Если у вас есть несколько дисков сext4
разделами, тоext4
раздел, содержащий вашу/
файловую систему, вероятно, находится на диске, который также содержитlinux-swap
раздел.Это возможно , что ваша система Ubuntu в
/
файловой системе на перегородке другого типа , чемext4
. Когда это происходит, это почти всегдаext3
, и почти всегда в довольно старой системе. Это очень редко случается, если вы не намеренно настроили все таким образом.Запомните имя устройства раздела, содержащего вашу
/
файловую систему (или запишите его). Если он отличается от этого/dev/sda1
, вы замените/dev/sda1
его в следующих шагах.(Если выглядело, как будто у вас есть отдельный
/boot
раздел, запомните имя устройства для этого тоже.)Смонтируйте
/
файловую систему/mnt
и смонтируйте ее/dev
:Проверьте, имеет ли сломанная система Ubuntu, которую вы восстанавливаете, отдельный
/boot
раздел, который необходимо монтировать отдельно. (Если вы уверены, что это не так, вы можете пропустить это.)Чтобы проверить, запустите:
Если есть вывод (например
grub memtest86+.bin memtest86+_multiboot.bin
, но не обязательно именно так), то сломанная система/boot
находится в том же разделе, что и ее,/
и вам не нужно ничего монтировать для доступа к ней.Но если нет выходных данных, вам придется смонтировать
/boot
файловую систему:Замените
BOOT-PARTITION
на имя устройства/boot
раздела (см. Шаг 6 выше).chroot
в сломанную систему, смонтируйте оставшиеся важные виртуальные файловые системы и установите некоторые важные переменные среды:Определить , если доступ в Интернет работает изнутри с
chroot
помощьюping
ING некоторые надежного хозяина , который , как известно, обычно отвечают на пинги:Вы должны увидеть что-то вроде этого:
Если это выглядит в основном так, а число до этого
% packet loss
меньше 100, то подключение к Интернету вchroot
работает:Это работает, так что вы можете пропустить шаг 11 .
Если это выглядит в основном так, а число перед этим
% packet loss
равно 100, соединение требует устранения неполадок. Убедитесь, что соединение в системе live CD (например, через веб-браузер или с помощью той же команды в отдельной, неchroot
редактируемой вкладке / окне терминала) работает. Убедитесь, что вы вводите команду правильно. Используйте,www.google.com
если вы еще не были.Если выходные данные совсем не похожи на вышеприведенные, а вместо этого говорят
ping: unknown host www.google.com
, что сеть еще не работает вchroot
.Настройте сеть в
chroot
. Пропустите этот шаг, если вы не получилиunknown host
ошибку в шаге 10 выше.Для настройки сети создайте резервную копию
hosts
файла сломанной системы и скопируйте системуhosts
иresolv.conf
файлы live CD . (Вам не нужно создавать резервную копию сломанной версии системыresolv.conf
, так как этот файл автоматически восстанавливается на лету.)Откройте новую вкладку «Терминал» ( Ctrl+ Shift+ T) или, если хотите, новое окно «Терминал» ( Ctrl+ Shift+ Nили просто Ctrl+ Alt+ T). Запустите эти команды в нем:
(Команда
exit
в конце закрывает новую вкладку / окно.)Повторите шаг 10 выше, чтобы убедиться, что доступ к Интернету теперь работает изнутри
chroot
. Должно.Выясните, какой пакет ядра должен быть установлен. Обычно так и будет
linux-image-generic
. Но не всегда.Если вы не уверены, какую установку установить, это будет зависеть отчасти от того, какую версию Ubuntu вы установили, а отчасти от другой информации. Если вы не уверены , какой Ubuntu релиз вы установили, узнать, выполнив команду (в
chroot
, не в терминальном окне / вкладке отдельный):На 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
, а не в отдельном окне / вкладке терминала):Выход будет либо
32
или64
.(Обратите внимание , что
uname -m
это не правильный путь , чтобы найти эту информацию, потому что даже при запуске вchroot
, что расскажет вам архитектуру запущенного ядра , что ядро программы системы Live CD и не установлен (прерывистая) ядро системы.)Если установленная система Ubuntu (которую вы исправляете) является 32-битной версией, лучшее ядро для использования будет зависеть от того, сколько у вас оперативной памяти. Рекомендую:
linux-image-generic
если у вас менее 3 ГБ оперативной памятиlinux-image-generic-pae
если у вас 3 ГБ ОЗУ или больше.(Это как инсталлятор для Ubuntu выбирает который один для установки, с тех пор установщик получил возможность установить PAE ядра. См разрешение на эту ошибку . Если вы хотите узнать , что PAE это, см статью в Википедии . Если вы хотите узнайте о PAE в Ubuntu, см. эту вики-страницу Ubuntu .)
Если вы не знаете, сколько у вас ОЗУ, выполните эту команду, чтобы узнать:
Это указано в килобайтах . Чтобы преобразовать в гигабайты , разделите на 1 048 576 (1024 2 ).
В Ubuntu выпускает прежде , чем 12.04, вероятно , возможности
linux-image-generic
,linux-image-generic-pae
иlinux-image-server
.linux-image-server
.Это момент, которого вы так долго ждали! Установите ядро в сломанной системе.
(Как и раньше, за исключением случаев, когда явно указано иное, эти команды выполняются в
chroot
, а не в отдельном окне / вкладке терминала.)Замените
linux-image-generic
другим пакетом ядра, который вы решили установить на шаге 12 выше, если он отличается.Если вам пришлось выполнить шаг 11 для настройки сети в
chroot
, восстановите старыйhosts
файл. Если вы пропустили шаг 11, пропустите этот шаг тоже.Чтобы восстановить его, запустите эту команду:
Размонтируйте файловые системы,
exit
выполнив следующие действияchroot
:Выключите систему live CD / DVD / USB, извлеките live CD / DVD или флэш-накопитель USB. Загрузите систему, установленную на жестком диске, который вы только что отремонтировали. Вы установили в него пакет ядра (и в процессе установки его ядро будет добавлено обратно в загрузочное меню GRUB2). Если все работает правильно, ваша система должна загрузиться без проблем. (Думаю, на этот раз загрузка может занять немного больше времени, чем обычно.)
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не проверял вышеописанную процедуру на каждой возможной системе Ubuntu, поэтому возможно, что в ней есть ошибка, которую я не идентифицировал.
В будущем я рекомендую всегда пытаться сохранить два установленных ядра. Хорошо иметь два на случай, если один из них перестанет работать по любой причине (вы можете выбрать другой в меню загрузки GRUB2). Кроме того, если вы намереваетесь сохранить два ядра и случайно удалили еще одно ядро и перезагрузиться, у вас все равно остается одно для загрузки.
источник
/etc/resolv.conf
настоящее время управляетсяresolvconf
, он будет автоматически генерироваться при использовании NetworkManager и может быть безопасно удален с помощью,rm /etc/resolv.conf
как вы узнали.Когда я удалил свое ядро, я нашел это решение на форумах Ubuntu. Я следил за каждым шагом, и система была восстановлена. Надеюсь, это поможет вам.
Chroot может работать, chroot означает, что при запуске системы вы меняете корневую файловую систему. Например, вы начали с живого CD, но изменили корень "/" на тот, где установлена ваша Ubuntu.
Допустим, ваша Ubuntu установлена в / dev / sda2, тогда вы можете попробовать следующие команды:
Код:
теперь вы root "/" на / dev / sda2, попробуйте установить ядро
Я должен был сделать небольшую догадку здесь, так как я никогда не должен был делать это раньше, но это должно быть об этом. Не знаю, если вы получаете предупреждение об ошибке fstab (например, не могу найти root).
Теперь вам нужно почистить некоторые вещи и размонтировать смонтированные разделы: Код:
И вы можете перезагрузиться, чтобы увидеть, сработало ли это.
URL для ветки: http://art.ubuntuforums.org/showthread.php?t=1688928
источник
/etc/hosts
и удалить/sbin/initctl
? Это там по причине./sbin/initctl
илиdbus-uuidgen
илиdpkg-divert
. Вы , возможно , потребуется заменить/etc/hosts
для подключения к Интернету, но обычно не, и если вы делаете, вы должны поставить исходное состояние . В установленной системе (а не на live CD, который загружается, а затем распаковывает файловую систему squashfs), вам не нужно запускатьсяupdate-initramfs
или дажеupdate-grub
после установки ядра.linux-image-2.6.32-26-generic
большинству людей не удастся установить ядро.После того, как я вчера удалил старые ядра из Trusty14.04 (FTR: я не удалил два самых последних!), Моя система больше не загружалась. GRUB показал
Понятия не имею почему.
Затем я последовал прекрасным инструкциям Элии Каган по установке
linux-image-generic
с live CD. Было установлено 150 МБ нового ядра, но, к сожалению, это не решило проблему.К счастью, я нашел эту страницу .
Boot-Repair
Инструмент получил это право, моя система работает снова.источник
Я просто хотел добавить свой опыт, который я прошел сегодня в повышении до Вилли. Я немного прибрался, и я обнаружил, что у меня только один тест. Google привел меня к пониманию, что я удалил ядра. У меня было одно ограничение - медленная сеть, поэтому загрузка полного ISO не была вариантом. Поэтому я использовал Ubuntu Minimal CD (только 40 МБ) и загрузился на нем. После определения аппаратной опции (которая помогла мне подключиться к беспроводной сети) я перешел к опции оболочки. Я следовал инструкциям @Lekensteyn, и мне это удалось. Тем не менее, кое-что: вы должны скопировать,
resolv.conf
прежде чем переходить в chroot, иначе ваш DNS будет испорчен, и, поскольку вошедший в систему пользователь не нуждается ни в каком sudo, ни root.Я знаю его старый, но я думал, что добавление этого ответа добавит ценность тем, кто столкнется с проблемой.
источник