Я пытался удалить старые ядра, но, должно быть, я удалил все ядра на своем ноутбуке Ubuntu 11.04. Есть ли какой-нибудь способ исправить это с помощью загрузки по USB или установки жесткого диска в другой системе?
Загрузитесь с live CD (или live USB), смонтируйте некоторые системы, запустите chroot и установите ядро. После успешной установки ядра размонтируйте файловые системы.
- Открытый Терминал
- Смонтируйте раздел Ubuntu:
sudo mount /dev/sdXY /mnt -
Смонтируйте несколько специальных разделов:
sudo mount --bind /dev /mnt/devsudo mount --bind /proc /mnt/procsudo mount --bind /sys /mnt/sys -
(необязательно) Когда вы подключены к сети, используйте DNS-серверы из вашей рабочей среды (в противном случае имена хостов могут быть не разрешены).:
cp /etc/resolv.conf /mnt/etc/resolv.conf - Chroot в
/mnt:sudo chroot /mnt - Установите ядро Linux:
apt-get install linux-image-generic(не требуется sudo, так как вы являетесь root после chroot) -
После успешной установки ядра извлеките chroot и размонтируйте некоторые файловые системы:
exitsudo umount /mnt/syssudo umount /mnt/procsudo umount /mnt/devsudo umount /mnt - Перезагрузите компьютер и извлеките компакт-диск или USB:
sudo reboot
Этот расширенная процедура объясняет большинство осложнений, которые могут возникнуть, включая проблемы с подключением к Интернету в chroot, не зная, какой пакет ядра установить (до Ubuntu 12.10 он не будет всегда быть linux-image-generic), не зная с самого начала, какой раздел или даже какой физический диск содержит / файловой системы и имеющий отдельный /boot раздел.
Я не писал это со ссылкой ни на одну из других приведенных здесь процедур, хотя вы заметите некоторые сходства. Я действительно основывал его, в общих чертах, на процедура здесь (хотя эти инструкции предназначены для чего-то совершенно другого, я их тщательно адаптировал, и копируются только некоторые команды, а не прозаические).
Вы удалили все пакеты ядра, и Ubuntu не может загрузиться без установленного ядра. Таким образом, решение заключается в загрузке с live CD / DVD / USB, chroot в установленную систему и установите в нее ядро.
Загрузитесь с компакт-диска Ubuntu live CD/DVD или флэш-накопителя live 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.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! -
Изучите полученные выходные данные, чтобы определить имя устройства раздела, содержащего
/файловая система системы 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раздел, запомните имя устройства и для этого тоже.) -
Установите на
/файловой системы для/mnt, и установить его/devфайловая система:sudo mount /dev/sda1 /mntsudo монтировать --привязать /dev /mnt/dev -
Проверьте, имеет ли поврежденная система Ubuntu, которую вы ремонтируете, отдельный
/bootперегородка, которая должна монтироваться отдельно. (Если вы являетесь конечно это не так, вы можете пропустить это.)Чтобы проверить, запустите:
ls /mnt/bootЕсли есть вывод (например
grub memtest86+.bin memtest86+_multiboot.bin, но не обязательно именно это), то сломанная система/bootнаходится в том же разделе, что и его/и вам не нужно ничего монтировать, чтобы получить к нему доступ.Но если выхода нет, то вам придется смонтировать
/bootфайловая система:sudo mount ЗАГРУЗОЧНЫЙ РАЗДЕЛ /mnt/загрузкаЗаменять
BOOT-PARTITIONс именем устройства в/bootраздел (см. шаг 6 выше). -
chrootв поврежденную систему смонтируйте оставшиеся важные виртуальные файловые системы и установите некоторые важные переменные среды:sudo chroot /mntmount -t proc none /procmount -t sysfs none /sysmount -t devpts none /dev/ptsexport HOME=/rootexport LC_ALL=C -
Определите, работает ли доступ в Интернет из
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.
-
-
Настройте сеть в
chroot. Пропустите этот шаг, если у вас нетunknown hostошибка на шаге 10 выше.Чтобы настроить сеть, создайте резервную копию поврежденной системы
hostsфайл и скопируйте поверх системного компакт-диска live CDhostsи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. Так и должно быть. -
Выясните, какой пакет ядра должен быть установлен. Обычно это будет
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.
- Если вы используете серверную систему Ubuntu, используйте
-
Это тот момент, которого вы так долго ждали! Установите ядро в поврежденную систему.
(Как и раньше, за исключением случаев, когда явно указано иное, эти команды выполняются в
chroot, а не в отдельном окне/вкладке терминала.)apt-get updateapt-get -y install linux-образ-универсальныйЗаменять
linux-image-genericс любым другим пакетом ядра, который вы решили установить на шаге 12 выше, если он отличается. -
Если вам пришлось выполнить шаг 11 для настройки сети в
chroot, восстановить старуюhostsфайл. Если вы пропустили шаг 11, пропустите и этот шаг.Чтобы восстановить его, выполните эту команду:
cp /etc/hosts.old /etc/hosts -
Размонтировать файловые системы,
exitвыходя изchroot:umount /proc || umount -lf /procumount /sys /dev/ptsexitsudo umount /mnt/dev /mnt Выключите систему 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 инструмент все сделал правильно, моя система снова работает.