linux - 安装 Linux 内核产生 "gzip: stdout: No space left on device"错误

标签 linux ubuntu build linux-kernel

我当前的 Ubuntu 是 16.04.1 LTS,我用它来构建最新的 linux 4.7 内核。整个构建过程都很顺利,除了安装的时候,提示如下错误:

# make modules_install install
......
  DEPMOD  4.7.0
sh ./arch/x86/boot/install.sh 4.7.0 arch/x86/boot/bzImage \
        System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.7.0 /boot/vmlinuz-4.7.0
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.7.0 /boot/vmlinuz-4.7.0
update-initramfs: Generating /boot/initrd.img-4.7.0
W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-4.7.0 with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
arch/x86/boot/Makefile:191: recipe for target 'install' failed
make[2]: *** [install] Error 1
arch/x86/Makefile:261: recipe for target 'install' failed
make[1]: *** [install] Error 2
Makefile:523: recipe for target '__build_one_by_one' failed
make: *** [__build_one_by_one] Error 2

我知道但是我的主机上没有空间,所以我使用“df -h”命令来检查:

# df -h
Filesystem                   Size  Used Avail Use% Mounted on
udev                         1.9G     0  1.9G   0% /dev
tmpfs                        390M   11M  379M   3% /run
/dev/mapper/ubuntu--vg-root  454G   25G  407G   6% /
tmpfs                        2.0G     0  2.0G   0% /dev/shm
tmpfs                        5.0M     0  5.0M   0% /run/lock
tmpfs                        2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/sda2                    473M  179M  270M  40% /boot
/dev/sda1                    511M  3.5M  508M   1% /boot/efi
tmpfs                        100K     0  100K   0% /run/lxcfs/controllers
tmpfs                        390M     0  390M   0% /run/user/0

好像只有/dev目录满了,不知道是不是根本原因。谁能就这个问题提供一些线索?

最佳答案

正如您在 df 的 执行中看到的那样,您的 /boot 分区中只剩下几兆。

您可以做的第一件事是检查是否有您不再使用的旧内核:

# uname -r
4.6.0-1-amd64
# dpkg -l linux-image*
Deseado=desconocido(U)/Instalar/eliminaR/Purgar/retener(H)
| Estado=No/Inst/ficheros-Conf/desempaqUetado/medio-conF/medio-inst(H)/espera-disparo(W)/pendienTe-disparo
|/ Err?=(ninguno)/requiere-Reinst (Estado,Err: mayúsc.=malo)
||/ Nombre                                    Versión                   Arquitectura              Descripción
+++-=========================================-=========================-=========================-=======================================================================================
un  linux-image                               <ninguna>                 <ninguna>                 (no hay ninguna descripción disponible)
ii  linux-image-4.5.0-2-amd64                 4.5.5-1                   amd64                     Linux 4.5 for 64-bit PCs
ii  linux-image-4.6.0-1-amd64                 4.6.4-1                   amd64                     Linux 4.6 for 64-bit PCs
ii  linux-image-amd64                         4.6+74                    amd64                     Linux for 64-bit PCs (meta-package)

如您在我的示例中所见,我安装了当前内核和之前的内核。这是我的惯常行为,但在 ubuntu 中,在某些配置下,您可能安装了两个以上的内核。

您可以安全地删除安装在这两个内核旁边的任何其他内核,因为您已经测试了当前内核和之前的内核。

如果不是这种情况,您可以尝试扩展您的 /boot 分区,这在大多数情况下很复杂,我看到您在 lvm 配置了 < strong>/ 分区。您可以尝试使用 knoppix 启动您的机器并调整您的分区大小以便为您的 /boot 分区提供一些额外空间。但是你必须避免使用 lvm 添加这个空间,因为我认为你的安装在引导过程中不支持 lvm。

最好的选择应该是尝试调整整个 lvm 分区的大小,并将额外的空间分配给 /boot

关于linux - 安装 Linux 内核产生 "gzip: stdout: No space left on device"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38560554/

相关文章:

linux - 在 SGE 作业中使用集群上的 tee 对 SIGTERM 进行故障排除

linux - WSL2 Ubuntu 20.04 没有 Docker 容器的输出

ruby-on-rails - 在本地主机上设置 Rails 项目,postgresql 问题

ubuntu - gulp 命令不起作用

java - 在 Java 中执行 shell 脚本并读取输出

linux - 在 ubuntu 上安装 Webobjects 4.5.1

java - Ubuntu 现在可以设置 java 路径

maven - 如何使用 Maven 构建 Hadoop 作业

c# - 在 C# 中克隆 VSTS 构建定义

android - 如何解决 flutter 中的 build.gradle 错误。如何解决此错误 "A problem occurred evaluating project ' :app'. > Malformed\uxxxx 编码。”