从 Live USB 修复

从 Live USB 修复

我需要修复阻止我的系统启动的网络相关软件包 (Samba)。 (薄荷 17)。

我有一个具有相同操作系统的可启动 USB 记忆棒。如何通过 USB 操作系统修复硬盘上损坏的软件包?

答案1

下载您需要的软件包并dkpg--instdir选项一起使用:

dpkg --instdir=/path/to/mounted/HDD --install yourpackage.deb

如果不想覆盖一半已安装的软件包,您可能需要首先使用--purge(也需要适当的--instdir!!)。dpkg

答案2

使固定

最简单的方法是创建 chroot,然后在 chroot 内执行修复操作。您可以通过以下方式执行此操作:

  1. 验证网络在 chroot 之外是否正常工作。发出一个sudo ifconfig.
  2. 为需要修复的安装创建一个安装点。发出一个sudo mkdir -pv /mnt/mymint
  3. 现在安装您的安装。sudo mount -v -t ext4 /dev/sdXX 是根分区字母的问题。您可能需要-t根据您的文件系统更改该选项。
  4. 验证您的交换分区。sudo swapon /dev/sdYY 是交换分区的问题。
  5. 发出以下命令将 LiveDisk 与您的安装同步:
    mount -t proc proc /mnt/mymint/proc
    mount --rbind /sys /mnt/mymint/sys
    mount --rbind /dev /mnt/mymint/dev
  6. 输入您的更改根目录。问题:
    chroot /mnt/mymint /bin/bash
    source /etc/profile
    export PS1="(chroot) $PS1"
  7. 现在,我们不必像 Anthon 的答案中那样对任何目标使用任何额外选项。我们可以使用 apt-get(对所有损坏的包执行此操作):
    sudo apt-get remove --purge brokenpackagename && sudo apt-get-install packagename
  8. 重启。问题:
    exit
    umount -l /mnt/mymint/dev{/shm,/pts,}
    umount /mnt/mymint{/boot,/sys,/proc,}
    reboot

推理

我个人的观点是,使用更改根目录是最安全的方法,因为这样 LiveCD/USB 中的任何内容都不会干扰您的系统。我承认这种方法可能会吓跑一些新用户,但我可以向您保证这种方法有效,因为它是 Gentoo 发行版用于新安装的方法。有兴趣的话可以看看Gentoo 安装手册第 6 章

相关内容