ELILO
Thật khó cho tôi khi quyết định phần nào trong đó sao chép + dán bởi vì tất cả đều thực sự tốt, vì vậy tôi sẽ chỉ yêu cầu bạn đọc nó.
Rod Smith
Tác giả và duy trì cả hai gdisk
và rEFInd
.
Nhưng trước khi bạn muốn bình luận một chút về nó. Liên kết ELILO ở trên là một trong nhiều trang về việc khởi động UEFI mà bạn sẽ tìm thấy trên Rodbooks.com được viết bởi Rod Smith. Anh ấy là một nhà văn kỹ thuật tài giỏi, và nếu bạn đã từng tìm hiểu về chủ đề khởi động UEFI và cố gắng không đọc thứ gì đó của anh ấy, thì có khả năng là do bạn đã bỏ qua một số kết quả hàng đầu.
Khởi động Linux UEFI
Về cơ bản, nhân Linux có thể được thực thi trực tiếp bởi phần sụn.
Trong liên kết ở trên, ông đề cập đến trình tải sơ khai EFI của nhân Linux - đây là những gì bạn nên sử dụng, theo ý kiến của tôi, vì nó cho phép nhân linux được gọi trực tiếp bởi phần sụn. Bất kể những gì bạn đang làm một cái gì đó đang được thực thi bởi phần sụn - và có vẻ như đó là một cái gì đó grub
. Nếu phần sụn có thể tải trực tiếp kernel os của bạn, bootloader có gì tốt? UEFI firmware gắn kết một FAT định dạng GPT partition gắn cờ đặc biệt bởi bảng phân vùng và thực hiện một con đường đó nó đã lưu lại dưới dạng một biến khởi động UEFI trong một mô-đun bộ nhớ flash trên bo mạch. Vì vậy, một điều bạn có thể làm là đặt kernel linux vào phân vùng FAT đó và lưu đường dẫn của nó vào biến khởi động đó. Đột nhiên hạt nhân là của riêng nó bộ nạp khởi động.
Bộ tải khởi động
Trên các hệ thống UEFI, bộ tải khởi động là dự phòng - bao gồm ELILO.
Bộ tải khởi động vấn đề được thiết kế để giải quyết là các hệ thống BIOS chỉ đọc trong khu vực đầu tiên của phân vùng được gắn cờ khởi động và thực thi nó. Thật khó để làm bất cứ điều gì có ý nghĩa với hạt nhân 512 byte, vì vậy, điều phổ biến cần làm là viết một tiện ích nhỏ có thể gắn kết một hệ thống tập tin nơi bạn giữ hạt nhân thực tế và tải chuỗi hạt nhân.
Trong thực tế, 512 byte thường không đủ ngay cả đối với bộ tải khởi động. grub
, chẳng hạn, thực sự tự tải chuỗi trước khi tải chuỗi hạt nhân của bạn, bởi vì nó kết hợp giai đoạn thứ hai của nó trong khoảng trống giữa khu vực khởi động và khu vực đầu tiên của hệ thống tệp của bạn. Đó là một loại hack bẩn - nhưng nó đã hoạt động.
Bootmanager
Vì lợi ích của cấu hình dễ dàng, một số đi giữa có thể hữu ích.
Những gì rEFInd của Rod Smith làm là khởi chạy dưới dạng một ứng dụng EFI - đây là một khái niệm tương đối mới. Đây là một chương trình được thực thi từ đĩa bằng cách - và trả về - phần sụn. Những gì rEFInd làm là cho phép bạn quản lý các menu khởi động và sau đó trả lại lựa chọn khởi động của bạn cho phần sụn để thực thi. Nó đi kèm với trình điều khiển hệ thống tập tin UEFI - vì vậy, ví dụ, bạn có thể sử dụng trình tải EFI-stub của kernel trên phân vùng không phải là FAT (như hiện tại của bạn /boot
). Thật đơn giản để quản lý - nếu một điều như vậy là cần thiết - và nó bổ sung tính đơn giản của hạt nhân hệ thống thực thi để thuận tiện cho trình khởi động cấu hình.
Nguyên tử
Hạt nhân không cần symlink - nó có thể mount --bind
.
Nếu có bất kỳ đường dẫn trên của bạn /
, nơi bạn nên không cho phép liên kết tượng trưng, đó là /boot
. Một liên kết tượng trưng mồ côi tại /boot
là không loại vấn đề mà bạn cần phải khắc phục sự cố. Tuy nhiên, đó là một thực tế đủ phổ biến để thiết lập các chỉ định phức tạp trong /boot
một số bản phân phối - ngay cả khi đó là một ý tưởng khủng khiếp - để xử lý các cập nhật kernel tại chỗ và / hoặc nhiều cấu hình kernel.
Đây là một vấn đề đối với các hệ thống EFI không được cấu hình để tải trình điều khiển hệ thống tệp (chẳng hạn như được cung cấp với gói rEFInd) vì tổng thể FAT là một hệ thống tệp khá ngu ngốc và nó không hiểu chúng.
Cá nhân tôi không sử dụng trình điều khiển hệ thống tệp UEFI được cung cấp với rEFInd, mặc dù hầu hết các bản phân phối bao gồm gói rEFInd có thể được cài đặt thông qua trình quản lý gói và quên về việc chỉ sử dụng /boot
cấu hình symlinked khủng khiếp của riêng họ và trình điều khiển hệ thống tệp UEFI đóng gói của rEFInd.
Cấu hình của tôi
Tôi đã từng viết một bộ hướng dẫn về nó và đăng nó ở đây , nhưng có vẻ như:
% grep esp /etc/fstab &&
> ls /esp/EFI
LABEL=ESP /esp vfat defaults 0 1
/esp/EFI/arch_root /boot none bind,defaults 0 0
arch_root/ arch_sqsh/ arch_xbmc/ BOOT/ ipxe/
Vì vậy, tôi chỉ cần đặt hai dòng đó vào /etc/fstab
một thư mục mà tôi dự định chứa bản cài đặt linux mới /boot
và tôi gần như đã lo lắng về toàn bộ. Tôi cũng phải làm:
cat /boot/refind_linux.conf
"Arch" "root=LABEL=data rootflags=subvol=arch_root,rw,ssd,compress-force=lzo,space_cache,relatime"
Ngoài việc cài đặt refind-efi
gói thông qua pacman
cho gói đầu tiên, đó là tất cả những gì cần thiết để thiết lập nhiều cài đặt / cấu hình riêng biệt như tôi mong muốn. Lưu ý rằng phần lớn chuỗi đó ở trên bao gồm các tùy chọn gắn kết cụ thể btrfs được chỉ định làm tham số kernel. Một điển hình hơn /boot/refind_linux.conf
có thể sẽ trông giống như:
"Menu Entry" "root=/dev/sda2"
Và đó là tất cả những gì nó cần.
Rodbooks.com
Nếu bạn vẫn muốn ELILO thì bạn có thể tìm thấy hướng dẫn cài đặt tại liên kết ở trên. Nếu bạn muốn rEFI và bạn sẽ tìm thấy các liên kết đến nó trong đoạn đầu tiên ở đó. Về cơ bản nếu bạn muốn thực hiện bất kỳ cấu hình khởi động UEFI nào, trước tiên hãy đọc Rodbooks.com .