pacman中-f选项导致的文件丢失

由于错误的消息来源,我在arch下都是使用sudo pacman -Syuf升级,

于是今天悲剧发生了。

 

 

像往常一样,我运行了sudo pacman -Syuf(导致我udev损坏,这点是后来regenerate kernel的时候才发现的)

reboot后,就被drop到了recovery shell里

显示的是

Unable to find root device /dev/sda7

you are being dropped to the recovery shell

(rootfs)#

 

在arch的wiki和论坛上查询后,有了下面的解决方法。

使用引导光盘/USB,把引导系统的root换成自己的root,

步骤如下

fdisk -l          (查看自己的arch运行在哪个分区,这里以/dev/sda7为例)

mkdir /mnt/arch

mount /dev/sda7 /mnt/arch

cd /mnt/arch

mount -t proc proc proc/

mount -t sysfs sys sys/

mount -o bind /dev dev/

 

如果你有在别的分区上安装别的文件系统,也一起挂载到这里来

例如有个/boot在/dev/sda8 上

mount /dev/sda8 boot/


 

接下来

chroot  . /bin/bash 
如果这里出现错误,说明你光盘拿错了。



现在已经进入了自己的root中,要做的就是恢复系统

pacman -Qk

检查哪些软件包出了问题

pacman -U /var/cache/pacman/pkg/软件包名字-olderpkgver.pkg.tar.gz


把软件包降级,就能恢复了。

 

如果你不幸像我一样,刚刚犯了洁癖,pacman -Scc清空了旧版缓存

这里还有另一种方法。

按照上面的步骤一直到pacman -Qk

配置网络,重新安装那些软件包

mkinitcpio -p linux 

重构内核 (我是在这里发现udev损坏的)

 

 

最后,reboot即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值