gentoo 9

Gentoo Logo

[ << ] [ < ] [ Về đầu ] [ > ] [ >> ]

10. Cấu hình Bootloader

Nội dung:

* Chọn lựa

* Mặc định: Dùng GRUB

* Thay thế: Dùng LILO

* Khởi động lại hệ thống

10.a. Chọn lựa

Giới thiệu

Kernel của bạn đã được cấu hình, biên dịch và các tập tin cấu hình cần thiết đã sẵn sàng. Giờ là lúc để cài đặt chương trình để khởi động kernel khi bạn khởi động hệ thống. Chương trình đó gọi là bootloader. Với x86, Gentoo Linux cung cấp GRUB và LILO. Nhưng trước khi bắt đầu cài đặt một trong hai bootloader, chúng tôi sẽ cho bạn biết cách cấu hình framebuffer (dĩ nhiên giả định rằng bạn muốn có framebuffer). Với framebuffer, bạn có thể chạy lệnh Linux với một số tính năng đồ hoạ (giới hạn) (như bootsplash).

Tùy chọn: Framebuffer

Nếu bạn đã cấu hình kernel hỗ trợ framebuffer (hoặc dùng cấu hình mặc định của genkernel), bạn có thể kích hoạt nó bằng cách thêm lệnh vga và/hoặc video vào tập tin cấu hình bootloader.

Trước hết bạn cần biết loại framebuffer đang dùng. Nếu bạn dùng kernel của Gentoo (vd, gentoo-sources), bạn có thể chọn vesafb-tng (Driver VESA, mặc định cho những kernel này). Nếu bạn rơi vào trường hợp này, bạn đang dùng vesafb-tng và không cần đặt lệnh vga. Nếu không, bạn đang dùng vesafb và cần đặt vga.

Lệnh vga điều khiển độ phân giải và số lượng màu của framebuffer vesafb. Như đề cập trong /usr/src/linux/Documentation/fb/vesafb.txt (nằm trong gói kernel source), bạn cần truyền số VESA tương ứng với độ phân giải và số lượng màu bạn chọn.

Bảng sau liệt kê nhưng độ phân giải và số lượng màu kèm theo con số cần truyền cùng với lệnh vga.

640x480 800x600 1024x768 1280x1024

256 0x301 0x303 0x305 0x307

32k 0x310 0x313 0x316 0x319

64k 0x311 0x314 0x317 0x31A

16M 0x312 0x315 0x318 0x31B

Lệnh video điều khiển các tùy chọn framebuffer. Nó cần framebuffer driver (vesafb cho kernel 2.6, vesa cho kernel 2.4) theo sau bởi những lệnh bạn muốn bật. Mọi biến được liệt kê trong /usr/src/linux/Documentation/fb/vesafb.txt, nhưng chúng tôi sẽ liệt kê ba tùy chọn thường dùng nhất:

Lệnh Mô tả

ywrap Giả định card màn hình của bạn "wrap memory" (vd, tiếp tục ở đầu khi nó tiến đến cuối)

mtrr Thiết lập thanh ghi MTRR

mode (chỉ với vesafb-tng)

Thiết lập độ phân giải, số lượng màu và refresh rate. Ví dụ, 1024x768-32@85 cho độ phân giải 1024x768, 32 bit màu và refresh rate 85 Hz.

Kết quả của lệnh là những cái giống như vga=0x318 video=vesafb:mtrr,ywrap hoặc video=vesafb:mtrr,ywrap,1024x768-32@85. Hãy nhớ (hoặc ghi ra) giá trị của bạn; bạn sẽ cần nó chốc nữa.

Giờ hãy tiếp tục cài đặt GRUB hoặc LILO.

10.b. Mặc định: Dùng GRUB

Thuật ngữ của GRUB

Phần quan trọng nhất để có thể dùng GRUB là làm quen với cách GRUB đặt tên cho các ổ cứng và các phân vùng ổ đĩa. Phân vùng Linux của bạn /dev/hda1 được gọi là (hd0,0) trong GRUB. Chú ý dấu ngoặc vòng quanh hd0,0 - chúng bắt buộc phải có.

Ổ cứng được đếm từ không thay vì "a" và các phân vùng được đếm từ không thay vì một. Chú ý rằng với các thiết bị hd, chỉ có ổ cứng là được đếm, không có các thiết bị atapi-ide như cdrom hay cd-burner. Ngoài ra, các thiết bị scsi cũng dùng theo cùng cách đặt tên như vậy. (Bình thường chúng có số lớn hơn số các ổ ide trừ khi cấu hình bios để khởi động từ thiết bị scsi.) Khi bạn yêu cầu BIOS khởi động từ một ổ cứng khác (ví dụ, ổ slave), ổ cứng đó được xem là hd0.

Giả sử bạn có ổ cứng /dev/hda, ổ cdrom /dev/hdb, cd-burner /dev/hdc, một ổ cứng phụ /dev/hdd và không có ổ cứng SCSI, /dev/hdd7 là (hd1,6). Nó có vẻ phức tạp, và thực sự là nó phức tạp. Nhưng bạn sẽ thấy, GRUB cung cấp tính năng tab completion nhờ đó bạn có thể dễ dàng tìm ra các ổ đĩa và phân vùng ổ đĩa.

Sau khi đã làm quen với điều này, đã đến lúc cài đặt GRUB.

Cài đặt GRUB

Để cài đặt GRUB, trước hết hãy emerge nó:

Mã 2.1: Cài đặt GRUB

# emerge grub

Mặc dù GRUB đã nằm trên hệ thống, chúng ta vẫn cần tạo tập tin cấu hình cho nó và đặt GRUB vào MBR để GRUB có thể tự động khởi động với kernel vừa tạo. Hãy tạo /boot/grub/grub.conf bằng nano (hoặc bằng trình soạn thảo khác nếu muốn):

Mã 2.2: Tạo /boot/grub/grub.conf

# nano -w /boot/grub/grub.conf

Giờ chúng ta sẽ viết grub.conf. Dưới đây là hai grub.conf mẫu dành cho cách phân vùng ví dụ của tài liệu này. Chỉ có grub.conf đầu tiên được ghi chú đầy đủ. Hãy kiểm tra để đảm bảo bạn ghi đúng tên kernel image của bạn, và nếu có thể initrd image của bạn.

* grub.conf đầu tiên dành cho những người không dùng genkernel để tạo kernel

* grub.conf thứ hai dành cho những người dùng genkernel để tạo kernel

Ghi chú: Nếu hệ tập tin gốc của bạn là JFS, bạn phải thêm "ro" vào dòng kernel vì JFS cần replay log của nó trước khi được phép mount dạng đọc-ghi.

Mã 2.3: grub.conf cho người dùng không dùng genkernel

# Dùng cái nào để khởi động mặc định.

# 0 là cái đầu tiên, 1 là cái thứ hai...

default 0

# Chờ bao nhiêu giây trước khi khởi động bằng cái mặc định.

timeout 30

# splash-image

# Bỏ dòng này nếu bạn không có card đồ họa

splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.12-r10

# Phân vùng chứa kernel image (hoặc hệ điều hành)

root (hd0,0)

kernel /kernel-2.6.12-gentoo-r10 root=/dev/hda3

# Bốn dòng kế chỉ được dùng nếu bạn khởi động kép với Windows.

# Trong trường hợp này, giả định Windows nằm trên /dev/hda6.

title=Windows XP

rootnoverify (hd0,5)

makeactive

chainloader +1

Mã 2.4: grub.conf cho người dùng genkernel

default 0

timeout 30

splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.12-r10

root (hd0,0)

kernel /kernel-genkernel-x86-2.6.12-gentoo-r10 root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev

initrd /initramfs-genkernel-x86-2.6.12-gentoo-r10

# Chỉ khi bạn khởi động kép với Windows

title=Windows XP

rootnoverify (hd0,5)

makeactive

chainloader +1

Ghi chú: Cần có udev ở cuối dòng kernel để khắc phục một số lỗi trong vài phiên bản genkernel nếu bạn dùng udev lần đầu tiên.

Ghi chú: Nếu bạn dùng cách phân vùng khác và/hoặc kernel image khác, hãy điều chỉnh lại cho thích hợp. Tuy nhiên hãy nhớ dùng quy ước ghi ổ đĩa/phân vùng của GRUB (như (hd0,0)) và đường dẫn tính theo mountpoint, không phải theo thư mục gốc. Nói cách khác, (hd0,0)/grub/splash.xpm.gz thực sự là /boot/grub/splash.xpm.gz vì (hd0,0) là /boot.

Ngoài ra nếu bạn chọn cách phân vùng khác và không cho /boot vào một phân vùng riêng thì cần thiết phải cho tiếp đầu ngữ /boot vào đoạn code mẫu ở trên. Nếu bạn làm theo cách phân vùng được đề nghị trong tài liệu này thì không cần phải làm như vậy, nhưng do có symlink /boot nên vẫn chạy tốt. Nói tóm lại, nếu làm dùng đoạn code mẫu trên, nó sẽ chạy bất kể /boot có phải là một phân vùng riêng hay không.

Nếu bạn cần truyền thêm các tùy chọn bổ sung cho kernel, chỉ cần thêm nó vào đuôi lệnh kernel. Chúng ta đã truyền một tùy chọn (root=/dev/hda3 hoặc real_root=/dev/hda3), nhưng bạn có thể truyền thêm các tùy chọn khác. Trong ví dụ sau chúng tôi dùng lệnh vga và/hoặc video để hỗ trợ framebuffer (đã thảo luận ở trên).

Nếu bạn dùng kernel 2.6.7 hoặc mới hơn và bạn đã cài lại jumper của ổ cứng ví BIOS không thể xử lý ổ cứng lớn, bạn cần thêm hdx=stroke.

Người dùng genkernel nên biết rằng kernel của họ dùng cùng các tùy chọn khởi động như của CD Cài đặt. Ví dụ, nếu bạn có thiết bị SCSI, bạn nên thêm doscsi làm tùy chọn kernel.

Giờ hãy lưu grub.conf lại và thoát. Bạn vẫn cần cài đặt GRUB làm MBR (Master Boot Record) để GRUB tự động được thực hiện khi bạn khởi động hệ thống.

GRUB developer khuyên nên dùng grub-install. Tuy nhiên, nếu vì lý do nào đó grub-install không hoạt động, bạn vẫn có thể cài đặt GRUB bằng tay.

Hãy tiếp tục với Mặc định: Cài GRUB bằng grub-install hoặc Thay thế: Cài GRUB bằng tay.

Mặc định: Cài GRUB bằng grub-install

Để cài đặt GRUB, bạn cần gọi lệnh grub-install. Tuy nhiên, grub-install sẽ không hoạt động nếu bạn nằm trong môi trường chroot. Trước hết chúng ta cần cập nhật /etc/mtab (tập tin chứa thông tin về các hệ tập tin được mount): rất dễ dàng để làm điều này, chỉ cần chép /proc/mounts sang /etc/mtab, loại bỏ dòng rootfs nếu bạn không tạo một phân vùng riêng cho phân vùng khởi động. Lệnh sau sẽ hoạt động trong mọi trường hợp:

Mã 2.5: Cập nhật /etc/mtab

# grep -v rootfs /proc/mounts > /etc/mtab

Giờ chúng ta có thể cài đặt GRUB bằng grub-install:

Mã 2.6: Chạy grub-install

# grub-install /dev/hda

Nếu bạn có thắc mắc về GRUB, vui lòng tham khảo GRUB FAQ hoặc GRUB Manual.

Ghi chú: Khi bạn cài đặt lại kernel, bạn không cần chép tập tin lần nữa. Chỉ cần chạy make install sau khi biên dịch kernel, nó sẽ tự động chép những tập tin cần thiết và điều chỉnh cấu hình GRUB.

Hãy tiếp tục với Khởi động lại hệ thống.

Thay thế: Cài GRUB bằng tay

Để bắt đầu cài đặt GRUB, hãy gõ grub. Bạn sẽ thấy dấu nhắc grub grub>. Giờ bạn có thể gõ các lệnh để cài đặt GRUB vào ổ cứng.

Mã 2.7: Khởi động GRUB shell

# grub

Ghi chú: Nếu hệ thống của bạn không có ổ đĩa mềm, hãy thêm tùy chọn --no-floppy vào lệnh trên để tránh grub dò tìm những ổ đĩa mềm (không hề có).

Trong cấu hình ví dụ, chúng ta muốn cài đặt GRUB để nó đọc thông tin từ partition khởi động /dev/hda1, và cài đặt GRUB boot record và MBR (master boot record) của ổ cứng để chúng ta có thể thấy dấu nhắc grub mỗi lần khởi động máy. Dĩ nhiên, nếu bạn không dùng chính xác cấu hình như ví dụ thì bạn phải điều chỉnh lại các lệnh cho phù hợp.

Tính năng tab completion của GRUB có thể được dùng bên trong GRUB. Ví dụ, nếu bạn gõ "root (" và nhấn TAB, bạn sẽ thấy danh sách các thiết bị (như hd0). Nếu bạn gõ " root (hd0," và nhấn TAB, bạn sẽ thấy danh sách các phân vùng của thiết bị được chọn (như hd0,0).

Bằng cách dùng tab completion, cài đặt GRUB sẽ trở nên không quá khó. Giờ hãy tiếp tục cài đặt GRUB nhé? :-)

Mã 2.8: Cài GRUB vào MBR

grub> root (hd0,0) (Xác định vị trí phân vùng /boot)

grub> setup (hd0) (Cài GRUB vào MBR)

grub> quit (Thoát GRUB shell)

Ghi chú: Nếu bạn cài GRUB vào một phân vùng khác thay vì MBR, bạn cần thay thế lệnh setup để nó trỏ đến phân vùng bạn chọn. Ví dụ, nếu bạn muốn cài GRUB vào /dev/hda3, vậy hãy dùng setup (hd0,2). Vài người dùng sẽ muốn thực hiện điều này.

Nếu bạn có thắc mắc về GRUB, hãy tham khảo GRUB FAQ hoặc GRUB Manual.

Ghi chú: Khi bạn cài lại kernel, bạn không cần chép lại các tập tin nữa. Chỉ cần chạy make install sau khi biên dịch kernel; nó sẽ tự động chép những tập tin cần thiết và điều chỉnh cấu hình GRUB.

Hãy tiếp tục với Khởi động lại hệ thống.

10.c. Thay thế: Dùng LILO

Cài đặt LILO

LILO, LInuxLOader, là một trong những bootloader đầu tiên cho Linux. Tuy nhiên nó thiếu vài tính năng GRUB có (vì thế nên GRUB trở nên phổ biến hơn). Lý do LILO vẫn được dùng là, trên vài hệ thống, GRUB không hoạt động còn LILO thì hoạt động. Dĩ nhiên, nó còn được dùng vì nhiều người quen LILO và muốn dùng nó. Dù gì đi nữa, Gentoo hỗ trợ cả hai, và bạn có thể chọn LILO nếu thích.

Cài đặt LILO thật dễ dàng, chỉ cần dùng emerge.

Mã 3.1: Cài đặt LILO

# emerge lilo

Cấu hình LILO

Để cấu hình LILO, bạn phải tạo /etc/lilo.conf. Hãy mở trình soạn thảo của bạn (tài liệu này dùng nano cho thống nhất) và tạo tập tin này.

Mã 3.2: Tạo /etc/lilo.conf

# nano -w /etc/lilo.conf

Trong phần trước, chúng tôi yêu cầu bạn nhớ tên kernel-image bạn tạo. Trong ví dụ lilo.conf kế, chúng tôi cũng dùng cách phân vùng cũ đã được giới thiệu trước đây. Có hai phần riêng biệt:

* Một phần cho những người không dùng genkernel để tạo kernel

* Một phần cho những người dùng genkernel để tạo kernel

Hãy đảm bảo dùng đúng tên kernel image của bạn và tên initrd image của bạn (nếu có).

Ghi chú: Nếu hệ tập tin gốc của bạn là JFS, bạn phải thêm append="ro" vào dòng kernel vì JFS cần replay log của nó trước khi được phép mount dạng đọc-ghi.

Mã 3.3: Ví dụ /etc/lilo.conf

boot=/dev/hda # Cài LILO vào MBR

prompt # Cho người dùng cơ hội lựa chọn

timeout=50 # Chờ 5 (năm) giây trước khi khởi động mặc định

default=gentoo # Khi hết hạn chờ, khởi động phần "gentoo"

# Người dùng không dùng genkernel

image=/boot/kernel-2.6.12-gentoo-r10

label=gentoo # Tên phần này

read-only # Thư mục gốc dạng read-only. Đừng sửa!

root=/dev/hda3 # Vị trí hệ tập tin gốc

# Người dùng genkernel

image=/boot/kernel-genkernel-x86-2.6.12-gentoo-r10

label=gentoo

read-only

root=/dev/ram0

append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"

initrd=/boot/initramfs-genkernel-2.6.12-gentoo-r10

# Hai dòng kế chỉ dung với người dùng khởi động kép với Windows.

# Giả sử Windows nằm trên /dev/hda6.

other=/dev/hda6

label=windows

Ghi chú: Cần có udev ở cuối dòng kernel để khắc phục một số lỗi trong vài phiên bản genkernel nếu bạn dùng udev lần đầu tiên.

Ghi chú: Nếu bạn dùng cách phân vùng khác và/hoặc kernel image khác, hãy điều chỉnh lại cho thích hợp.

Nếu bạn cần truyền các tùy chọn bổ sung cho kernel, hãy thêm lệnh append vào phần được chọn. Ví dụ, chúng tôi thêm lệnh video để hỗ trợ framebuffer:

Mã 3.4: Dùng append để thêm tùy chọn kernel

image=/boot/kernel-2.6.12-gentoo-r10

label=gentoo

read-only

root=/dev/hda3

append="video=vesafb:mtrr,ywrap,1024x768-32@85"

Nếu bạn dùng kernel 2.6.7 hoặc mới hơn và bạn đã cài lại jumper của ổ cứng ví BIOS không thể xử lý ổ cứng lớn, bạn cần thêm hdx=stroke.

Người dùng genkernel nên biết rằng kernel của họ dùng cùng các tùy chọn khởi động như của CD Cài đặt. Ví dụ, nếu bạn có thiết bị SCSI, bạn nên thêm doscsi làm tùy chọn kernel.

Giờ hãy lưu tập tin lại và thoát. Để hoàn tất, bạn phải chạy /sbin/lilo để càu LILO vào hệ thống theo những thông số trong /etc/lilo.conf. Nhớ rằng bạn phải chạy lại /sbin/lilo mỗi khi bạn cài đặt kernel mới hoặc thay đổi /etc/lilo.conf.

Mã 3.5: Hoàn tất cài đặt LILO

# /sbin/lilo

Ghi chú: Khi bạn cài lại kernel, bạn không cần chép lại các tập tin nữa. Chỉ cần chạy make install sau khi biên dịch kernel; nó sẽ tự động chép những tập tin cần thiết và điều chỉnh cấu hình LILO.

Bạn có thể tiếp tục với Khởi động lại hệ thống.

10.d. Khởi động lại hệ thống

Hãy thoát khỏi môi trường chroot và unmount toàn bộ các phân vùng. Sau đó gõ lệnh bạn đã đợi từ lâu: reboot.

Mã 4.1: Thoát khỏi chroot, unmount toàn bộ phân vùng và khởi động lại

# exit

cdimage ~# cd

cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo

cdimage ~# reboot

Nhớ lấy đĩa CD ra, nếu không hệ thống sẽ lại khởi động từ CD lần nữa thay vì phải khởi động hệ thống Gentoo mới của bạn.

Một khi đã khởi động bản cài đặt Gentoo của bạn, hãy hoàn tất việc cài đặt với Hoàn tất cài đặt Gentoo.

[ << ] [ < ] [ Về đầu ] [ > ] [ >> ]

Tài liệu này sử dụng giấy phép Creative Commons - Attribution / Share Alike.

Bản in

View all

Cập nhật 16 Tháng hai 2006

The original version of this document was last updated April 15, 2009

Tóm tắt: Có vài bootloader cho kiến trúc x86. Mỗi cái có cách cấu hình riêng. Chúng tôi sẽ hướng dẫn từng bước việc cấu hình bootloader theo nhu cầu của bạn.

Sven Vermeulen

Author

Roy Marples

Author

Daniel Robbins

Author

Chris Houser

Author

Jerry Alexandratos

Author

Seemant Kulleen

Gentoo x86 Developer

Tavis Ormandy

Gentoo Alpha Developer

Jason Huebel

Gentoo AMD64 Developer

Guy Martin

Gentoo HPPA developer

Pieter Van den Abeele

Gentoo PPC developer

Joe Kallar

Gentoo SPARC developer

John P. Davis

Editor

Pierre-Henri Jondot

Editor

Eric Stockbridge

Editor

Rajiv Manglani

Editor

Jungmin Seo

Editor

Stoyan Zhekov

Editor

Jared Hudson

Editor

Colin Morey

Editor

Jorge Paulo

Editor

Carl Anderson

Editor

Jon Portnoy

Editor

Zack Gilburd

Editor

Jack Morgan

Editor

Benny Chuang

Editor

Erwin

Editor

Joshua Kinard

Editor

Tobias Scherbaum

Editor

Xavier Neys

Editor

Grant Goodyear

Reviewer

Gerald J. Normandin Jr.

Reviewer

Donnie Berkholz

Reviewer

Ken Nowack

Reviewer

Lars Weiler

Contributor

Nguyễn Thái Ngọc Duy

Translator

Donate to support our development efforts.

Support OSL

Gentoo Centric Hosting: vr.org

Tek Alchemy

SevenL.net

Global Netoptex Inc.

Bytemark

Online Kredit Index

Copyright 2001-2009 Gentoo Foundation, Inc. Questions, Comments? Contact us.

Bạn đang đọc truyện trên: AzTruyen.Top

Tags: #gentoo