误删除了“ / usr / share”文件夹


16

系统无法启动。通过rm - R不小心使用了它。如何恢复系统?


确定要删除/usr/share文件夹..试试看..通过实时会话登录..将/usr/share文件夹从实时会话复制并粘贴到您的根分区中/usr/share
PRATAP

1
@PRATAP建议的内容可能会得到使您可以重新登录,但是许多用户程序在那里存储了应用程序数据,因此最多只能修复“实时”(安装媒体)系统使用的程序。然后,您将不得不使用install --reinstall其他程序。或者您可以使用“其他方式”重新安装,没有格式,它会记录您已安装的应用程序,先擦除系统目录然后安装,然后重新安装其他程序(如果在Ubuntu repos中);但是无论如何,该选项都可能是一个后备选项,因为您可能会学到更多尝试自己先解决它的方法。总会恢复您的备份。
guiverc

->仅在/ usr / share中使用rm -R不会删除任何内容。内容归root拥有,因此普通用户无法删除它
Rinzwind

@Rinzwind如果是这样,为什么系统未加载?我如何获得根源修复它?
Mouvre

你也许做了sudo rm -R吗?n0rbert发布​​的答案对我来说很好。那是要走的路
Rinzwind

Answers:


48

您需要重新安装所有文件的应用程序/usr/share

  1. 从系统恢复模式root提示符启动系统。

  2. 用挂载rootfs到读写模式mount -o rw,remount /

  3. 调高以太网接口并从DHCP服务器获取IP地址:(dhclient enp0s3ip a或中检查正确的接口名称ifconfig -a)。

  4. 指定DNS服务器

    rm /etc/resolv.conf
    echo "nameserver 192.168.1.1" > /etc/resolv.conf
    

    (更改192.168.1.1为您的网关/路由器)

  5. 您需要修复该dpkg软件包,因为它会丢失/usr/share/dpkg/cputable文件(否则,您将"E: error reading the cpu table"在任何apt / apt-get命令中遇到)

    wget http://mirrors.kernel.org/ubuntu/pool/main/d/dpkg/dpkg_1.19.0.5ubuntu2.1_amd64.deb
    dpkg -i dpkg_1.19.0.5ubuntu2.1_amd64.deb
    

    或从缓存安装:

    dpkg -i /var/cache/apt/archives/dpkg_*.deb
    
  6. 更新软件包缓存:

    apt-get update
    
  7. 重新安装必要的组件

    apt-get install --reinstall debconf linux-base
    mkdir /usr/share/python
    apt-get install --reinstall python2.7-minimal python3-minimal
    
  8. 然后在下面使用单线:

    apt-get install --reinstall $(dpkg -S /usr/share/ | sed 's/,//g' | sed 's/: \/usr\/share//g')
    

    以上:

    • dpkg -S /usr/share/ 显示以逗号分隔的软件包列表
    • sed 's/,//g' -删除逗号
    • sed 's/: \/usr\/share//g'- : /usr/share最终移除

    这部分可能会失败,并显示有关某些软件包的消息。例如,在我的VM上,我遇到了问题bsdmainutils,因此我用以下方法重新安装了它们:

    dpkg -i /var/cache/apt/archives/bsdmainutils_*.deb
    

    然后在上面重跑一线。

  9. 修复损坏的包裹

    dpkg --configure -a
    apt-get install -f
    
  10. 最后修复/etc/resolv.conf链接

    rm /etc/resolv.conf
    ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
    
  11. 重启。

注意:运行sudo apt-get check或时,生成的固定系统不会出现任何问题sudo debsums --all --changed


此命令应在实时会话中使用吗?
PRATAP

恢复模式下的@PRATAP就足够了。
N0rbert

好的,那就好..但是即使删除后/usr/sharegrub 仍能正常工作并显示grub菜单?我认为我必须删除它,并在我的实用PC中看到。.不错的答案..谢谢..
PRATAP

1
我刚刚在VM上进行了测试。这几乎是可行的解决方案。
N0rbert

1
@ N0rbert谢谢您的帮助,它确实有效!
Mouvre

2

简短答案:您不能,必须按照先前答案的建议重新安装应用程序。

但是,在此之前,我将驱动器安装在另一台计算机上,并测试可用于ext3 / ext4的取消删除实用程序。在Google中进行快速搜索可以找到以下内容:

extundelete:http://extundelete.sourceforge.net/

easyus:https://www.easeus.com/resource/drive/ext3.htm

测试磁盘:https : //www.cgsecurity.org/wiki/TestDisk

指导方法:http//translatedby.com/you/howto-recover-deleted-files-on-an-ext3-file-system/original/

等等


我建议testdelete,因为我已经经历过一次:P
αғsнιη
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.