如何在无法访问互联网的情况下重新安装网络管理器?

sek*_*har 37 network-manager

不幸的是,我network-manager-gnome使用sudo apt-get remove --purge network-manager. 我试图重新安装它,但没有互联网连接我不能这样做。解决这个问题的方法是什么?

小智 39

sudo dhclient eth0
Run Code Online (Sandbox Code Playgroud)

然后你将有互联网,你可以使用......

sudo apt-get install network-manager
Run Code Online (Sandbox Code Playgroud)

  • 注意:如果你有 WiFi,这会比较棘手,但如果你可以删除你的 WiFi 密码(使用第二台笔记本电脑),那么 https://askubuntu.com/a/294320/67747 上的说明很简单,这对我有用:`sudo iwconfig <device> essid <access_point_name> && sudo dhclient <device>` 在我的情况下,我不需要 `ifconfig <device> up` 或类似的东西。 (3认同)
  • 我真的很爱你 (3认同)
  • “找不到设备 eth0”:( (2认同)
  • 如果您运行`sudo iwconfig`,您将看到设备。就我而言,我的有线连接名称没有“eth0”。 (2认同)

小智 20

如果您最近升级了您的网络管理器,您可以使用sudo apt-get install --reinstall network-manager,但这仅当软件包仍在您的 Apt 缓存中时才有效 ( /var/cache/apt/archives/)。我猜你还没有,所以你必须做很长的事情,但我想我会扔掉以防万一。

  1. 在“尝试而不安装”中启动 Ubuntu live CD。确保您已连接到互联网。

  2. 在终端类型中:

    sudo mount --bind /dev /<chrootlocation>/dev
    sudo mount --bind /proc /<chrootlocation>/proc
    sudo mount --bind /sys /<chrootlocation>/sys
    sudo cp /etc/resolv.conf /<chrootlocation>/etc/resolv.conf
    sudo chroot /<chrootlocation>
    
    Run Code Online (Sandbox Code Playgroud)

    您将需要替换<chrootlocation>为 Ubuntu 安装的适当位置,通常是安装它的分区的标签。还必须安装该分区,以便您可以访问它。

  3. 编辑您的/etc/resolve.conf并添加至少一个nameserver

    nameserver 8.8.8.8 # Google Public DNS
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在终端类型中:

    sudo apt-get update
    sudo apt-get install network-manager
    
    Run Code Online (Sandbox Code Playgroud)

    如果不这样做,您可能会遇到无法连接的错误。

  5. 在终端类型exit. 这将使您退出 chroot 环境。

  6. 在终端类型sudo reboot中重新启动计算机。


gut*_*onk 9

此答案假设您在丢失网络管理器或任何其他软件包之前可以访问互联网。

现场 CD/DVD/USB

创建一个可启动的 Ubuntu CD/DVD 或 USB 记忆棒,从它启动并选择“Try Ubuntu without installation”。进入 Ubuntu 桌面后,打开一个终端。

根分区

你需要在你的 Ubuntu 安装中找到你的根分区。在标准的 Ubuntu 安装中,根分区是“/dev/sda1”,但对您来说可能会有所不同。要找出根分区是什么,请运行以下命令:

sudo fdisk -l
Run Code Online (Sandbox Code Playgroud)

这将显示一个硬盘和分区列表,您必须从中找出哪个是根分区。在第 3 步的下方,ROOT-PARTITION 是您刚刚找到的根分区,例如在我的情况下为 /dev/sda2。

Chroot 进入你的根分区

要确保某个分区是根分区,您可以挂载它。因此,让我们将根分区与 /sys、/proc、/run 和 /dev 分区一起挂载并输入 chroot:

sudo mount ROOT-PARTITION /mnt
for i in /sys /proc /run /dev /dev/pts; do sudo mount --bind "$i" "/mnt$i"; done
sudo cp /etc/resolv.conf /mnt/etc/
sudo chroot /mnt
Run Code Online (Sandbox Code Playgroud)

如果您在复制时收到有关 resolv.conf 相同的错误,请忽略它。复制 resolv.conf 使网络正常工作,至少对我而言(使用 DHCP)。

更新/安装包

现在您可以更新系统 - 在同一个终端中,输入:

apt-get update
apt-get upgrade
apt-get install network-manager network-manager-gnome
Run Code Online (Sandbox Code Playgroud)

如果您在最后一步遇到问题,请确保 /etc/apt/sources.list 中的来源正确 - 在同一终端中,键入:

sudo nano /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)

由于您已经 chroot 进入您的 Ubuntu 安装,您所做的更改会影响它而不是 Live CD,只要所有更改都是在同一个终端会话中进行的。

完成后重新启动并取出 Live CD。如果此答案解决了您的问题,请将其标记为正确。谢谢!


May*_*hux 7

sudo apt-get remove --purge network-manager
Run Code Online (Sandbox Code Playgroud)

上述命令将清除与服务相关的network-manager所有软件包。您可以使用 Ubuntu Live 磁盘将所有软件包下载为 .deb 文件,然后将其安装到您的原始操作系统中。

  • 首先从 Ubuntu Live 磁盘启动。

  • 一旦你去那里打开一个终端并运行以下命令,

    sudo apt-get download network-manager*
    
    Run Code Online (Sandbox Code Playgroud)
  • 这会将所有网络管理器包下载到主目录。

  • 现在将所有.deb软件包复制到该笔式驱动器中的文件夹或硬盘中的其他分区,然后重新启动到您的系统。

  • 一旦你去那里打开终端并执行以下操作:

    cd /path/to/the/directory/where/.deb/files/are/located
    sudo dpkg -i *.deb
    
    Run Code Online (Sandbox Code Playgroud)
  • 上面的命令将安装所有.deb文件。

  • 现在通过运行重新启动您的网络管理器 sudo service network-manager restart

现在您的包network-manager-gnome再次运行。

  • 由于删除了“network-manager-gnome”包,OP 没有互联网,但这并不意味着他没有互联网。另请注意,使用 Live CD 将不依赖于主机包,因此他将可以访问 Internet (3认同)

小智 6

刚刚解决了同样的问题,请按照以下简单步骤操作:

  1. 从http://security.ubuntu.com/ubuntu/pool/main/n/network-manager/下载具有互联网连接的设备中的网络管理器
    我在ubuntu16中使用了network-manager_1.2.2-0ubuntu0.16.04.4_amd64.deb .04

  2. 然后使用USB或手机等传输此文件。

  3. $ sudo dpkg -i network-manager_1.2.2-0ubuntu0.16.04.4_amd64.deb

顶部可能会缺少 wifi 快捷方式,只需使用此命令

sudo apt-get install ubuntu-desktop然后正常重启你的机器。

完毕 :)


小智 5

请关注官方 Ubuntu 社区 LiveCdRecovery 更新失败部分:( https://help.ubuntu.com/community/LiveCdRecovery ):

  1. 启动 Ubuntu Live CD。
  2. 按 Ctrl-Alt-F1
  3. 跑步:

    sudo mount /dev/sda1 /mnt
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo chroot /mnt
    
    Run Code Online (Sandbox Code Playgroud)
  4. 添加 OpenDNS 名称服务器以/etc/resolv.conf在 chroot 后访问网络:

    nameserver 208.67.222.222
    nameserver 208.67.220.220
    
    Run Code Online (Sandbox Code Playgroud)
  5. 跑步:

    apt-get install network-manager
    
    Run Code Online (Sandbox Code Playgroud)

这有助于解决我的 Ubunty 14.04LTS 上的相同问题