安装Linux内核生成" gzip:stdout:设备上没有空间"错误

时间:2016-07-25 05:52:29

标签: 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目录已满,但我不知道这是否是根本原因。任何人都可以就这个问题提供一些线索吗?

1 个答案:

答案 0 :(得分:0)

您可以在 df&#39> 执行中看到, / boot 分区中只剩下几个megs。

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

# 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 中配置了 lvm 强> / 分区。您可以尝试使用knoppix启动计算机并调整分区大小,为 / boot 分区提供一些额外空间。但是你必须避免使用lvm添加这个空间,因为我认为你的安装不会在启动过程中支持lvm。

最好的选择应该是尝试调整整个lvm分区的大小,并为 / boot 提供额外的空间。