Cách tùy chỉnh và biên dịch lại nhân của bạn trên FreeBSD 10.1
Hệ điều hành FreeBSD sử dụng kernelGENERIC
theo mặc định. Đây là cấu hình mặc định được sử dụng để hỗ trợ nhiều loại phần cứng khác nhau. Tuy nhiên, có nhiều lý do khác nhau để biên dịch một nhân tùy chỉnh, bao gồm bảo mật, chức năng nâng cao hoặc hiệu suất tốt hơn. FreeBSD sử dụng hai nhánh mã cho hệ điều hành của nó: ổn định và hiện tại. Ổn định là bản phát hành mã hiện tại đã sẵn sàng production . Hiện tại là bản phát hành mã mới nhất từ group phát triển và có một số tính năng mới nhất nhưng dễ gặp lỗi và không ổn định hệ thống. Hướng dẫn này sẽ sử dụng nhánh ổn định.
Trong hướng dẫn này, ta sẽ biên dịch lại kernel FreeBSD với cấu hình tùy chỉnh.
Yêu cầu
Để làm theo hướng dẫn này, tất cả những gì bạn cần là:
- Một server FreeBSD 10.1.
Nếu bạn chưa quen với FreeBSD, bạn có thể xem loạt bài hướng dẫn Bắt đầu với FreeBSD .
Bước 1 - Lấy mã nguồn
Trong bước này, ta sẽ kéo mã nguồn hệ điều hành.
FreeBSD, giống như nhiều version khác của UNIX, cung cấp mã nguồn cho hệ điều hành của nó để download và sửa đổi công khai. Để biên dịch lại kernel , trước tiên bạn cần lấy mã nguồn này từ hệ thống kiểm soát version của FreeBSD.
Nền tảng FreeBSD sử dụng Subversion cho kho mã của nó, vì vậy trước tiên hãy cài đặt cổng binary của Subversion.
sudo pkg install subversion
Vỏ mặc định cho FreeBSD là tcsh, sử dụng bảng băm bên trong cho các lệnh trong $PATH
. Sau khi cài đặt subversion, bạn nên chia sẻ lại các bảng folder .
rehash
Cuối cùng, kiểm tra một bản sao của nhánh ổn định mới nhất vào folder /usr/src
.
sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src
Bạn có thể được yêu cầu chấp nhận certificate server . Nhập p để chấp nhận sau khi kiểm tra xem dấu fingerprint trùng với dấu fingerprint ở cuối trang này .
Bước 2 - Tạo cấu hình tùy chỉnh của bạn
Trong bước này, ta sẽ tùy chỉnh cấu hình kernel mới của bạn .
Quy ước đặt tên tiêu chuẩn cho các file cấu hình kernel là tên của kernel trong tất cả các chữ hoa. Cấu hình của hướng dẫn này sẽ được gọi là EXAMPLE
. Các file cấu hình kernel nằm trong folder /usr/src/sys/ architecture /conf
; kiến trúc được sử dụng tại DigitalOcean là AMD64.
Thay đổi folder cấu hình.
cd /usr/src/sys/amd64/conf
Tạo và mở file EXAMPLE
để chỉnh sửa bằng ee hoặc editor yêu thích của bạn.
sudo ee EXAMPLE
Bạn có thể tìm thấy cấu hình ví dụ ở đây . Copy paste nội dung vào EXAMPLE
, sau đó lưu file .
Cấu hình kernel mẫu này dành cho bản dựng kernel tối thiểu được điều chỉnh cho một server DigitalOcean. Cụ thể, cấu hình kernel GENERIC
đã hỗ trợ cho rất nhiều phần cứng khác nhau; EXAMPLE
đã xóa tất cả các thiết bị cũ và không cần thiết, chỉ để lại các trình điều khiển thiết bị bắt buộc cần thiết để chạy Server. Ngoài ra còn có hỗ trợ được bật cho firewall lọc gói (pf), định hình lưu lượng (altq), mã hóa hệ thống file (geom_eli) và bảo mật IP (IPsec).
Tuy nhiên, bạn có thể đọc thêm về các tùy chọn cấu hình trong tài liệu FreeBSD và tự mình thử nghiệm!
Bước 3 - Xây dựng và cài đặt nhân mới của bạn
Trong bước này, ta sẽ bắt đầu biên dịch lại kernel .
Thay đổi trở lại folder /usr/src
và make buildkernel
bằng cách sử dụng file cấu hình mới của bạn.
cd /usr/src sudo make buildkernel KERNCONF=EXAMPLE
Quá trình này có thể mất một chút thời gian tùy thuộc vào lượng tài nguyên bạn sử dụng cho Server của bạn . Thời gian trung bình trên 1 GB Server là khoảng 90 phút.
Khi quá trình biên dịch lại kernel của bạn đã hoàn tất, đã đến lúc bắt đầu cài đặt.
sudo make installkernel KERNCONF=EXAMPLE
Khi điều đó hoàn tất, hãy khởi động lại hệ thống của bạn.
sudo shutdown -r now
Server của bạn bây giờ sẽ bắt đầu tắt các dịch vụ hiện đang chạy, đồng bộ hóa các đĩa của nó và khởi động lại vào kernel mới của bạn. Bạn có thể đăng nhập vào console Server của bạn để xem quá trình khởi động.
Sau khi server của bạn khởi động lại, hãy đăng nhập lại. Bạn có thể kiểm tra xem cấu hình kernel mới của bạn có đang được sử dụng hay không bằng lệnh sau:
sysctl kern.conftxt | grep ident
Đầu ra phải là:
ident EXAMPLE
Kết luận
Xin chúc mừng! Bạn đã cấu hình lại thành công và biên dịch lại kernel của bạn .
Các tin liên quan