意外删除所有内核后如何恢复虚拟系统?

意外删除所有内核后如何恢复虚拟系统?

我已经看到了实际安装的答案,但不确定这是否适用于虚拟安装。

像个傻瓜一样,我没有备份工作时使用的虚拟机上的数据。当我尝试升级时,空间不足,像个更大的傻瓜一样,在尝试释放空间时,我删除了所有内核,而不是只删除旧内核。现在我启动到 Memtest86,但无法继续,因为 grub(?) 看不到其他内核。

该虚拟机是运行在 Oracle VM VirtualBox 中的 Ubuntu 14.04。有没有办法从另一个 Ubuntu VM 挂载映像并重新安装内核?该目录中有一个 Ubuntu.vbox 文件和一个 Ubuntu.vdi 文件以及一个似乎只是 XML 数据的 Ubuntu.vbox.prev 文件


更新:在“尝试 Ubuntu”模式下从桌面安装,切换到/media/ubuntu/<diskname>并必须手动覆盖才能写入新的/etc/resolv.conf。当我这样做时,apt-get install linux-image-generic它似乎存在写入问题。我安装不正确吗?

我只需选择“文件”中列出的 HD 即可安装,然后

sudo chroot /media/ubuntu/<diskname>

我确认现有用户已在 /home/ 中列出,因此我很确定我在正确的驱动器上,但是当我尝试按照其他操作方法显示的方式安装它时,我得到:

sudo mount /media/ubuntu/<long HD name>
mount: /media/ubuntu/<long HD name> is not a block device

答案1

您可以非常轻松地解决此问题,因此请逐一执行以下步骤:

  1. 将 Live CD ISO 映像插入 Virtualbox 磁盘驱动器。
  2. 将 Virtualbox 驱动器的启动顺序更改为从此 ISO 映像启动并启动到该映像。
  3. 选择“尝试 Ubuntu”并按Ctrl+ Alt+打开终端T
  4. 运行lsblk以找到您的 VM 主驱动器的正确设备名称。
  5. 将驱动器安装到您想要救援的驱动器的正确驱动器标签的/mnt位置:XX

    mount /dev/sdXX /mnt
    
  6. 现在挂载并绑定以下内容以确保正确安装:

    sudo mount -o bind /dev /mnt/dev
    sudo mount -o bind /dev/pts /mnt/dev/pts
    sudo mount -t sysfs /sys /mnt/sys
    sudo mount -t proc /proc /mnt/proc
    sudo cp /proc/mounts /mnt/etc/mtab
    sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
    
  7. 使用 chroot 进入挂载点sudo chroot /mnt

  8. 运行数据包列表的更新:

    apt-get update
    # you might want to do an upgrade as well if you like
    apt-get upgrade
    
  9. 现在你可以使用以下命令再次安装内核:

    apt-get install --reinstall linux-image-generic
    
  10. 运行update-grub以确保 grub 再次指向已安装的工作内核。

  11. 现在,您可以按Ctrl+退出 chroot 环境D,然后关闭 VM 并在普通驱动器上重新启动它:

    sudo umount /mnt/dev/pts
    sudo umount /mnt/dev
    sudo umount /mnt/sys
    sudo umount /mnt/proc
    sudo umount /mnt
    

这应该已经完成​​了,你的虚拟机现在再次有一个内核可以启动了。

相关内容