如何从 `dpkg --list 'linux-image*'` 中删除已删除的内核

如何从 `dpkg --list 'linux-image*'` 中删除已删除的内核

我跟着https://www.jamescoyle.net/how-to/1974-how-to-fix-a-full-boot-partition-on-linux删除旧内核。

我检查了uname -a我的当前内核版本

Linux DarkPhoenix2004 5.4.0-88-generic #99-Ubuntu SMP 星期四 9 月 23 日 17:29:00 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

然后跑了

$ dpkg --list 'linux-image*'
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name                                  Version      Architektur  Beschreibung
+++-=====================================-============-============-=================================
un  linux-image                           <keine>      <keine>      (keine Beschreibung vorhanden)
rc  linux-image-5.4.0-42-generic          5.4.0-42.46  amd64        Signed kernel image generic
rc  linux-image-5.4.0-58-generic          5.4.0-58.64  amd64        Signed kernel image generic
ii  linux-image-5.4.0-59-generic          5.4.0-59.65  amd64        Signed kernel image generic
rc  linux-image-5.4.0-60-generic          5.4.0-60.67  amd64        Signed kernel image generic
rc  linux-image-5.4.0-62-generic          5.4.0-62.70  amd64        Signed kernel image generic
rc  linux-image-5.4.0-64-generic          5.4.0-64.72  amd64        Signed kernel image generic
rc  linux-image-5.4.0-65-generic          5.4.0-65.73  amd64        Signed kernel image generic
rc  linux-image-5.4.0-66-generic          5.4.0-66.74  amd64        Signed kernel image generic
rc  linux-image-5.4.0-67-generic          5.4.0-67.75  amd64        Signed kernel image generic
rc  linux-image-5.4.0-70-generic          5.4.0-70.78  amd64        Signed kernel image generic
rc  linux-image-5.4.0-71-generic          5.4.0-71.79  amd64        Signed kernel image generic
rc  linux-image-5.4.0-72-generic          5.4.0-72.80  amd64        Signed kernel image generic
rc  linux-image-5.4.0-73-generic          5.4.0-73.82  amd64        Signed kernel image generic
rc  linux-image-5.4.0-74-generic          5.4.0-74.83  amd64        Signed kernel image generic
rc  linux-image-5.4.0-77-generic          5.4.0-77.86  amd64        Signed kernel image generic
rc  linux-image-5.4.0-80-generic          5.4.0-80.90  amd64        Signed kernel image generic
ii  linux-image-5.4.0-81-generic          5.4.0-81.91  amd64        Signed kernel image generic
rc  linux-image-5.4.0-84-generic          5.4.0-84.94  amd64        Signed kernel image generic
ii  linux-image-5.4.0-86-generic          5.4.0-86.97  amd64        Signed kernel image generic
ii  linux-image-5.4.0-88-generic          5.4.0-88.99  amd64        Signed kernel image generic
ii  linux-image-generic                   5.4.0.88.92  amd64        Generic Linux kernel image
un  linux-image-unsigned-5.4.0-42-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-58-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-59-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-60-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-62-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-64-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-65-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-66-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-67-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-70-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-71-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-72-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-73-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-74-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-77-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-80-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-81-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-84-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-86-generic <keine>      <keine>      (keine Beschreibung vorhanden)
un  linux-image-unsigned-5.4.0-88-generic <keine>      <keine>      (keine Beschreibung vorhanden)

然后我删除了内核

sudo apt-get remove linux-image-5.4.0-42-generic linux-image-5.4.0-58-generic

并重新启动计算机。现在命令dpkg --list 'linux-image*'仍然返回与上面相同的列表。为什么内核 5.4.0-42 和 5.4.0-58 没有从列表中删除,我该如何删除列表中的条目?/boot 上的位置已被释放。

答案1

要删除未安装的内核,你必须dpkg -l按如下方式解析输出

sudo apt-get autopurge $(dpkg -l | grep linux-image | grep -v ^ii | awk '{print $2}')

在哪里dpkg -l | grep linux-image | grep -v ^ii | awk '{print $2}'是不言自明的——我们得到已安装软件包的列表,过滤Linux 映像出现次数,然后过滤未安装的包并最后从第 2 列中获取它们的名称。

相关内容