Возникла проблема с тем, что 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)
Вот сейчас сижу и пытаюсь сообразить, как при минимум усилий обновиться, но при этом не уронить систему.