我正在开发一个 VirtualBox 托管的无头 Ubuntu,它看起来像这样:
foo@bar:~> uname -r
3.13.0-100-generic
foo@bar:~> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
我刚刚尝试通过执行以下命令删除一些旧的内核头:
sudo apt-get remove linux-image-3.13.0-4* linux-headers-3.13.0-4*
我以为这会删除一组非常有限的旧内核头文件。然而,屏幕上显示的文本包括:
Removing linux-generic (3.13.0.100.108) ...
Removing linux-headers-generic (3.13.0.100.108) ...
Removing linux-headers-3.13.0-100-generic (3.13.0-100.147) ...
Removing linux-headers-3.13.0-100 (3.13.0-100.147) ...
Removing linux-image-generic (3.13.0.100.108) ...
Removing linux-image-extra-3.13.0-100-generic (3.13.0-100.147) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-100-generic /boot/vmlinuz-3.13.0-100-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-100-generic /boot/vmlinuz-3.13.0-100-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-100-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-100-generic /boot/vmlinuz-3.13.0-100-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.13.0-100-generic /boot/vmlinuz-3.13.0-100-generic
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-100-generic
Found initrd image: /boot/initrd.img-3.13.0-100-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
Removing linux-image-3.13.0-100-generic (3.13.0-100.147) ...
WARN: Proceeding with removing running kernel image.
这表明我实际上已经破坏了当前的内核头文件!
话虽如此,当我跑步的时候
dpkg -l linux-image-* linux-headers-*
我仍然可以看到:
rc linux-image-3.13.0-100-generic 3.13.0-100.147 amd64 Linux kernel image for version 3.13.0 on 64 bit x86 SM
和
rc linux-image-extra-3.13.0-100-generic 3.13.0-100.147 amd64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
这真是很奇怪!
我的问题是:
第一的如果 dpkg 仍然显示内核头文件,我是否已经删除了它们?
第二这个问题的大多数解决方案都涉及使用实时 CD 来操作文件系统。当我处理 Virtualbox 托管的 VM 时,我不知道该怎么做 - 我该如何采用这种方法(或者有更好的方法吗?)。
编辑: 根据 user.dz 和“Organic Marble”的评论,我尝试使用原始安装 ISO 作为 LiveCD 启动。这似乎启动正常,但呈现给我的第二个屏幕如下所示:
这些似乎都与作为 LiveCD 启动无关。我不想做的(出于显而易见的原因)是覆盖现有的机器配置。
为了清楚起见,我应该说,从“VirtualBox Manager”中,我已经更改了有问题的虚拟机上的设置,以便它从我下载的 ISO 启动,以便最初创建虚拟机。
我将非常感激您的一些建议:
- 我走在正确的道路上吗?
- 如果是的话,那么哪些选项与我的情况相关?
编辑2
根据更多评论,我现在已经启动了基于桌面 ISO 的 Ubuntu 14 VM。在启动它之前,我将有问题的 VM 添加为硬盘,如下所示:
周围带有绿色气泡的磁盘是属于虚拟机的磁盘,由于我删除了内核,因此我无法再启动它。
完成后,我启动了虚拟机并四处寻找属于“问题虚拟机”的文件。我在目录中找到了它,/media/ubuntu/f17f8ab5-065f-4e05-835e-8cd0380b9e2b
因此按照此处的说明进行操作https://ubuntuforums.org/showthread.php?t=1034523&p=6518991#post6518991我试过 :
sudo mount /media/ubuntu/f17f8ab5-065f-4e05-835e-8cd0380b9e2b /mnt
但我收到一条错误消息:
mount: /media/ubuntu/f17f8ab5-065f-4e05-835e-8cd0380b9e2b is not a block device
那么,如果目录不是块设备(显然不是)我该怎么做呢?