N0r*_*ert 49
您需要重新安装所有包含文件的应用程序/usr/share。
使用root 提示符从恢复模式启动系统。
将 rootfs 重新挂载到读写模式mount -o rw,remount /。
启动以太网接口并从 DHCP 服务器获取 IP 地址:(dhclient enp0s3在ip a或 中检查正确的接口名称ifconfig -a)。
通过以下方式指定 DNS 服务器
rm /etc/resolv.conf
echo "nameserver 192.168.1.1" > /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)
(更改192.168.1.1为您的网关/路由器)
您需要修复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
Run Code Online (Sandbox Code Playgroud)
或从缓存安装它:
dpkg -i /var/cache/apt/archives/dpkg_*.deb
Run Code Online (Sandbox Code Playgroud)更新包缓存:
apt-get update
Run Code Online (Sandbox Code Playgroud)重新安装基本组件
apt-get install --reinstall debconf linux-base
mkdir /usr/share/python
apt-get install --reinstall python2.7-minimal python3-minimal
Run Code Online (Sandbox Code Playgroud)然后使用下面的单线:
apt-get install --reinstall $(dpkg -S /usr/share/ | sed 's/,//g' | sed 's/: \/usr\/share//g')
Run Code Online (Sandbox Code Playgroud)
以上:
dpkg -S /usr/share/ 显示逗号分隔的包列表sed 's/,//g' - 删除逗号sed 's/: \/usr\/share//g'-删除: /usr/share到底这部分可能会失败并显示有关某些软件包的消息。例如,在我的 VM 上,我遇到了问题bsdmainutils,所以我重新安装了它们:
dpkg -i /var/cache/apt/archives/bsdmainutils_*.deb
Run Code Online (Sandbox Code Playgroud)
然后在上面重新运行单线。
修复损坏的包
dpkg --configure -a
apt-get install -f
Run Code Online (Sandbox Code Playgroud)最后修复/etc/resolv.conf链接
rm /etc/resolv.conf
ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Run Code Online (Sandbox Code Playgroud)重启。
注意:生成的固定系统在运行sudo apt-get check或sudo debsums --all --changed.
| 归档时间: |
|
| 查看次数: |
6256 次 |
| 最近记录: |