Lỗi: Có gzip: stdout: Không còn chỗ trống trên thiết bị, trong khi nâng cấp kernel Linux (trong khi có dung lượng)


3

Di chuyển cái này qua đây để thử và thu thập một số cái nhìn sâu sắc.

Tôi hiện đang trong quá trình cố gắng nâng cấp nhân Linux của mình từ 4.4.0-63 lên 4.10.12 (Tôi đã thực hiện một số chỉnh sửa cho các tệp ở đây). Tôi đang chạy trên Ubuntu 14.04 x86_64 và tôi đã trải qua các bước: tạo menuconfig (Tôi chấp nhận mặc định) -> make -> tạo mô-đun -> tạo mô-đun_install

Mặc dù một khi tôi cố gắng thực hiện "thực hiện cài đặt", tôi gặp lỗi sau:

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

Đầu tiên, tôi đã kiểm tra xem / boot đã đầy chưa, nhưng có vẻ như nó không phải là:

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

Từ những gì tôi đã thấy trực tuyến, điều này thường phải làm với các phiên bản kernel trong quá khứ tích tắc lâu hơn mức cần thiết. Mặc dù, từ những gì tôi có thể thấy, không có phiên bản nào trước đây bị treo sau khi chạy "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

Cuối cùng, không có bất kỳ lỗi nào khi cài đặt vào 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

Tôi không chắc chắn nơi nào khác để tìm ra vấn đề (đặc biệt là vì có vẻ như / boot không đầy đủ). Có cách nào để làm cho cài đặt nhỏ hơn trong khi vẫn cài đặt những gì cần thiết (hoặc một cách để thay đổi kích thước / khởi động mà không xóa sạch hệ thống?).

chỉnh sửa (Để thêm nhận xét yêu cầu lệnh):

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

chỉnh sửa2 Thêm kích thước tệp sau khi cài đặt 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

chỉnh sửa3 Số lượng mô-đun:

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

vui lòng chỉnh sửa câu hỏi của bạn và cung cấp đầu ra đầy đủ củadf -h
Yaron

Đã chỉnh sửa. Xin lỗi, ở nơi khác họ đã yêu cầu tôi xóa thông tin bổ sung từ df -h
MangoOfFury

Hệ thống tập tin của bạn có thể được ra khỏi inodes. Vui lòng chỉnh sửa câu hỏi của bạn và thêm đầu ra của 'df -i'
Yaron

chỉnh sửa và cập nhật
MangoOfFury

Kích thước của các tệp được tạo khi bạn gắn các tmpfs, bao gồm kích thước của là /boot/initrd.img-4.10.12gì? Bạn có thể sao chép các tệp đó theo cách thủ công từ các tmpfs ở một nơi khác, ngắt kết nối các tmpfs và sau đó sao chép chúng vào /boot/không?
dirkt

Câu trả lời:


1

Vấn đề cuối cùng là tôi đã không loại bỏ các mô-đun trước khi chạy make_install, vì vậy hạt nhân đang được cài đặt rất lớn so với hạt nhân hiện tại của tôi (xem tại đây: https://stackoverflow.com/a/43624752/3776230 )

Về cơ bản, phải chạy make "make INSTALL_MOD_STRIP = 1 Module_install" khi cài đặt các mô-đun.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.