$ df -h /boot/
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p2 705M 173M 481M 27% /boot
我尝试编译 Ubuntu Linux 内核(v5.11.16)
fakeroot debian/rules clean // fine
make menuconfig // fine
make // fine
sudo make modules_install // fine
但是当我这样做时sudo make install
,/boot
分区很快就会满了,并且安装命令会报告错误:
I: Set the RESUME variable to override this.
Error 24 : Write error : cannot write compressed block
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.11.16+ with 1.
请帮忙,这是我第一次 :) // Ubuntu 20.04
答案1
如果你正在编译内核,那么最好在/boot
目录之外进行编译。这是我从源代码编译时遵循的过程:
- 将所需的内核源下载或克隆到具有至少 25GB 可用存储空间的设备上的目录中
- 进入源目录
- 复制现有配置
/boot
cp /boot/config-$(uname -r) .config
- 使用基于终端的配置工具
make menuconfig
- 根据您的硬件添加/删除选项
- 使用 Clang 编译内核
make CC=clang -j12
- 安装内核
sudo make install
- 更新 grub
sudo update-grub
- 重启
sudo reboot
通常这就是全部内容了。
答案2
我在 make 命令中添加了 INSTALL_MOD_STRIP=1 标志。它起作用了。
make INSTALL_MOD_STRIP=1 modules_install