Arch升级失败后修复glibc记录
August 10, 2012
Tag: [ Arch Linux, 问题解决 ]
...起因
$ pacman -Syu
时提示错误,
因为Arch前段时间将/lib
目录链到了/usr/lib
,
见公告The /lib directory becomes a symlink。
当时没有看到这篇公告,而在网上搜到某贴说使用--force
参数,
结果执行完后系统挂掉,因glibc
不存在,所有命令行不可使用。
解决方法
- 从光盘启动Arch。
$ fdisk -l
查看磁盘状态, 我的系统分区为/dev/sda6
。- 创建目录:
$ mkdir /root/tmp_disk
。 - mount分区,我机子上是:
$ mount /dev/sda6 /root/tmp_disk
。 - 下载相应的
glibc
安装包(网络或U盘,配置网络参考下面相关部分), 我的为x86_64 v2.16.0-2, 所以wget http://www.archlinux.org/packages/core/x86_64/glibc/download/
- 安装
pacman -U glibc-2.16.0-2-x86_64.pkg.tar.xz -r /root/tmp_disk
pacman -Su
注意
其它
配置网络
用启动光盘进入系统后,需要配置网络来下载最新glibc。
配置/etc/rc.conf
interface=eth0
address=192.168.0.2
netmask=255.255.255.0
gateway=192.168.22.1
配置/etc/resolv.conf
nameserver 8.8.8.8
最后重启网络服务$ /etc/rc.d/network restart
目录
/lib
、/lib64
皆应软链到/usr/lib
目录。
在修复过程中查看/lib
发现里面只有一个modules
目录,
将其移至/usr/lib
里后建立软链。
系统正常运行,但之后执行pacman
后无法升级。
移除/usr/lib/modules
目录后$ pacman -Su
解决问题。
时间错误的解决
遇到报错
******************* FILESYSTEM CHECK FAILED *************
* Please repair manually and reboot. Note that the root *
* filesystem is currently mounted read-only. To remount *
* it read-write type: mount -n -o remount,rw / *
* When you exit the mantenance shel the system will *
* reboot automatically. *
*********************************************************
因为BIOS时间设置有问题。