Cả bản phân phối dựa trên RedHat và Debian đều giữ một số phiên bản Kernel khi bạn cài đặt một bản mới bằng cách sử dụng yum
hoặc apt-get
theo mặc định. Đó được coi là một cách thực hành tốt và được thực hiện chính xác cho trường hợp bạn mô tả: nếu xảy ra sự cố với kernel mới nhất, bạn luôn có thể khởi động lại và trong GRUB chọn khởi động bằng một trong các hạt nhân trước đó.
Trong distro RedHat bạn kiểm soát số lượng các hạt nhân để giữ /etc/yum.conf
với installonly_limit
thiết lập. Trên bản cài đặt CentOS 7 mới của tôi, nó mặc định là 5.
Ngoài ra, nếu trên RedHat bạn đang cài đặt kernel mới từ gói RPM, bạn không nên sử dụng kernel cũ, trong đó rpm -ivh
, rpm -Uvh
cái trước sẽ giữ kernel cũ hơn trong khi cái sau sẽ thay thế nó.
Debian giữ các hạt nhân cũ nhưng không tự động loại bỏ chúng. Nếu bạn cần giải phóng phân vùng khởi động, bạn phải xóa các hạt nhân cũ bằng tay (nhớ để lại ít nhất một trong các hạt nhân trước đó). Để liệt kê tất cả các gói cài đặt kernel và tiêu đề kernel sử dụng dpkg -l | egrep "linux-(im|he)"
.
Trả lời câu hỏi của bạn - Ngoài ra, có thể có 2 phiên bản của cùng một hạt nhân không? - Vâng, điều đó là có thể. Tôi không thể kiểm tra nó trên CentOS 6.5 ngay bây giờ, nhưng trên CentOS 7 tôi đã có thể mang lại kết quả mong muốn bằng cách sao chép các tệp liên quan đến kernel của /boot
thư mục và xây dựng lại menu grub:
cd /boot
# Duplicate kernel files;
# "3.10.0-123.el7" is a substring in the name of the current kernel
ls -1 | grep "3.10.0-123.el7" | { while read i; \
do cp $i $(echo $i | sed 's/el7/el7.backup/'); done; }
# Backup the grub configuration, just in case
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.backup
# Rebuild grub configuration
grub2-mkconfig -o /boot/grub2/grub.cfg
# At this point you can reboot and see that a new kernel is available
# for you to choose in GRUB menu