Nên dùng kernel HWE hay GA trên Ubuntu Server?
Tìm cách kiểm tra VPS đang chạy kernel GA hay HWE, hiểu point release có cài kernel mới không và cân nhắc các lần reboot khi chọn track mới hơn.
Bản point release có cài kernel mới lên server Ubuntu của tôi không?
Không. Trên server Ubuntu, việc chọn kernel HWE hay kernel GA phụ thuộc vào package bạn cài đặt; point release không tự cài package đó. Từ “enablement” được dùng cho hai việc khác nhau trong release notes, nên dễ gây nhầm lẫn. Hardware enablement (HWE) là nhánh kernel mới hơn. Upgrade enablement là thời điểm riêng khi đường nâng cấp từ một LTS lên LTS tiếp theo được mở. Server đã chạy ổn định và đang dùng GA sẽ tiếp tục dùng GA qua mọi point release trong LTS đó.
GA và HWE là gì
GA (general availability) là kernel mà Ubuntu LTS phát hành vào ngày ra mắt. Kernel này giữ nguyên phiên bản upstream trong suốt thời gian hỗ trợ tiêu chuẩn của bản phát hành. Các bản sửa lỗi bảo mật và lỗi phần mềm được backport vào kernel này, nên số cuối trong uname -r thay đổi sau mỗi vài tuần. Phiên bản upstream ở đầu chuỗi không thay đổi.
HWE (hardware enablement) là track còn lại. Canonical backport kernel từ mỗi bản interim tiếp theo vào LTS, dừng ở kernel của bản LTS kế tiếp. Vì vậy, enablement kernel chuyển lên phiên bản upstream mới hơn khoảng 6 tháng một lần cho đến khi đạt phiên bản cuối đó. Canonical gọi đây là mô hình rolling update. Enablement kernel cuối cùng là GA kernel của bản LTS kế tiếp và giữ nguyên phiên bản upstream đó trong phần thời gian còn lại của LTS, nhận các bản sửa lỗi theo cùng cách với GA. Desktop image cài enablement kernel theo mặc định. Server và cloud image cài GA theo mặc định; enablement stack là một package tùy chọn.
Đánh đổi rất rõ. GA cung cấp một phiên bản kernel không thay đổi trong nhiều năm. HWE cung cấp driver mới hơn và các tính năng kernel mới hơn, nhưng yêu cầu nâng phiên bản và reboot khoảng 6 tháng một lần trong thời gian track vẫn còn rolling.
Tôi đang dùng nhánh kernel nào?
uname -r không bao giờ chứa từ hwe. Cả hai nhánh đều in ra phiên bản kết thúc bằng -generic, nên chỉ nhìn tên kernel đang chạy thì không trả lời được câu hỏi này. Meta-package đang cài cho biết các bản cập nhật của bạn theo nhánh nào. So sánh nó với uname -r sẽ cho biết kernel nào thực sự đang chạy.
uname -r
grep VERSION_ID /etc/os-release
apt-cache policy linux-generic linux-generic-hwe-24.04Thay 24.04 bằng số mà VERSION_ID in ra trên máy của bạn. apt-cache policy in một dòng Installed: cho mỗi package bạn chỉ định. Dòng đó cho biết package đã được cài, không có nghĩa kernel tương ứng đang chạy. Installed: (none) cho package -hwe- kèm phiên bản của linux-generic có nghĩa là các bản cập nhật của bạn theo GA, miễn là không có enablement meta-package nào khác, chẳng hạn linux-virtual-hwe-24.04, được cài. Các lệnh bên dưới sẽ kiểm tra điều này. Trường hợp ngược lại có nghĩa là bạn theo nhánh enablement. Nếu cả hai đều có phiên bản, cả hai kernel đều nằm trên máy. Với GRUB_DEFAULT=0 mặc định của Ubuntu, GRUB khởi động kernel mới nhất, tức kernel enablement. Tuy nhiên, nếu ai đó đặt GRUB_DEFAULT thành một entry cụ thể hoặc thành saved, kernel GA vẫn có thể là kernel được khởi động. Chỉ uname -r mới cho biết kernel nào đang chạy.
Một số image của nhà cung cấp cài linux-image-virtual thay vì linux-generic. Đây là bộ module nhỏ hơn dành cho máy ảo và có biến thể enablement riêng. Không được đoán tên package. Hãy kiểm tra các kernel package đã được chọn trên máy, sau đó kiểm tra archive để biết các enablement package có sẵn cho release của bạn.
apt-mark showmanual | grep '^linux-'
apt-cache search linux-image | grep hwe
apt-cache depends linux-image-generic-hwe-24.04
dpkg -l 'linux-image-*' | grep '^ii'
ls /boot/vmlinuz-*apt-cache depends cho biết kernel image mà enablement meta-package đang trỏ tới hiện tại. Nếu phiên bản của image đó khớp với uname -r, bạn đang chạy kernel enablement. ls /boot/vmlinuz-* cho biết những gì thực sự đã được cài và có thể khởi động; danh sách này thường dài hơn bạn dự kiến.
Từng bản point release tác động thế nào đến từng track
Trên GA track, point release không thay đổi gì trên server đang chạy. Point release là image cài đặt được làm mới, cộng với các bản cập nhật mà apt vẫn đang cung cấp cho bạn. Nó quyết định máy mới được dựng sẽ nhận gì, chứ không quyết định máy hiện có đang chạy gì. Point release Ubuntu thực sự thay đổi gì giải thích phần còn lại.
Trên enablement track, meta-package được cập nhật trong một chu kỳ cập nhật kernel thông thường diễn ra trước point release, không phải vào ngày phát hành. Khi track vẫn còn rolling, Canonical nâng kernel enablement trước mỗi LTS point release sau bản đầu tiên, cho đến bản mang GA kernel của LTS tiếp theo. Với 24.04, đó là 24.04.5, với kernel 7.0. Point release sau bước đó không mang kernel enablement mới: Ubuntu 20.04.6 phát hành vào tháng 3 năm 2023, nhưng trang vòng đời kernel của Ubuntu liệt kê 5.15, từ 20.04.5, là kernel enablement 20.04 cuối cùng. Với 24.04.3, phát hành vào 2025-08-07, việc chuyển từ 6.11 sang 6.14 được lên kế hoạch trong chu kỳ kernel SRU ngày 2025.06.16. linux-image-generic-hwe-24.04 thay đổi dependency để phụ thuộc vào kernel image mới hơn, và lần chạy update thông thường tiếp theo sẽ cài image đó. Trang manual của apt nói rõ vì sao chỉ cần chạy update thông thường: "Các package mới sẽ được cài nếu cần để đáp ứng dependency, nhưng các package hiện có sẽ không bao giờ bị gỡ." Vì vậy apt upgrade sẽ kéo kernel mới vào. Kernel đó chỉ trở thành kernel đang chạy sau lần reboot tiếp theo.
Trên 24.04, quá trình rolling đã kết thúc. Tính đến 2026-10-21, linux-generic-hwe-24.04 trên amd64 phụ thuộc vào kernel image 7.0, là GA kernel của 26.04. Từ thời điểm này, track đó chỉ nhận bản sửa lỗi, không tiếp tục nhảy lên các upstream version mới.
Việc một unattended job có tự làm bước này cho bạn hay không phụ thuộc vào cấu hình của chính bạn. Đọc /etc/apt/apt.conf.d/50unattended-upgrades và xem block Allowed-Origins. Mặc định khi Ubuntu phát hành cho phép các release pocket và security pocket, còn updates pocket được comment out. Điều đó không ngăn các bước enablement, vì Ubuntu cũng phát hành các bản cập nhật kernel meta-package, bao gồm cả các lần chuyển enablement, vào security pocket. Tính đến 2026-10-21, linux-generic-hwe-24.04 version 7.0.0-38.38~24.04.4 được phát hành trong noble-security. Vì vậy, với cấu hình mặc định và enablement meta-package đã được cài, unattended-upgrades sẽ tự cài từng kernel enablement mới. Kernel đó vẫn chỉ được sử dụng sau khi reboot. Hãy kiểm tra file thay vì mặc định cho rằng nó hoạt động theo một trong hai cách.
Các khoảng thời gian hỗ trợ xuất phát từ cùng cơ chế này. GA kernel được hỗ trợ trong suốt thời gian hỗ trợ tiêu chuẩn của LTS mà bạn không cần làm gì. Mỗi kernel enablement được hỗ trợ cho đến khi kernel enablement tiếp theo thay thế nó. Kernel cuối cùng là ngoại lệ: nó được hỗ trợ trong phần thời gian còn lại của LTS. Trước bước cuối cùng đó, HWE chỉ là một track được hỗ trợ khi bạn tiếp tục thực hiện đầy đủ mọi bước. Nếu chậm hai bước trên track này, bạn sẽ chạy một kernel không còn nhận bản sửa lỗi, và apt sẽ không báo gì về việc đó.
Không lấy ngày chính xác từ bất kỳ bài blog nào, kể cả bài này. Canonical công bố ngày kết thúc hỗ trợ kernel trên trang vòng đời kernel của Ubuntu, còn ngày phát hành và ngày hỗ trợ trên trang chu kỳ phát hành Ubuntu. Tuy nhiên, bảng kernel không liệt kê mọi kernel. Tính đến 2026-10-21, bảng không có dòng cho các kernel enablement 6.11 và 6.14 của 24.04, hoặc 5.19, 6.2 và 6.5 của 22.04, nên không có ngày kết thúc để tra cho các kernel đó. Các dòng hiện có cho thấy đúng mô hình ở đoạn trên: 6.17, kernel enablement của 24.04.4, kết thúc hỗ trợ tiêu chuẩn vào tháng 7 năm 2026, là tháng 7.0 thay thế nó trên track đó. Hãy đối chiếu các trang này với kết quả mà uname -r và grep VERSION_ID /etc/os-release in ra trên server của bạn. Chỉ hai nhóm thông tin đó mới mô tả chính xác máy của bạn.
Vì sao kernel enablement hiếm khi hữu ích trên VPS
HWE dành cho phần cứng. Laptop hoặc máy chủ vật lý có NIC (network interface card), bộ điều khiển lưu trữ hoặc GPU mới hơn kernel LTS sẽ không hoạt động đúng cho đến khi có kernel mới hơn. Kernel enablement giải quyết vấn đề đó. Trên phần cứng thật, nó thường là khác biệt giữa một máy hoạt động được và một máy không khởi động được.
VPS thuê không gặp vấn đề này vì nó không nhìn thấy phần cứng đó. Guest chỉ thấy một tập nhỏ các thiết bị ảo, được cố ý giữ ở phiên bản cũ. Hãy kiểm tra VPS của bạn.
sudo apt install -y pciutils
lspci -nnklspci -nnk in từng thiết bị cùng với kernel driver đang được bind vào thiết bị đó ở bên dưới. Trên hầu hết instance VPS, danh sách này ngắn: virtio_net cho network và virtio_blk hoặc virtio_scsi cho disk. Các driver này đã có trong mainline kernel nhiều năm. Thiết bị ảo là một interface ổn định theo chủ đích, vì guest phải tiếp tục hoạt động khi provider chuyển nó sang phần cứng vật lý khác. Vì vậy, lý do khiến người dùng cài kernel enablement phần lớn không tồn tại trên server thuê.
Chi phí của việc này vẫn còn. Mỗi bước enablement đều thêm một kernel binary mới với lần reboot riêng, ngoài các lần reboot bạn vốn đã thực hiện để cài security kernel. Trên một VPS duy nhất không có máy khác để failover, reboot đồng nghĩa với downtime mà bạn phải lên lịch và theo dõi. Live kernel patching có thể loại bỏ một số lần reboot vì security, nhưng không thể loại bỏ lần reboot khi nâng version, vì đó là kernel khác chứ không phải kernel được patch.
Khi nào nên chuyển sang enablement kernel
Có 4 trường hợp mà câu trả lời thực sự là có.
- Hypervisor cung cấp một thiết bị mà kernel của bạn không thể điều khiển. Dấu hiệu rất rõ: interface không xuất hiện trong
ip -brief linkhoặc disk không xuất hiện tronglsblk, dù thiết bị có mặt tronglspci -nnkvà không có dòngKernel driver in use:bên dưới thiết bị đó. - Phần mềm bạn đang chạy yêu cầu phiên bản kernel tối thiểu cao hơn phiên bản hiện tại. Container runtime, database và công cụ eBPF thường có yêu cầu này. So sánh phiên bản tối thiểu do vendor công bố với
uname -rvà tin theo yêu cầu của vendor. - Bạn gặp một bug đã được sửa ở upstream sau phiên bản GA nhưng chưa được backport. Hãy xác nhận bản sửa thực sự có trong phiên bản enablement trước khi chuyển đổi. Nếu không, bạn sẽ phải chấp nhận việc reboot mà vẫn giữ nguyên bug.
- Bạn cần một tính năng filesystem hoặc networking được bổ sung sau phiên bản GA, và tính năng đó là lý do server này tồn tại.
Nếu không trường hợp nào ở trên áp dụng cho server của bạn, GA là lựa chọn đúng. Giữ nguyên phiên bản hiện tại là một quyết định, không phải bỏ bê.
Cách chuyển track và những gì cần kiểm tra sau khi reboot
Trước tiên hãy kiểm tra dung lượng trống. Nếu /boot là một partition riêng có dung lượng nhỏ, việc thêm dòng kernel thứ hai có thể làm đầy partition đó, rồi apt sẽ dừng ở trạng thái cấu hình dở dang với No space left on device.
df -h /boot
sudo apt update
sudo apt install --install-recommends linux-generic-hwe-24.04
ls /boot/vmlinuz-*
sudo rebootKhi máy hoạt động trở lại, hãy xác nhận những gì đã thay đổi và những gì không thay đổi.
uname -r
ip -brief link
lsblk
journalctl -k -b 0 -p err --no-pageruname -r lúc này phải khớp với image mà apt-cache depends linux-image-generic-hwe-24.04 chỉ định. Trên 24.04 hiện tại, điều đó có nghĩa là upstream version cao hơn trước: 7.0 thay cho 6.8. Trên một release mà enablement track chưa chuyển sang version mới, upstream version có thể vẫn giữ nguyên: tính đến 2026-10-21, cả linux-generic và linux-generic-hwe-26.04 trên 26.04 đều phụ thuộc vào 7.0.0-38.38. Danh sách network và disk phải giống hệt trước đó, vì các virtual device vẫn là những device cũ. Interface bị mất là lỗi đáng chú ý duy nhất ở đây, vì thông thường điều đó có nghĩa là chỉ còn truy cập được máy từ provider console. journalctl -k -b 0 -p err in các kernel message của lần boot này ở mức error trở lên (err, crit, alert và emerg); trên một VPS khỏe, kết quả thường trống hoặc gần như trống. Đọc kernel log trên VPS giải thích ý nghĩa của các dòng gây nhiễu. Không xóa kernel cũ ngay trong cùng ngày. Kernel đó là đường quay lại của bạn.
Cách quay lại nếu kernel mới gặp lỗi
Kernel cũ vẫn được cài đặt và vẫn có trong menu GRUB. Mở console của nhà cung cấp, reboot rồi chọn kernel trước đó trong mục "Advanced options for Ubuntu". Làm như vậy một lần để xác nhận kernel cũ vẫn boot được. Để giữ lựa chọn này qua các lần reboot là một việc riêng, được hướng dẫn trong ghim kernel mà VPS sẽ boot. Nếu máy không quay lại và console hiển thị prompt GRUB hoặc kernel panic, VPS không boot được sau khi cập nhật kernel sẽ hướng dẫn quy trình khôi phục.
Sau khi boot vào một kernel hoạt động, hãy đưa các package về trạng thái cũ.
sudo apt install linux-generic
sudo apt remove linux-generic-hwe-24.04 linux-image-generic-hwe-24.04 linux-headers-generic-hwe-24.04
sudo rebootXóa các meta-package sẽ ngăn bước enablement tiếp theo được cài vào. Việc này không xóa kernel image đã cài, nên không có gì thay đổi trong lúc hệ thống đang chạy. Sau khi reboot, xác nhận uname -r lại hiển thị phiên bản GA. sudo apt autoremove --purge xóa một số image cũ nhưng không nhất thiết xóa image bạn vừa rời khỏi. APT luôn giữ kernel đang chạy và kernel mới nhất đã cài, còn enablement image thường là image mới nhất. Sau khi uname -r xác nhận bạn không chạy kernel đó, hãy xóa các package linux-image-, linux-modules- và linux-modules-extra- của phiên bản đó theo tên, sử dụng phiên bản mà dpkg -l 'linux-image-*' hiển thị. Dọn kernel cũ khỏi /boot hướng dẫn trường hợp phức tạp hơn, khi /boot đã đầy trước khi bạn kịp thực hiện bước này.
Có một điểm cuối cùng cần biết: câu hỏi về track sẽ tự được giải quyết ở LTS tiếp theo. Khi chuyển sang LTS tiếp theo, bạn sẽ nhận kernel GA của bản đó. Kernel này mới hơn kernel GA bạn đang chạy và thời gian hỗ trợ cũng được tính lại. Nếu bạn đang cân nhắc các point release vì dự định chuyển sang bản đó, nâng cấp 24.04 lên 26.04 là quy trình cần dùng. Tiếp tục dùng GA cho đến lúc đó là lựa chọn bình thường và có thể chấp nhận được đối với một server thuê.
FAQ
Bản point release có thay đổi kernel trên server tôi đã cài sẵn không?
Không nếu dùng track GA. Point release chủ yếu là image cài đặt được làm mới, nên nó quyết định kernel mà máy mới được build sẽ nhận. Server hiện có vẫn dùng track mà tên meta-package đã cài quy định. Nếu đã cài package linux-...-hwe-..., bước enablement sẽ đến với bạn dưới dạng một bản cập nhật kernel thông thường. Bản cập nhật này được phát hành trước point release tương ứng, và apt upgrade tiếp theo của bạn sẽ cài nó. Kernel mới chỉ bắt đầu chạy sau lần reboot tiếp theo, không phải ngay khi apt cài xong.
Làm thế nào để biết tôi đang chạy kernel HWE hay GA?
Chạy apt-cache policy linux-generic linux-generic-hwe-24.04, thay 24.04 bằng số release của bạn. Package có phiên bản thực trên dòng Installed: là track mà các bản cập nhật của bạn đang theo. Điều này không chứng minh kernel nào đang chạy, vì vậy hãy so sánh uname -r với tên image apt-cache depends linux-image-generic-hwe-24.04. Không cố xác định track chỉ từ uname -r, vì tên kernel đang chạy kết thúc bằng -generic trên cả hai track và không bao giờ chứa hwe. Nếu chưa cài package nào trong hai package đó, hãy chạy apt-mark showmanual | grep '^linux-', vì một số provider image dùng họ linux-image-virtual thay thế.
Kernel HWE có kém ổn định hơn kernel GA không?
Mỗi enablement kernel đều là một Ubuntu kernel được hỗ trợ, nên đây không phải vấn đề về chất lượng. Đây là vấn đề về mức độ thay đổi. Kernel GA giữ nguyên một phiên bản upstream trong nhiều năm, nên hành vi mà bạn đã kiểm thử vẫn ổn định. Enablement kernel chuyển sang phiên bản upstream mới hơn khoảng 6 tháng một lần cho đến khi đạt kernel của LTS tiếp theo. Mỗi lần chuyển như vậy đều có thể làm thay đổi driver default hoặc sysctl trong workload của bạn. Với server ít khi phải can thiệp, ít thành phần thay đổi thường đáng giá hơn driver mới.
VPS của tôi có nên dùng kernel HWE không?
Thường là không. Máy ảo chỉ thấy một tập thiết bị ảo cố định, chủ yếu là virtio. Driver của các thiết bị này đã có trong kernel từ nhiều năm, nên phần hỗ trợ phần cứng mà track enablement cung cấp không đem lại lợi ích cho VPS. Các lần reboot bổ sung vẫn là việc thực tế phải thực hiện. Chỉ chuyển khi có lý do cụ thể: một thiết bị mà kernel hiện tại không điều khiển được, hoặc phần mềm bạn bắt buộc phải chạy yêu cầu phiên bản kernel tối thiểu đã được ghi rõ.
Nếu cài enablement kernel nhưng không bao giờ reboot thì chuyện gì xảy ra?
Kernel image mới được ghi vào /boot và thêm vào menu GRUB, còn server vẫn tiếp tục chạy kernel cũ. uname -r mới cho biết kernel nào đang chạy, không phải danh sách package. Ubuntu tạo /var/run/reboot-required khi một package đã cài cần reboot để có hiệu lực, vì vậy ls -l /var/run/reboot-required cho biết đang chờ reboot. Cho đến khi reboot, bạn vẫn tốn dung lượng đĩa cho kernel mới nhưng chưa nhận được bản sửa lỗi nào của nó.