歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux手冊-關於如何配置啟動工具

Linux手冊-關於如何配置啟動工具

日期:2017/2/25 10:39:19   编辑:Linux教程
  既然你的內核已經配置和編譯好,必須的系統配置文件也已經正確的寫好,該到為開機啟動linux內核安裝一個程序。這樣一個程序叫做啟動程序。對於x86架構來說,Gentoo Linux提供了GRUB和LILO。但是在我們安裝其中之一時,我們首先告訴你怎樣配置framebuffer(以防你需要它)。有了framebuffer,你可以在(有限的)有圖形化性能(如使用Gentoo提供的漂亮的bootsplash圖像)下運行Linux命令行。
  可選:Framebuffer
  如果你已經為你的內核配置好framebuffer支持(或者你使用genkernel的默認內核配置),如果要使用framebuffer,你還必須添加一個vga語句到你的啟動程序配置文件。下面這個表給出了你可以使用的vga值。在這個配置例子中,我們使用800x600 @ 16bpp,也就是788。
  640x480 800x600 1024x768 1280x1024
  8 bpp 769 771 773 775
  16 bpp 785 788 791 794
  32 bpp 786 789 792 795
  記住(或者寫下)你需要的值,後面一會兒你就會需要它。
  現在從安裝GRUB或者LILO繼續。
  9.b. 默認:使用GRUB
  理解GRUB的專有名詞
  理解GRUB最嚴格的一部分是熟悉GRUB怎樣引用磁盤驅動器和分區。你的Linux分區/dev/hda1在GRUB下叫做(hd0,0)。注意,在hd0,0周圍的括號是必須的。
  磁盤驅動器是從0開始計數而不是“a”,分區是從0開始計數而不是1。我們也注意到hd設備,只是算上硬盤,而不包括atapi-ide設備,如CDROM光驅和刻錄機。同樣的結構也適用於scsi驅動器。(一般情況下,它們的計數會比ide設備高,除非在bios裡設定從scsi設備啟動。)
  假設你有一個磁盤驅動器在/dev/hda,一個CDROM播放器在/dev/hdb,一個刻錄機在/dev/hdd,沒有SCSI磁盤驅動器;那麼/dev/hdd7在這裡就會翻譯為(hd1,6)。這看起來很搞笑,但它確實如此,但是我們也可看到,GRUB提供了一個tab補全機制,這對有很多磁盤驅動器又被GRUB的計數理論所迷惑的人來說很方便。
  我們感受完這些後,該到安裝GRUB的時候了。
  安裝GRUB
  安裝GRUB之前首先emerge這個軟件包:
  代碼 1: 安裝GRUB
  # emerge grub
  輸入grub開始配置GRUB。你將會到一個grub>命令提示符下。現在,你需要輸入正確的命令來安裝GRUB啟動記錄到硬盤上。
  代碼 2: 開始GRUB shell
  # grub
  注釋: 如果你的系統沒有任何軟盤驅動器,在上個命令下添加--no-floppy選項,防止grub檢測(不存在的)軟盤驅動器。
  在這個配置例子中,我們安裝GRUB後,它將從boot分區/dev/hda1讀出它的信息,把GRUB的啟動記錄安裝到MBR上,這樣我們打開電腦立刻看到的就是GRUB提示符。當然,如果你在安裝過程中沒有根據配置例子中所做的安裝,需要類似的改變一下命令。
  GRUB的tab補全機制可以在GRUB裡使用。比如說,你輸入“root (”再加上一個Tab鍵,你將會看到一個設備列表(如hd0)。如果你輸入“root (hd0,”再加上一個Tab鍵,你將會得到所存在的分區列表供你選擇(如hd0,0)。
  通過使用tab補全,設置GRUB應該不會那麼難了。現在,讓我們繼續配置GRUB:-)
  代碼 3: Installing GRUB in the MBR
  grub> root (hd0,0) (指出你的/boot分區的位置)
  grub> setup (hd0) (安裝GRUB到MBR)
  grub> quit (退出GRUB shell)
  注釋: 如果你要安裝GRUB到一個特定的分區,而不是MBR,你需要相對應的改變setup命令,使其指向正確的分區。比如說,如果你要安裝GRUB到/dev/hda3,那麼這個命令就變成setup (hd0,2)。不過很少有用戶需要這樣做。
  雖然GRUB現在已經裝上了,我們仍然需要給它寫一份配置文件,這樣GRUB會自動啟動你最新建的內核。用nano(如果可以,也可用其他的編輯器)創建文件/boot/grub/grub.conf:
  代碼 4: 創建/boot/grub/grub.conf
  # nano -w /boot/grub/grub.conf
  現在我們繼續寫一份grub.conf。在下面你將會發現有兩個這個例子可用的grub.conf,內核鏡像是kernel-2.4.25-gentoo。我們只對第一個grub.conf詳細注解一下。
  第一個grub.conf適用於沒有使用genkernel來編譯內核的用戶。
  第二個grub.conf適用於使用genkernel來編譯內核的用戶。
  代碼 5: 適用於非genkernel用戶的grub.conf
  # 這個列出默認的啟動選項,0表示第一個,1表示第二個等等。
  default 0
  # 默認列表啟動前需要等待的秒數。
  timeout 30
  # 非常漂亮和大的splash圖像來增加點情趣:)
  # 如果你沒有安裝顯卡,注解掉這一行
  splashimage=(hd0,0)/grub/splash.xpm.gz
  title=Gentoo Linux 2.4.25
  # 內核鏡像(或操作系統)所在的分區位置
  root (hd0,0)
  kernel /kernel-2.4.25-gentoo root=/dev/hda3
  # 下面三行只用於帶有Windows操作系統的雙啟動。
  # 在這個例子中,Windows位於/dev/hda6.
  title=Windows XP
  rootnoverify (hd0,5)
  chainloader +1
  代碼 6: 適用於genkernel用戶的grub.conf
  default 0
  timeout 30
  splashimage=(hd0,0)/grub/splash.xpm.gz
  title=Gentoo Linux 2.4.25
  root (hd0,0)
  kernel /kernel-2.4.25-gentoo root=/dev/ram0 init=/linuxrc real_root=/dev/hda3
  initrd /initrd-2.4.25-gentoo
  # 只用於雙啟動
  title=Windows XP
  root (hd0,5)
  chainloader +1
  注釋: 如果你使用不同的分區和/或者內核鏡像,相應的進行調整。但是,要確保任何的GRUB設備(如(hd0,0))對應於掛載點,而不是根目錄。換句話說,既然(hd0,0)是/boot,那麼(hd0,0)/grub/splash.xmp.gz對應於/boot/grub/splash.xpm.gz。


  如果你需要給內核傳遞其他的參數,只需簡單的在內核命令後面加上就行。我們已經傳遞了一個選項(root=/dev/hda3或者real_root=/dev/hda3),但是你也可以傳遞別的。作為一個例子,我們給前面討論過的framebuffer使用vga語句:
  代碼 7: 添加vga語句作為一個內核選項
  title=Gentoo Linux 2.4.25
  root (hd0,0)
  kernel /kernel-2.4.25-gentoo root=/dev/hda3 vga=788
  genkernel用戶應該只到他們的內核使用同LiveCD一樣的啟動選項。比如說,如果你有SCSI設備,你應該添加doscsi內核選項。
  現在保存grub.conf文件並退出。到目前為止,GRUB已經全面的配置完畢,你可以從安裝必須的系統工具繼續。
  如果你對GRUB有更多的問題,請參見GRUB常見問題回答或者GRUB手冊。
  9.c. 另一個選擇:使用LILO
  安裝LILO
  LILO,全名LInuxLOader,是一個可靠和真正的Linux啟動程序。但是它缺乏一些GRUB有的特點(這也是為什麼GRUB收到流行的原因)。而LILO仍然使用的原因是因為在某些系統中,GRUB不能工作,而LILO可以。當然,它也經常使用到,因為一些人理解和習慣用它。總之,Gentoo支持兩者,而明顯的你選擇使用LILO。
  安裝LILO是一件輕而易舉的事情,只需使用emerge。
  代碼 8: 安裝LILO
  # emerge --usepkg lilo
  配置LILO
  你必須創建/etc/lilo.conf來配置LILO。啟動你最喜歡的編輯器(在這個手冊裡我們為保持一致性,使用nano)創建這個文件。
  代碼 9: 創建/etc/lilo.conf
  # nano -w /etc/lilo.conf
  在幾個章節前,我們已經告訴你要記住你所創建的內核鏡像的名字。在下面這個lilo.conf的例子中,我們假設內核鏡像名字為kernel-2.4.25-gentoo。我們在這個例子中也使用同樣的分區。這也分成兩個部分:
  一個適用於不用genkernel來編譯內核的用戶
  一個適用於使用genkernel來編譯內核的用戶
  代碼 10: /etc/lilo.conf樣例
  boot=/dev/hda # 安裝LILO到MBR
  prompt # 給用戶選擇其他啟動選項的機會
  timeout=50 # 在啟動默認選項之前等待5秒鐘
  default=gentoo # 當時間過了後,啟動“gentoo”選項
  # 只用於你使用framebuffer的情況。否則去掉這一行:
  vga=788 # Framebuffer設置。根據你的喜好調整
  # 適用於非genkernel用戶
  image=/boot/kernel-2.4.25-gentoo
  label=gentoo # 給這個啟動選項一個名字
  read-only # 根目錄啟動時只讀。不要改變此項!
  root=/dev/hda3 # 根目錄所在位置
  # 適用於genkernel用戶
  image=/boot/kernel-2.4.25-gentoo
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc real_root=/dev/hda3"
  initrd=/boot/initrd-2.4.25-gentoo
  # 下面兩行僅用於帶有Windows操作系統的雙啟動
  # 在這個例子中,Windows位於/dev/hda6。
  other=/dev/hda6
  label=windows
  注釋: 如果你使用不同的分區表和/或者內核鏡像,相應的進行修改。
  如果你要傳遞額外的選項給內核,在啟動選項中添加一條append語句。作為一個例子,我們添加vga=788語句來啟用framebuffer:
  代碼 11: 使用append來添加內核選項
  image=/boot/kernel-2.4.25-gentoo
  label=gentoo
  read-only
  root=/dev/hda3
  append="vga=788"
  genkernel用戶應該知道他們的內核使用同LiveCD一樣的啟動選項。比如說,如果你有SCSI設備,你應該添加doscsi內核選項。
  現在保存文件並退出。為完成LILO的安裝和配置,你必須運行/sbin/lilo,這樣LILO將會把/etc/lilo.conf應用到你的系統裡(如把自己安裝到磁盤裡)。記住,每次你安裝一個新的內核,你都得重新運行/sbin/lilo。
  代碼 12: 完成LILO的安裝
  # /sbin/lilo
Copyright © Linux教程網 All Rights Reserved