Задать вопрос
alekciy
@alekciy
Вёбных дел мастер

Как обновить ядро Ubuntu 12.04?

Возникла проблема с тем, что apt-get перестал работать (использовать -f пока не рискую). Причина в том, что у меня ядро linux-image-3.2.0-29-generic, а последнее это linux-image-3.2.0-57-generic, но apt его обновить не смог, поэтому я решил обновиться из deb пакета:

# dpkg -i linux-image-3.2.0-57-generic_3.2.0-57.87_amd64.deb 
(Reading database ... 94087 files and directories currently installed.)
Preparing to replace linux-image-3.2.0-57-generic 3.2.0-57.87 (using linux-image-3.2.0-57-generic_3.2.0-57.87_amd64.deb) ...
Done.
Unpacking replacement linux-image-3.2.0-57-generic ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-57-generic /boot/vmlinuz-3.2.0-57-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-57-generic /boot/vmlinuz-3.2.0-57-generic
Setting up linux-image-3.2.0-57-generic (3.2.0-57.87) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
failed to move /initrd.img:Invalid cross-device link at /var/lib/dpkg/info/linux-image-3.2.0-57-generic.postinst line 495.
dpkg: error processing linux-image-3.2.0-57-generic (--install):
 subprocess installed post-installation script returned error exit status 18
Errors were encountered while processing:
 linux-image-3.2.0-57-generic

Смотрю указанный скрипт:
# sed -n 495,500p /var/lib/dpkg/info/linux-image-3.2.0-57-generic.postinst
  rename("$kimage", "$kimage.$$") ||
    die "failed to move " . $image_dest . "$kimage:$!";
  warn "mv $kimage $kimage.$$" if $DEBUG;
  my $Old = $src_dir;
  my $cwd;


И понимаю, что он пытается переименовать старый образ, но не может этого сделать (через хардлинк? с перлом не знаком просто). Причина понятна:

# ls -l /initrd.img 
lrwxrwxrwx 1 root root 33 Sep 12  2012 /initrd.img -> /boot/initrd.img-3.2.0-29-generic


При этом корневая фс:

# mount -l -t xfs
/dev/md2 on / type xfs (rw,usrquota,prjquota)


, а boot:

# mount -l -t ext3
/dev/md1 on /boot type ext3 (rw)


Вот сейчас сижу и пытаюсь сообразить, как при минимум усилий обновиться, но при этом не уронить систему.
  • Вопрос задан
  • 4747 просмотров
Подписаться 2 Оценить Комментировать
Решение пользователя Алексей Сундуков К ответам на вопрос (5)
alekciy
@alekciy Автор вопроса
Вёбных дел мастер
Поправил в /etc/kernel-img.conf link_in_boot на yes и новое ядро установилось. Попробую позже с него загрузиться.
Ответ написан
Комментировать