Cách giữ 4 kernel Linux trong / boot theo mặc định trước khi chúng tự động bị xóa


12

Tôi đã thực hiện một số công việc đào bới xung quanh và thấy rằng việc dọn dẹp tự động cho các hạt nhân nằm trong /etc/kernel/postinst.d/apt-auto-removaltệp và ghi rõ:

# In the common case this results in two kernels saved (booted into the
# second-latest kernel, we install the latest kernel in an upgrade), but
# can save up to four. Kernel refers here to a distinct release, which can
# potentially be installed in multiple flavours counting as one kernel.

nhưng kịch bản đó nằm phía trên đầu tôi và tôi không thể dễ dàng tìm thấy cách thức autoclean bất cứ thứ gì ngoại trừ 4 hạt nhân cuối cùng.


Bạn phải sửa đổi tập lệnh ở một vài nơi, không còn cách nào khác. Nếu bạn muốn, bạn có thể gửi báo cáo lỗi "danh sách mong muốn" trên aptgói để cho phép số lượng hạt nhân được tùy chỉnh.
fkraiem

2
"Bốn" trong phần bạn trích dẫn đề cập đến trường hợp bất thường trong đó "phiên bản hiện đang khởi động", "phiên bản kernel mà chúng tôi đã gọi cho", "phiên bản kernel mới nhất" và "phiên bản kernel mới nhất thứ hai" là tất cả khác biệt, vì tất cả các phiên bản được giữ. Tuy nhiên, trong các trường hợp điển hình, điều này rút xuống còn hai vì "phiên bản hiện đang khởi động" và "phiên bản kernel mới nhất thứ hai" giống nhau và tương tự cho hai phiên bản khác.
fkraiem

Câu trả lời:


12

Điều đó có nghĩa là gì khi nói "tối đa bốn" là các phiên bản hiện đang chạy, cài đặt hiện tại, mới nhất và trước đó đều có thể khác nhau, dẫn đến bốn phiên bản được giữ tự động (tối thiểu là hai). Xem phần này của mã:

debkernels="$(echo "$latest_version
$installed_version
$running_version
$previous_version" | sort -u | sed -e '/^$/ d')"

Tôi nghĩ rằng cách đơn giản nhất để có được nó để cứu hạt nhân cũ hơn là mở rộng $previous_versiondanh sách. Thay vì:

previous_version="$(echo "$debverlist" | sed -n 2p)"

Làm:

previous_version="$(echo "$debverlist" | sed -n 2,4p)"

Vâng, điều này có vẻ như nó nên làm việc. Bạn nên lưu ý rằng vì tệp là một phần của aptgói, nó có thể được hoàn nguyên về mặc định khi aptđược nâng cấp.
fkraiem

@fkraiem tập tin nằm trong /etc, vì vậy có lẽ đó là một tập hợp và các thay đổi nên được bảo tồn (hoặc, ít nhất, người dùng sẽ được hỏi về chúng)
muru

1
Có, tất cả các tệp bên dưới /etclà conffiles, nhưng có vẻ như người dùng thường bị nhầm lẫn khi "giữ hoặc thay thế?" câu hỏi bật lên ...
fkraiem

1
Tôi sẽ không bị lẫn lộn ... @fkraiem
Fabby 17/12/17

apt vẫn phàn nàn: The following packages were automatically installed and are no longer required: linux-headers-4.10.0-38 linux-headers-4.10.0-38-generic linux-image-4.10.0-38-generic linux-image-extra-4.10.0-38-generic linux-signed-image-4.10.0-38-generic Use 'sudo apt autoremove' to remove them. nhưng đó là một thực thi và tôi sẽ ngừng lo lắng về nó và đã điều chỉnh câu hỏi để phù hợp với câu trả lời. :-)
Fabby 17/12/17
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.