個人博客,轉載請注明來源 :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了。