![意外删除所有内核后如何恢复虚拟系统?](https://linux22.com/image/1203788/%E6%84%8F%E5%A4%96%E5%88%A0%E9%99%A4%E6%89%80%E6%9C%89%E5%86%85%E6%A0%B8%E5%90%8E%E5%A6%82%E4%BD%95%E6%81%A2%E5%A4%8D%E8%99%9A%E6%8B%9F%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
我已经看到了实际安装的答案,但不确定这是否适用于虚拟安装。
像个傻瓜一样,我没有备份工作时使用的虚拟机上的数据。当我尝试升级时,空间不足,像个更大的傻瓜一样,在尝试释放空间时,我删除了所有内核,而不是只删除旧内核。现在我启动到 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
您可以非常轻松地解决此问题,因此请逐一执行以下步骤:
- 将 Live CD ISO 映像插入 Virtualbox 磁盘驱动器。
- 将 Virtualbox 驱动器的启动顺序更改为从此 ISO 映像启动并启动到该映像。
- 选择“尝试 Ubuntu”并按Ctrl+ Alt+打开终端T。
- 运行
lsblk
以找到您的 VM 主驱动器的正确设备名称。 将驱动器安装到您想要救援的驱动器的正确驱动器标签的
/mnt
位置:XX
mount /dev/sdXX /mnt
现在挂载并绑定以下内容以确保正确安装:
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
使用 chroot 进入挂载点
sudo chroot /mnt
。运行数据包列表的更新:
apt-get update # you might want to do an upgrade as well if you like apt-get upgrade
现在你可以使用以下命令再次安装内核:
apt-get install --reinstall linux-image-generic
运行
update-grub
以确保 grub 再次指向已安装的工作内核。现在,您可以按Ctrl+退出 chroot 环境D,然后关闭 VM 并在普通驱动器上重新启动它:
sudo umount /mnt/dev/pts sudo umount /mnt/dev sudo umount /mnt/sys sudo umount /mnt/proc sudo umount /mnt
这应该已经完成了,你的虚拟机现在再次有一个内核可以启动了。