web-dev-qa-db-ja.com

エラー:Linuxカーネルのアップグレード中に「gzip:stdout:デバイスにスペースが残っていません」(スペースがある場合)

これをここに移動して、いくつかの洞察を獲得してみてください。

現在、Linuxカーネルを4.4.0-63から4.10.12にアップグレードしようとしています(ここでファイルにいくつかの編集を加えました)。 Ubuntu 14.04 x86_64で実行していて、次の手順を実行しました:make menuconfig(デフォルトを受け入れました)-> make-> make modules-> make modules_install

「makeinstall」を実行しようとすると、次のエラーが発生します。

user@thiscomp:/usr/src/linux-4.10.12$ Sudo make install
sh ./Arch/x86/boot/install.sh 4.10.12 Arch/x86/boot/bzImage \
        System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.10.12 
/boot/vmlinuz-4.10.12
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.10.12 
/boot/vmlinuz-4.10.12
update-initramfs: Generating /boot/initrd.img-4.10.12
W: Possible missing firmware /lib/firmware/ast_dp501_fw.bin for module ast

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-4.10.12 with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
make[1]: *** [install] Error 1
make: *** [install] Error 2

最初に、/ bootがいっぱいかどうかを確認しましたが、そうではないようでした。

user@thiscomp:/usr/src/linux-4.10.12$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             16G  4.0K   16G   1% /dev
tmpfs           3.2G  1.2M  3.2G   1% /run
/dev/dm-0       252G   43G  197G  18% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none             16G  152K   16G   1% /run/shm
none            100M   32K  100M   1% /run/user
/dev/sda1       236M   75M  149M  34% /boot

私がオンラインで見たものから、これは通常、過去のカーネルバージョンが必要以上に長く刻々と変化していることに関係しています。しかし、私が見ることができたものから、「dpkg -l linux-image *」を実行した後、過去のバージョンがハングアウトすることはありませんでした。

un  linux-image     
ii  linux-image-4.4.0-63-generic  
ii  linux-image-extra-4.4.0-63-generic
ii  linux-image-generic-lts-xenial

最後に、tmpfsへのインストールでエラーは発生しませんでした。

user@thiscomp:/usr/src/linux-4.10.12$ Sudo mount -t tmpfs none /boot
user@thiscomp:/usr/src/linux-4.10.12$ Sudo make install
sh ./Arch/x86/boot/install.sh 4.10.12 Arch/x86/boot/bzImage \
        System.map "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.10.12         
/boot/vmlinuz-4.10.12
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.10.12                 
/boot/vmlinuz-4.10.12
update-initramfs: Generating /boot/initrd.img-4.10.12
W: Possible missing firmware /lib/firmware/ast_dp501_fw.bin for module ast
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.10.12 /boot/vmlinuz-
4.10.12
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.10.12 
/boot/vmlinuz-4.10.12
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.10.12 
/boot/vmlinuz-4.10.12
user@thiscomp:/usr/src/linux-4.10.12$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             16G  4.0K   16G   1% /dev
tmpfs           3.2G  1.2M  3.2G   1% /run
/dev/dm-0       252G   43G  197G  18% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none             16G  152K   16G   1% /run/shm
none            100M   32K  100M   1% /run/user
none             16G  310M   16G   2% /boot

問題を理解するために他にどこを探すべきかわかりません(特に/ bootがいっぱいではないように見えるため)。とにかく、必要なものをインストールしながらインストールを小さくする方法はありますか(またはシステムをワイプせずに/ bootのサイズを変更する方法はありますか?)。

edit(コメント要求されたコマンドを追加するには):

user@thiscomp:/usr/src/linux-4.10.12$ df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
udev            4108437    534  4107903    1% /dev
tmpfs           4113275    609  4112666    1% /run
/dev/dm-0      16777216 470608 16306608    3% /
none            4113275     14  4113261    1% /sys/fs/cgroup
none            4113275      6  4113269    1% /run/lock
none            4113275      6  4113269    1% /run/shm
none            4113275     25  4113250    1% /run/user
/dev/sda1         62248    307    61941    1% /boot

edit2 tmpfsのマウント後にファイルサイズを追加します:

user@thiscomp:/usr/src/linux-4.10.12$ ls -l /boot/initrd.img-4.10.12 
/boot/vmlinuz-4.10.12 
-rw-r--r-- 1 root root 312429420 Apr 26 07:02 /boot/initrd.img-4.10.12
-rw-r--r-- 1 root root   7149280 Apr 26 07:01 /boot/vmlinuz-4.10.12

editモジュール数:

user@thiscomp:/usr/src/linux-4.10.12$ grep -o '=m' /boot/config-4.4.0-63-
generic | wc -l
4409
user@thiscomp:/usr/src/linux-4.10.12$ grep -o '=m' .config | wc -l
4332
3
MangoOfFury

問題は、make_installを実行する前にモジュールを削除しなかったため、インストールされていたカーネルが現在のカーネルと比較して巨大であったことです(ここを参照してください: https://stackoverflow.com/a/ 43624752/37762

基本的に、モジュールをインストールするときにmake "make INSTALL_MOD_STRIP = 1modules_install"を実行する必要がありました。

2
MangoOfFury