Có nhiều phiên bản Linux Kernel không?


14

Một lần, tôi đã cài đặt một số bản vá kernel & đã xảy ra lỗi trên máy chủ trực tiếp nơi chúng tôi có hàng trăm khách hàng. Chỉ có một nhân trong hệ thống. Vì vậy, máy chủ đã ngừng hoạt động một thời gian và sử dụng CD trực tiếp, chúng tôi đã khởi động hệ thống và chạy và thực hiện công việc sửa chữa tiếp theo.

Bây giờ câu hỏi của tôi: Có một ý tưởng tốt để có 2 phiên bản kernel, để nếu kernel bị hỏng chúng ta luôn có thể khởi động lại với một kernel có sẵn khác? Làm ơn cho tôi biết.

Ngoài ra, có thể có 2 phiên bản của cùng một kernel không? Để tôi có thể chọn kernel khác khi có kernel bị hỏng?

Edited:
My Server Details:
2.6.32-431.el6.x86_64
CentOS release 6.5 (Final)

Làm thế nào tôi có thể có cùng một bản sao của kernel này, để khi kernel của tôi bị hỏng, tôi có thể khởi động kernel sao lưu?


4
Dường như với tôi rằng bạn đã trả lời câu hỏi của riêng bạn. Không có nhược điểm nào khi có nhiều nhân, miễn là bạn biết chúng hoạt động với hệ thống của bạn và đôi khi có thể hữu ích nếu bạn gặp sự cố với một kernel cụ thể vì một số lý do.
Faheem Mitha

Cảm ơn, có thể tôi đã không hỏi qns chính xác. Làm thế nào tôi có thể có cùng một bản sao của kernel này, để khi kernel của tôi bị hỏng, tôi có thể khởi động kernel sao lưu?
Mani

2
Chắc chắn bạn có thể có hạt nhân giống hệt nhau. Nhân chỉ là một tập tin trên đĩa. Bạn có thể sao chép kernel hiện tại của mình với một tên hơi khác.
Faheem Mitha

Trên một trong những máy chủ mà tôi được thừa kế, nó có 16 mục khởi động cho 8 hạt nhân khác nhau trên đó ... Bạn biết đấy, cho đến khi tôi dọn sạch nó
Luke Luke của Canada

Tôi thường giữ kernel trước trong trường hợp có lỗi.
Joshua

Câu trả lời:


18

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 yumhoặc apt-gettheo 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.confvới installonly_limitthiế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 -Uvhcá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 /bootthư 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

cảm ơn, tôi đang làm việc trên nó Nhưng trong CentOS 6.5, không có "grub2-mkconfig". Bạn có biết, làm thế nào để làm điều này trong centos 6.5, tôi nghĩ grub2 chỉ có sẵn trong Centos 7. Bây giờ tôi đang Googling, nếu tôi tìm thấy một soln, sẽ cập nhật ở đây.
Mani

Tôi đã sửa đổi các dòng đó cho phù hợp với Centos 6.5 như bên dưới và bị mắc kẹt với cách cập nhật grub.conf. ls -1 | grep "2.6.32-431.el6" | {trong khi đọc i; \ do cp $ i $ (echo $ i | sed 's / el6 / el6.backup /'); làm xong; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backup
Mani

cảm ơn rất nhiều!!! Nó hoạt động và tôi đã sửa đổi như thế này ls -1 | grep "2.6.32-431.el6" | {trong khi đọc i; \ do cp $ i $ (echo $ i | sed 's / el6 / el6.backup /'); làm xong; } cp /boot/grub/grub.conf cp /boot/grub/grub.conf.backup và tôi đã chỉnh sửa grup.conf bằng tay. Bạn có thể giữ UUID giống nhau, Nếu bạn định sao chép trong cùng một đĩa và phân vùng.
Mani

7

Vâng, nó là có thể và tôi sẽ nói thậm chí khuyên. Bạn chỉ cần thiết lập quy trình khởi động để cung cấp cho bạn giải pháp thay thế. Thông thường, điều này được thực hiện trong cấu hình bộ tải khởi động - thông thường bạn chỉ có thể sao chép mục nhập ở đó và thay đổi tên tệp hình ảnh hạt nhân và nhãn mục trình đơn khởi động.

Trên máy chủ sản xuất, điều này thường không phải là vấn đề, nhưng bất cứ khi nào bạn nâng cấp kernel, bạn nên có một bản sao lưu. Một số bản phân phối Linux cung cấp rollback (thường được hỗ trợ bởi khả năng chụp nhanh hệ thống tệp) trên các bản cập nhật gói để làm cho quá trình không đau đớn nhất có thể, nhưng ngay cả trong những trường hợp đó tôi vẫn có xu hướng giữ bản sao lưu sẵn sàng.

Đối với việc có một vài bản sao của cùng một kernel - thậm chí điều đó sẽ có ý nghĩa, nhưng như @goldilocks chỉ ra trong bình luận bên dưới, nếu kernel của bạn bị hỏng, bạn nên nghĩ đến việc thay thế phần cứng. Mặt khác, việc sao chép trên một ổ cứng vật lý khác có thể giúp bạn tiết kiệm một số rắc rối. Nhưng hãy nhớ rằng, tập tin ảnh kernel chỉ được sử dụng trong quá trình khởi động.


Tôi đã sửa đổi qns, Xin vui lòng cho tôi biết, Làm thế nào để có kernel sao lưu? (tốt nhất là cùng một phiên bản)
Mani

3
Bạn không cần phải làm bất cứ điều gì, họ đã ở đó - nhưng trong các phiên bản khác nhau. Không có điểm nào có hai phiên bản giống nhau trừ khi bạn tự biên soạn một trong số chúng, nếu không chúng chỉ là bản sao giống hệt nhau. Vấn đề "tham nhũng" là không có thật - theo logic đó, bạn sẽ cần hai bản sao giống hệt nhau của toàn bộ hệ thống trong trường hợp bashnhị phân bị hỏng, libcbị hỏng, v.v ... tất cả sẽ khiến hệ thống trở nên vô dụng. Những tập tin này không nên bị "hỏng". Nếu có, thay thế phần cứng của bạn.
goldilocks

1
@goldilocks Hoặc thay thế sysadmin của bạn, tùy thuộc vào lỗi ở đâu.
Philip Kendall

@goldilocks xem câu trả lời cập nhật - nó có thể có ý nghĩa trong các trường hợp cụ thể. Rõ ràng, thay thế phần cứng bị lỗi nên được ưu tiên bất cứ khi nào có thể.
peterph
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.