| 
 个人博客,转载请注明来源  :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/  
然后,强制进行系统升级  :  
 
  这样就可一系统升级了,但是不要着急重启,不然根本无法进入系统  
会进入一个 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了。  
 
 
  |