Ubuntu linux标头正在EC2机器上消耗大量磁盘空间。使用rm命令手动删除标题是否安全?

Ubuntu linux标头正在EC2机器上消耗大量磁盘空间。使用rm命令手动删除标题是否安全?,ubuntu,amazon-ec2,linux-kernel,Ubuntu,Amazon Ec2,Linux Kernel,aws上的EC2机器充满了多个linux标头,目前磁盘空间已满100%。我运行了类似于apt get autoremove的命令,但它抛出了一个错误 No apport report written because the error message indicates a disk full error dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) 我可以通过rm命令删除旧标题吗?安全吗?如果我用rm

aws上的EC2机器充满了多个linux标头,目前磁盘空间已满100%。我运行了类似于apt get autoremove的命令,但它抛出了一个错误

No apport report written because the error message indicates a disk full error
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
我可以通过rm命令删除旧标题吗?安全吗?如果我用rm命令删除,我应该在那之后做任何清理吗? 以下是标题列表:

du -h -d1 /usr/src/ | sort -hr
2.8G    /usr/src/
106M    /usr/src/linux-aws-headers-4.4.0-1099
106M    /usr/src/linux-aws-headers-4.4.0-1098
106M    /usr/src/linux-aws-headers-4.4.0-1096
106M    /usr/src/linux-aws-headers-4.4.0-1095
106M    /usr/src/linux-aws-headers-4.4.0-1094
106M    /usr/src/linux-aws-headers-4.4.0-1092
106M    /usr/src/linux-aws-headers-4.4.0-1090
106M    /usr/src/linux-aws-headers-4.4.0-1088
106M    /usr/src/linux-aws-headers-4.4.0-1087
106M    /usr/src/linux-aws-headers-4.4.0-1085
106M    /usr/src/linux-aws-headers-4.4.0-1084
106M    /usr/src/linux-aws-headers-4.4.0-1083
106M    /usr/src/linux-aws-headers-4.4.0-1079
106M    /usr/src/linux-aws-headers-4.4.0-1077
106M    /usr/src/linux-aws-headers-4.4.0-1075
106M    /usr/src/linux-aws-headers-4.4.0-1074
106M    /usr/src/linux-aws-headers-4.4.0-1072
106M    /usr/src/linux-aws-headers-4.4.0-1070
106M    /usr/src/linux-aws-headers-4.4.0-1069
106M    /usr/src/linux-aws-headers-4.4.0-1066
106M    /usr/src/linux-aws-headers-4.4.0-1065
106M    /usr/src/linux-aws-headers-4.4.0-1062
106M    /usr/src/linux-aws-headers-4.4.0-1061
106M    /usr/src/linux-aws-headers-4.4.0-1060
13M /usr/src/linux-headers-4.4.0-1100-aws
13M /usr/src/linux-headers-4.4.0-1099-aws
13M /usr/src/linux-headers-4.4.0-1098-aws
13M /usr/src/linux-headers-4.4.0-1096-aws
13M /usr/src/linux-headers-4.4.0-1095-aws
13M /usr/src/linux-headers-4.4.0-1094-aws
13M /usr/src/linux-headers-4.4.0-1092-aws
13M /usr/src/linux-headers-4.4.0-1090-aws
13M /usr/src/linux-headers-4.4.0-1088-aws
13M /usr/src/linux-headers-4.4.0-1087-aws
13M /usr/src/linux-headers-4.4.0-1085-aws
13M /usr/src/linux-headers-4.4.0-1084-aws
13M /usr/src/linux-headers-4.4.0-1083-aws
13M /usr/src/linux-headers-4.4.0-1079-aws
13M /usr/src/linux-headers-4.4.0-1077-aws
13M /usr/src/linux-headers-4.4.0-1075-aws
13M /usr/src/linux-headers-4.4.0-1074-aws
13M /usr/src/linux-headers-4.4.0-1072-aws
13M /usr/src/linux-headers-4.4.0-1070-aws
13M /usr/src/linux-headers-4.4.0-1069-aws
13M /usr/src/linux-headers-4.4.0-1066-aws
13M /usr/src/linux-headers-4.4.0-1065-aws
13M /usr/src/linux-headers-4.4.0-1062-aws
13M /usr/src/linux-headers-4.4.0-1061-aws
13M /usr/src/linux-headers-4.4.0-1060-aws
测向命令输出:

df -k
Filesystem     1K-blocks    Used Available Use% Mounted on
udev              499316       0    499316   0% /dev
tmpfs             101444   10740     90704  11% /run
/dev/xvda1       8065444 8049060         0 100% /
tmpfs             507212       0    507212   0% /dev/shm
tmpfs               5120       0      5120   0% /run/lock
tmpfs             507212       0    507212   0% /sys/fs/cgroup
/dev/xvdf        5029504   10244   4740732   1% /data
tmpfs             101444       0    101444   0% /run/user/1000

这个命令对我起了作用:

 apt-get -f autoremove
上下文 我遇到了与OP相同的错误。为了能够运行jpereira回答中建议的命令(
apt get-f autoremove
),我首先必须释放大约10MB的空间

但当我运行它时,发生了一件奇怪的事情,apt get说它将删除所有的
linux头文件
(和其他一些)包,但它首先尝试安装另一个包(
snapd
),但因为没有空间安装它,所以过程失败

下次我尝试运行该命令时,就好像
apt-get
忘记了
linux头文件(以及其他)包一样。因此,我继续尝试手动移除其中一个包:

sudo apt-get remove linux-aws-headers-4.4.0-1065
此命令成功地从
/usr/src
目录中删除了2个目录。它删除了与包同名的目录和同名的包,但将
-aws
移到了末尾

要删除所有这些文件,我运行了这个命令,但不要使用它,因为我最终删除了一些不会被
autoremove
功能删除的文件包,而且我也没有删除所有会被
autoremove
功能删除的文件包

cd /usr/src
while read pkg; do sudo apt-get -y remove $pkg; done < <(find . -maxdepth 1 -type d -name "linux*" -printf "%f\n")
确保该命令的输出是一个包列表,其中每个包位于一行中。如果可行,那么继续运行类似于我之前使用的命令:

while read pkg; do sudo apt-get -y remove $pkg; done < <(echo "<PASTE COPIED LIST OF PACKAGES HERE>" | cut -c3- | tr " " "\n")

在读取pkg时;do sudo apt get-y删除$pkg;完成<要安全删除linux标头,请始终使用:

$ sudo apt-get autoremove
有时,上述命令会给出如下错误:

Reading package lists... Error!
E: Could not create temporary file for /var/cache... (28: No space left on device)
E: The package lists or status file could not be parsed or opened.
在这种情况下,手动删除一个或两个旧标题。 要执行此操作,请首先转到
/usr/src
文件夹,并使用以下命令按日期(降序)列出文件:

$ cd /usr/src
$ ls -lt
然后选择一个旧的头文件(例如
linux-aws-headers-4.4.0-1067
),并使用以下命令将其删除:

$ sudo rm -r linux-aws-headers-4.4.0-1067

执行此操作后,命令
sudo apt get autoremove
应该可以正常工作。

I使用此shell代码自动删除不需要的目录:

sudo apt-get autoremove
cd /usr/src
sudo rm -r $(comm -23 <(ls /usr/src) <(apt-file search /usr/src/* | awk -F / '{print $4}' | sort -u))
sudo-apt-get-autoremove
cd/usr/src

sudo rm-r$(comm-23I使用
dpkg
apt get-f安装首次修复包状态

然后,我尝试按照
apt-get-autoremove
的建议删除旧内核

但这只会删除一个内核。 在那里,我发现安装了更多

dpkg --get-selections|grep linux-modules|grep -v deinstall
我必须明确删除这些内核:

apt-get remove linux-image-4.4.0-1123-aws linux-image-4.4.0-1121-aws linux-image-4.4.0-1119-aws linux-image-4.4.0-1114-aws ... linux-modules-4.4.0-1124-aws  linux-modules-4.4.0-1121-aws linux-modules-4.4.0-1119-aws linux-modules-4.4.0-1114-aws ...
之后,我可以使用
apt-get-autoremove
进行清理,它删除了标题

报告了一些残羹剩饭,因此我不得不手动清理:

cd /lib/modules
rm -rf 4.4.0-1124-aws 4.4.0-1123-aws 4.4.0-1122-aws 4.4.0-1121-aws4.4.0-1119-aws 4.4.0-1118-aws 4.4.0-1117-aws 4.4.0-1114-aws ...

我仍然不知道为什么
apt-get-autoremove
对我不起作用。

通常(在正确的发行版中)这些都是由软件包提供的。你可以在Ubuntu中使用
apt
dpkg
检查发生了什么。清除(删除)是安全的冗余包。在您的情况下,我希望查看是否有
apt
缓存剩余,并从清理它开始(不使用
rm
命令)。谢谢@0andriy,你知道有什么特别的命令可以用来检查
apt
缓存并清理它吗?@hithyshi安装
apt file
命令,然后运行
apt file search/usr/src/linux-aws-headers-4.4.0-1099
来查找负责这些文件的包。谢谢@0andriy,谢谢Marco Bonelli。我做了一些工作hings和它目前帮助清理了一些空间。我用rm命令手动删除了12个冗余头。然后运行清除命令:example-
rm-rf linux-aws-headers-4.4.0-1060
,然后
sudo apt get purge linux-image-4.4.0-1060-aws
。我对12个冗余头执行了上述操作。这已经清除了很多spa现在是ce。必须采取措施确保不会重复此操作。这很有帮助,因为我在运行sudo apt autoremove时在一个特定的头上出现错误。我只是按照此处所述手动删除了它,然后重新运行autoremove,没有任何问题。
cd /lib/modules
rm -rf 4.4.0-1124-aws 4.4.0-1123-aws 4.4.0-1122-aws 4.4.0-1121-aws4.4.0-1119-aws 4.4.0-1118-aws 4.4.0-1117-aws 4.4.0-1114-aws ...