為了更清晰的了解,嘗試簡單做一個grub+kernel啟動的迷你linux系統
實驗環境:vmware9 rhel5.8
第一步:添加所需磁盤
關閉虛擬機rhel5.8,然後setting-->add....(親,這些實在不想寫...)
添加一個虛擬磁盤(SCSI.vmdk);注意,此磁盤推薦使用scsi
(創建IDE的磁盤,再最後迷你系統引導時內核恐慌...可能是vmware的小bug吧,具體也不清楚)
第二步:創建分區
使用已有的系統rhel5.8為磁盤分倆區(因為系統已有兩個磁盤sda,sdb,因此這個為sda,您的您自己看哈)
sdc1 存放grub、內核等文件--->此分區僅50M大小即可,足夠使用了
sdc2 根分區,大小自定,筆者在此僅給了1G
第三步:給sdb1創建grub且復制或創建啟動所需文件(親,介個很重要哦...)
1. mke2fs -j /dev/sdc1;mke2fs -j /dev/sdc2 格式化倆分區
2. mount /dev/sdc1 /media/boot/;mount /dev/sdc2 /media/sysroot/ 掛載到本地目錄(目錄自己創建)
3. grub-install --root-directory=/media /dev/sdc
使用此命令為sdc創建引導扇區及grub所需文件(個人理解)
注意--root-directory=/media是在掛載點/media/boot的父目錄,理解方式可以參照系統/boot目錄也是位於/根目錄,
而/boot裡面的內容取決於您是否掛載boot分區...(呃,親,這個的確有點繞,不用死磕,慢慢來就好了),/dev/sdc則是目標磁盤,切記是磁盤不是分區.
4. vim /media/boot/grub.conf
default=0 默認啟動哪個系統:0為第一個,1為第二個一次
timeout=30 超時時間
splashimage=(hd0,0)/grub/splash.xpm.gz
啟動時加載的圖片:這個grub-install不會創建的,可以復制系統原來的(筆者就是)
也可以自己做(640x480像素,14位色,gimp編輯保存為xpm格式,gzip -9壓縮,復制到grub目錄,在此指定名字即可)
hiddenmenu 是否隱藏顯示下面的可選項...不想隱藏,這行就可以刪除了...
title Hello MOS! 標題
root (hd0,0) 如果系統只有一個磁盤,就是(hd0,0),若不確定,可以使用find (hd0,0)/查找您所需要的磁盤
kernel /vmlinuz-2.6.18-308.el5 指定啟動內核,此文件需要復制,此處的根,指boot分區.(咋又繞到這了..呃,對系統來說,/boot的父目錄是根/,對boot分區來說,終極根就是boot分區)
initrd /initrd.gz 此文件也需要復制,麻煩的是,還需要先解壓修改再打包復制過來...原文件名字一般initrd-2.6.18-308.el5.img 版本號要跟內核版本號一致
此文件(grub.conf)保存並退出