Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh lilo (Linux Loader), một boot loader được sử dụng để tải hệ điều hành Linux. Chúng ta sẽ học cách cấu hình lilo boot loader và khắc phục mọi sự cố có thể phát sinh. Lab này bao gồm giới thiệu về lệnh lilo, cấu hình lilo boot loader và khắc phục sự cố lilo, cung cấp các ví dụ thực tế trong suốt quá trình.
Giới thiệu về lệnh lilo
Trong bước này, chúng ta sẽ khám phá lệnh lilo (Linux Loader), một boot loader được sử dụng để tải hệ điều hành Linux. Lệnh lilo chịu trách nhiệm tải kernel và initial RAM disk (initrd) trong quá trình khởi động.
Đầu tiên, hãy kiểm tra phiên bản của lệnh lilo được cài đặt trên container Ubuntu 22.04 Docker của chúng ta:
sudo lilo -V
Ví dụ đầu ra:
lilo version 22.8.1 (2015-05-11)
Lệnh lilo được sử dụng để cài đặt và cấu hình boot loader trên hệ thống. Nó đọc tệp cấu hình boot loader, thường nằm tại /etc/lilo.conf
và cập nhật các sector khởi động trên đĩa một cách phù hợp.
Để xem cấu hình lilo hiện tại, chúng ta có thể sử dụng lệnh sau:
sudo cat /etc/lilo.conf
Ví dụ đầu ra:
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz
label=linux
read-only
root=/dev/sda1
Tệp cấu hình này chỉ định vị trí của kernel image, hệ thống tệp root và các tùy chọn khởi động khác.
Bây giờ, hãy khám phá một số lệnh lilo cơ bản:
sudo lilo
: Lệnh này cập nhật các sector khởi động trên đĩa dựa trên tệp cấu hình.sudo lilo -t
: Lệnh này thực hiện chạy thử lệnh lilo mà không thực sự cập nhật các sector khởi động.sudo lilo -v
: Lệnh này chạy lilo ở chế độ verbose, cung cấp đầu ra chi tiết hơn.
Trong bước tiếp theo, chúng ta sẽ học cách cấu hình lilo boot loader.
Cấu hình lilo Boot Loader
Trong bước này, chúng ta sẽ học cách cấu hình lilo boot loader trên container Ubuntu 22.04 Docker của chúng ta.
Đầu tiên, hãy tạo bản sao lưu của tệp cấu hình lilo hiện tại:
sudo cp /etc/lilo.conf /etc/lilo.conf.bak
Bây giờ, hãy mở tệp cấu hình lilo bằng trình soạn thảo văn bản nano:
sudo nano /etc/lilo.conf
Trong tệp cấu hình, chúng ta có thể thực hiện các thay đổi sau:
- Cập nhật tham số
boot
để trỏ đến thiết bị khởi động chính xác, thường là/dev/sda
cho hệ thống một đĩa. - Sửa đổi tham số
image
để trỏ đến vị trí kernel image chính xác, thường là/boot/vmlinuz
. - Cập nhật tham số
label
thành một tên mô tả cho mục khởi động, chẳng hạn như "Ubuntu 22.04". - Điều chỉnh tham số
timeout
để đặt số giây mà boot loader sẽ đợi trước khi tự động khởi động mục mặc định.
Đây là một ví dụ cấu hình:
boot=/dev/sda
map=/boot/map
install=/boot/boot.b
prompt
timeout=10
image=/boot/vmlinuz
label=Ubuntu 22.04
read-only
root=/dev/sda1
Sau khi thực hiện các thay đổi, hãy lưu tệp và thoát khỏi trình soạn thảo nano.
Tiếp theo, chúng ta cần cập nhật các sector khởi động trên đĩa với cấu hình mới:
sudo lilo
Lệnh này sẽ cập nhật các sector khởi động dựa trên các thay đổi được thực hiện trong tệp /etc/lilo.conf
.
Cuối cùng, hãy xác minh cấu hình lilo đã được cập nhật:
sudo cat /etc/lilo.conf
Bạn sẽ thấy những thay đổi bạn đã thực hiện trong tệp cấu hình.
Bây giờ, lilo boot loader đã được cấu hình và sẵn sàng để sử dụng.
Khắc phục sự cố lilo
Trong bước cuối cùng này, chúng ta sẽ khám phá một số vấn đề phổ biến có thể phát sinh với lilo boot loader và học cách khắc phục chúng.
Một vấn đề phổ biến là khi lilo boot loader không cập nhật các sector khởi động một cách chính xác. Điều này có thể xảy ra nếu tệp cấu hình chứa lỗi hoặc nếu thiết bị khởi động không thể truy cập được.
Để khắc phục sự cố này, trước tiên chúng ta có thể kiểm tra tệp nhật ký lilo để tìm bất kỳ thông báo lỗi nào:
sudo tail -n 20 /var/log/lilo.log
Lệnh này sẽ hiển thị 20 dòng cuối cùng của tệp nhật ký lilo, có thể cung cấp manh mối về vấn đề.
Nếu tệp nhật ký không chứa bất kỳ thông tin hữu ích nào, chúng ta có thể thử chạy lilo ở chế độ verbose để nhận được đầu ra chi tiết hơn:
sudo lilo -v
Lệnh này sẽ cung cấp thông tin chi tiết hơn về các hoạt động của lilo boot loader, có thể giúp xác định nguyên nhân gốc rễ của vấn đề.
Một vấn đề phổ biến khác là khi lilo boot loader không tải được kernel hoặc initial RAM disk (initrd). Điều này có thể xảy ra nếu tệp cấu hình trỏ đến các đường dẫn tệp sai hoặc nếu các tệp bị thiếu hoặc bị hỏng.
Để khắc phục sự cố này, chúng ta có thể kiểm tra nội dung của tệp cấu hình lilo và đảm bảo rằng các tham số image
và initrd
đang trỏ đến các đường dẫn tệp chính xác:
sudo cat /etc/lilo.conf
Nếu các đường dẫn tệp là chính xác, chúng ta có thể thử khởi động hệ thống bằng Live CD/USB và kiểm tra tính toàn vẹn của các tệp kernel và initrd.
Cuối cùng, nếu bạn vẫn không thể giải quyết được sự cố, bạn có thể thử cài đặt lại lilo boot loader:
sudo apt update
sudo apt-get install --reinstall lilo
Lệnh này sẽ cài đặt lại gói lilo và có thể giúp giải quyết mọi vấn đề tiềm ẩn.
Bằng cách làm theo các bước khắc phục sự cố này, bạn sẽ có thể xác định và giải quyết hầu hết các vấn đề liên quan đến lilo phổ biến.
Tóm tắt
Trong lab này, trước tiên chúng ta đã khám phá lệnh lilo (Linux Loader), một boot loader được sử dụng để tải hệ điều hành Linux. Chúng ta đã học cách kiểm tra phiên bản của lệnh lilo và xem tệp cấu hình lilo hiện tại. Chúng ta cũng đã đề cập đến một số lệnh lilo cơ bản, chẳng hạn như cập nhật các sector khởi động và chạy thử.
Tiếp theo, chúng ta đã học cách cấu hình lilo boot loader bằng cách tạo bản sao lưu của tệp cấu hình hiện tại và thực hiện các thay đổi đối với tệp /etc/lilo.conf
, chẳng hạn như cập nhật thiết bị khởi động và các tham số kernel. Sau đó, chúng ta đã thảo luận về tầm quan trọng của việc cập nhật các sector khởi động sau khi thực hiện các thay đổi đối với tệp cấu hình.