![部署自定义内核后,删除最初安装的 Linux 内核](https://linux22.com/image/718483/%E9%83%A8%E7%BD%B2%E8%87%AA%E5%AE%9A%E4%B9%89%E5%86%85%E6%A0%B8%E5%90%8E%EF%BC%8C%E5%88%A0%E9%99%A4%E6%9C%80%E5%88%9D%E5%AE%89%E8%A3%85%E7%9A%84%20Linux%20%E5%86%85%E6%A0%B8.png)
我如何删除最后安装的内核?
目标:我正在尝试配置尽可能小的 Linux 服务器安装 (Debian 9) 机器,该机器将在 Nginx-PHP7-Database 链中运行应用程序服务器 (PHP7)。我的 PHP7 应用服务器将在机箱内的刀片服务器上运行。机器有 32 个核心 + 8GB 内存,但没有磁盘,操作系统从 2GB(仅 2GB!)U 盘启动。
我目前所做的:
- 最小安装
Debian 9
(占用 700MB),cmdline + sshd。 - 为该机器编译并测试了自定义内核 4.9.65,根据现有硬件和要求进行了配置。
- 将自定义内核部署到机器(作为
linux-image.*.deb
包) - 使用自定义内核成功从 U 盘启动
现在我想删除 Debian 9 初始安装时附带的原始臃肿内核 4.9.0.4,它现在正在污染我的小 U 盘。我不需要保留最后一个好的内核。
当我尝试删除原始的、现在未使用的内核时,它想要升级它(我猜是为了保持依赖关系的良好)
sudo apt-get purge linux-image-4.9.0-4-amd64
我明白了
The following packages will be REMOVED:
linux-image-4.9.0-4-amd64*
The following NEW packages will be installed:
linux-image-4.9.0-6-amd64
但是我要删除它,不升级。
问题:如何删除原始的 LAST 标准内核?有没有办法将软件包依赖项重新链接到我的新自定义内核并释放原始内核以供删除?
仅供参考:我不能直接购买大容量的 U 盘,因为这些 U 盘在 ext2 文件系统下运行速度非常慢。我拥有的小容量 U 盘是特殊的“企业”级。
我可以尝试在 iSCSI 驱动器上使用通用映像并覆盖 U 盘以获得个性。目前还不行,也许几个月后吧。
解答:我apt-get purge [...]
安装了下一个版本的内核,并且可以毫无问题地删除它。
Debian9 上干净、实用的最小服务器为 465MB,保留所有软件包。
答案1
当你使用包时,有趣的事情之一是包裹保管. 保留- 将包标记为保留状态,以防止其发生更改(更新、删除)。
设置保持:
sudo apt-mark hold <package-name>
解除保留:
sudo apt-mark unhold <package-name>
答案2
我让它apt-get purge [...]
安装下一个版本的内核,然后我就可以毫无问题地删除它。
Debian9 上干净、实用的最小服务器为 465MB,保留所有软件包。
答案3
升级到新内核并重启系统后,运行以下命令:
sudo apt-get autoremove -y
for kernelimage in $(dpkg -l | tail -n +6 | grep -E 'linux-image-[0-9]+' | grep -Fv $(uname -r) | awk '{print $2}'); do dpkg --purge $kernelimage; done