个人博客,转载请注明来源  :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了。



 posted on 2012-03-24 12:04  huaixiaoz  阅读(4584)  评论(0编辑  收藏  举报