Мой компьютер завис во время обновления с Ubuntu 12.04 до 14.04.
Это привело к панике ядра при перезагрузке.
/sbin/init: relocation error: /lib/i386-linux-gnu/librt.so.1: symbol__clock_nanosleep, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference.
[далее следует что-то вроде kernel panic]
Я загрузился с USB и завершил обновление с помощью chroot на диске и запуска: sudo apt-get dist-upgrade
(а также нескольких других команд, описанных в:Восстановление после выключения во время обновления дистрибутива Ubuntu)
По сути, обновление, похоже, завершено, но новый загрузочный образ не создан:update-initramfs is disabled since running on read-only media
Поскольку я не могу загрузить старые версии ядра, есть ли способ создать новый загрузочный образ (т. е. что-то, что будет находиться в /boot/) с USB-накопителя?
В качестве дальнейшего пояснения: при chroot-окружении uname -a
получается обновленное ядро, но в каталоге /boot диска нет соответствующего образа ядра.
Мне бы пригодился совет.
решение1
У меня естьаналогичная проблема с участиемсообщение update-initramfs is disabled since running on read-only media
об ошибке. Если вы посмотрите на скрипт, то увидите, что это просто скрипт-обертка для mkinitramfs
.
whereis update-initramfs
update-initramfs: /usr/sbin/update-initramfs …
gedit /usr/sbin/update-initramfs
Итак, вы можете позвонить mkinitramfs
напрямую:
mkinitramfs -o /boot/initrd.img-${kernel_ver}-generic ${kernel_ver}-generic
Более подробная информация о переустановке образов ядра и initrd с live media/chroot доступна по ссылке выше.
решение2
Вы упоминаете chroot
ing в новой установке Ubuntu. Запустить
sudo update-initramfs -u -k all
всеИЗНУТРИchroot-окружение
решение3
на live cd Linux Mint есть копия update-initramfs, которая используется для установки. Она переименована в "update-initramfs.distrib". Вы можете запустить ее, чтобы пересоздать свой initrd.