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时间设置有问题。

参考

bug修复方案:How to re-install glibc?

Arch网络配置:Configuring Network