Tuy nhiên đám phát triển các dòng Centos thường ít cập nhật phiên bản mới nhất, nếu có thì trong kernel nó "gom" một đống những thứ không cần thiết vào làm cho máy chủ bị đình trệ hoặc dư thừa những module không cần thiết, giống như tronòg 1 công ty "tôi cần anh A nhưng không cần anh B".
Những lý do nên cập nhật kernel
- Đương nhiên 1 nhà lập trình nào đó , khi viết ra 1 sản phẩm phần mềm nếu thêm nhiều đoạn code vào thì đoạn code đó dung lượng , thời gian sẽ chậm hơn so với 1 đoạn code khá ngắn .
- Thử hình dung kernel có nhiều tính năng "hữu ích" trong đó thì khi module này có lỗi thì bạn sẽ trở thành nạn nhân của hacker như các cuộc tấn công tràn bộ đệm là 1 ví dụ.
- Lựa chọn cài đặt khá đơn giản chỉ Yes (Y) hay No (N)
Những lý do không nên cập nhật kernel (cẩn thận với người dùng đăng nhập SSH từ xa)
- Việc cập nhật kernel thường xuyên đối với 1 người lam việc thành thạo trên Linux và có kinh nghiệm nhiều năm trong kernel thì việc cập nhật kernel có thể đơn giản hơn bao giờ hết tuy nhiên với những người theo mạng...cộng đồng, ai nói cập nhật kernel là tốt sau đó thử nghiệm trên hệ thống của mình mà "kéo" theo nguyên đám không cần thiết thì có thể làm hệ thống trì trệ hơn nữa.
- Hệ thống dễ chết bất cứ lúc nào khi cập nhật kernel phiên bản mới nhất bị lỗi như Kernel Panic thường xãy ra là 1 ví dụ điển hình, nếu điều chỉnh grub không đúng cũng có thể làm bạn tự "khóa" mình lại.
Kernel cũ trên máy tính của tôi
# uname -a
Linux localhost.localdomain 2.6.18-274.el5
Chuẩn bị mọi thứ cần thiết
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.4.tar.bz2
# tar jxvf linux-2.6.39.4.tar.bz2 -C /usr/src
# cd /usr/src
# ln -sf linux-2.6.39.4 linux
Thêm 1 số gói cài đặt bổ sung cho việc nâng cấp kernel mới
# yum install gcc make bison ncurses-devel rpm-build
Bắt đầu cài đặt
# cd /usr/src/linux
# make clean && make mrproper
# cp /boot/config-`uname -r` .config
# make menuconfig
Trong phần này bạn cần bật
General setup->
[*] enable deprecated sysfs features to support old userspace tools
[*] enabled deprecated sysfs features by default
Nếu bạn config trực tiếp thì mở .config , điều chỉnh 2 dòng sau thành
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
Thường thì khi tôi cập nhật, nâng cấp kernel thì các tính năng mà nó hỗ trợ iptables tôi đều bật nó cả (nếu bạn không biết về các tính năng này thì chọn hết)
Tôi ví dụ như conntract
Tìm dòng Networking support chọn tiếp Networking option , kéo xuống phía dưới thấy dòng này Network packet filtering framework (Netfilter) chọn mục Core Netfilter Configuration và chọn mục Netfilter connection tracking support
Bạn tìm mục General Setup chọn dòng Local version – append to kernel release sau đó nhập vào ví dụ như -hvaonline hay -default , -config tùy bạn
Sau đó xong mọi thứ thì bạn vào Exit để thoát ra
# make rpm
# ls -alh /usr/src/redhat/RPMS/i386/
total 217M
drwxr-xr-x 2 root root 4.0K Jan 1 11:04 .
drwxr-xr-x 9 root root 4.0K Oct 3 17:14 ..
-rw-r--r-- 1 root root 217M Jan 1 11:04 kernel-2.6.39.4hvaonline-1.i386.rpm
# rpm -ivh /usr/src/redhat/RPMS/i386/kernel-2.6.39.4hvaonline-1.i386.rpm
Preparing... ########################################### [100%]
1:kernel ########################################### [100%]
# ls /boot
config-2.6.18-274.el5 symvers-2.6.18-274.el5.gz
config-2.6.39.4-hvaonline System.map-2.6.18-274.el5
grub System.map-2.6.39.4-hvaonline
initrd-2.6.18-274.el5.img vmlinux-2.6.39.4-hvaonline.bz2
lost+found vmlinuz-2.6.18-274.el5
message vmlinuz-2.6.39.4-hvaonline
# cd /boot
# depmod 2.6.39.4-hvaonline
# mkinitrd -v /boot/initrd-2.6.39.4-hvaonline.img 2.6.39.4-hvaonline
Ta xem qua cấu hình mặc định của tập tin grub
# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-274.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-274.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-274.el5.img
Bây giờ ta điều chỉnh thêm vào 1 đoạn như sau
title CentOS (2.6.39.4-hvaonline)
root (hd0,0)
kernel /vmlinuz-2.6.39.4-hvaonline ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.39.4-hvaonline.img




2 nhận xét:
Anh Phước ơi, em đã làm như anh hướng dẫn, từ CentOS 5.5 (Linux Kernel 2.6.18-194.el5) lên linux 2.6.39 nhưng vẫn báo panic, bây giờ em phải làm sao anh
Kernel Panic có hàng trăm thứ "bệnh" nó nhét vào, giống như trong 1 bệnh viện có nhiều bệnh nhân, nhiều bệnh nhân này hoàn toàn không mắc bệnh giống nhau.
Bro cập nhật kernel trên máy ảo hay máy thật ? Khi cập nhật kernel , bro có bật 2 tùy chọn như ở trên mình mô tả hay không và ngoài ra còn bật tùy chọn nào nữa ? Phần cứng của bro như thế nào ?
Cập nhật kernel từ source dành cho người có kinh nghiệm , không nên mạo hiểm . Bây giờ tạm thời sử dụng kernel cũ để cho hệ thống của bro sử dụng kernel để phân tích, xác định sự cố.
Đăng một Nhận xét