个人博客,转载请注明来源 :http://www.cnblogs.com/crazymod/archive/2012/03/24/2415367.html
关于近期archlinux的大升级问题,由于官方的最新安装镜像还是2011 年8月分的,很多的软件包
都相对较旧了,其实这是跟archlinux的版本控制有关系,只要是因为archlinux采用了滚筒式的升级方式,
所以版本的跟新不是那么频繁,但是软件包的跟新确实很快的,对于想升级使用较新软件的用户来说无疑是
一种很好的选择,比如linux的内核,我跟新后就是3.2.12的内核,但是对于其他的用户追求稳定,不想做大的变动的话,
那就最好制作基本的软件更新,不做大的系统升级。
由于官方wiki和通告特别多,搜索起来不是很方便快捷,但是arch的wiki做的很全面,
基本上多部分问题都可以在官方找到答案。
在升级的时候就遇到问题了,
pacman -Syu //系统升级
遇到 因为/etc/profile.d/locale.sh 和 /etc/mtab等错误而不能更新
解决办法: pacman -S filesystem -f //
详细见 : http://www.archlinux.org/news/filesystem-upgrade-manual-intervention-required/
然后,强制进行系统升级 :
pacman -Syuf
这样就可一系统升级了,但是不要着急重启,不然根本无法进入系统
会进入一个 rootfs环境。
解决办法:
pacman -S udev
pacman -S mkinitcpio
mkinincpio -p linux
然后就会重新启动,用上了最新的软件包及内核。
如果已更新但是未做上面的变动的话,那就使用cd光盘启动,然后修复系统。
这是官方的升级错误的解决办法,是恢复到之前的内核,
https://wiki.archlinux.org/index.php/Kernel_Panics_(%e7%ae%80%e4%bd%93%e4%b8%ad%e6%96%87)
但是显然这不是我们想要的,那就是插入光盘,引导启动,
进入livecd的环境,
#mount /dev/sdXy /mnt //(具体参见自己的硬盘分区)
#mount /dev/sdxx /mnt/boot // 如果你使用了单独的boot分区的话
#mount -t proc none /mnt/proc
#mount -t sysfs none /mnt/sys
#mount --bind /dev /mnt/dev
chroot /mnt /bin/bash
然后可以建立udev和mkinitcpio了。
pacman -S udev pacman -S mkinitcpio mkinincpio -p linux
以上就是archlinux升级失败的解决办法,基本上开机就可以看到久违的archlinux了。