Ubuntu 更新系统导致系统损坏, 软件包损坏

更新 Ubuntu 系统

要将 Ubuntu 14.04.4 更新到 Ubuntu 16.04.1, 可以使用 do-release-upgrade 按照以下步骤操作

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
do-release-upgrade

软件包配置损坏

当出现 dpkg: warning: files list file for package 的错误时, 可以通过以下步骤修复

进入恢复模式

  1. 启动系统并进入恢复模式

  2. 检查并修复安装包错误

    sudo dpkg --configure -a
    
  3. 启动网络

    sudo dhclient eth0
    
  4. 进行升级或修复


处理大量 dpkg: warning 警告

如果出现大量的警告, 可以按照以下步骤处理

# 将 info 文件夹更名
mv /var/lib/dpkg/info /var/lib/dpkg/info.bak

# 再新建一个新的 info 文件夹
sudo mkdir /var/lib/dpkg/info

# 更新并修复安装
sudo apt-get update
sudo apt-get -f install

# 执行完上一步操作后会在新的 info 文件夹下生成一些文件, 现将这些文件全部移到 info.bak 文件夹下
sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info.bak

# 把自己新建的 info 文件夹删掉
sudo rm -rf /var/lib/dpkg/info

# 把以前的 info 文件夹重新改回名字
sudo mv /var/lib/dpkg/info.bak /var/lib/dpkg/info

虚拟机网络问题导致写入文件异常

当 Ubuntu 内核损坏或不小心将内核都删除时, 启动时将无法进入系统, 此时就需要进行系统修复。首先要准备好 Ubuntu 的安装光盘, 如果在虚机里可以使用系统 ISO 文件挂载。

如果 Ubuntu 内核损坏或被删除, 可以通过以下步骤进行系统修复:

  1. 准备: 准备好 Ubuntu 的安装光盘或 ISO 文件, 并挂载。

  2. 启动: 开机选择从光盘启动系统。

  3. 进入系统: 选择 Try Ubuntu, 进入光盘的 Ubuntu 系统。此时系统会将本机上的 Ubuntu 文件系统识别出来, 即使是 lvm 的也一样能识别出来。

  4. 识别文件系统: 打开终端, 使用 mount 命令挂载本机系统的目录。如果 /boot 是独立分区就会显示出两个子目录, 可以分别进入这两个目录确定哪个是 / 根分区哪个是 /boot 引导分区。

  5. 通过 mount --bind 命令组装本机文件系统, 如果根分区目录为 root_id, boot 分区目录为 boot_id 为例

    cd /media/ubuntu/root_id
    sudo mount --bind /media/ubuntu/boot_id boot # 挂载 /boot 分区
    sudo mount --bind /proc proc # 挂载 /proc 目录
    sudo mount --bind /dev dev # 挂载 /dev 目录
    sudo mount --bind /sys sys # 挂载 /sys 目录
    sudo cp /etc/resolv.conf etc/resolv.conf # 建立域名解析文件
    
  6. chroot 到当前目录

    chroot .
    
  7. 安装内核或者安装指定内核

    apt-get install linux-image-generic
    
  8. 如果一切顺利, 核查一下 /boot/grub/grub.cfg 是否已经有内核菜单

  9. 关机, 拿出光盘, 重启即可。


原文

Ubuntu 14.04.4 使用 do-release-upgrade 无法检测到 Ubuntu 16.04.1 的更新
dpkg info修复及dpkg: warning: files list file for package
ubuntu内核损坏或误删除时的系统修复

最后更新于 2018-10-20
使用 Hugo 构建
主题 StackJimmy 设计