Lệnh lilo trong Linux

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:

  1. 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.
  2. Sửa đổi tham số image để trỏ đến vị trí kernel image chính xác, thường là /boot/vmlinuz.
  3. 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".
  4. Đ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ố imageinitrd đ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.

400+ câu lệnh phổ biến trong Linux