2010年3月10日星期三

grub linux iso制作

stage2_eltorito文件是制作grub 启动光盘iso最重要的一个文件,可以发送主题为stage2_eltorito的邮件
ltakuorg@gmail.com 得到此文件


建立ltaku文件夹


#mkdir ltaku


建立根文件夹


#mkdir -p ./ltaku/boot/grub


然后复制这个stage2_eltorito文件到grub下


进入ltaku文件夹然后执行



mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o ltaku.iso ./ltaku

得到一个iso文件.把它运行到vmware下. 硬盘选择ide 在vmware开机时进入bios设置,设置为cd-rom启动

ok

我们可以看到一个grub引导系统了.

可惜现在什么也没有.我们可以试着把linux自带的vmlinuz文件添加进来   ---->vmlinuz文件的制作其他文章解说

cp /boot/vmlinuz-2.6.31-14-generic ./ltaku/boot

然后再执行上面的mkisofs命令一次

ok,

我们用新得到的iso来运行玩一次

grub命令下输入root (cd) 得到这个iso的信息

加载内核试试输入

kernel /boot/vmlinuz-2.6.31-14-generic  得到内核信息

貌似可以了?...我们试试看吧输入boot

阿拉.运行到一半蛋痛掉了...恩.这里还没找到init程序,也找不到root文件系统,这时我们需要制作initrd.img镜像了.

关于这个文件看其他的文章有超详细的介绍

在这之前为了减少不必要重复的输入.我们建立一个grub.conf  貌似menu.lst也行

内容如下

default 0
timeout 10
hiddenmenu
title ltaku
        root (cd)
        kernel /boot/vmlinuz-2.6.31-14-generic quiet


关于这个配置文件的内容....请参照起程GRUB 这篇文章


开始制作initrd.img文件
















2010年2月24日星期三

kernel始动

kernel是linux操作系统的核心程序,目前所有的linux发行版都是基于这个在工作的

一个linux基本上分为软件.shell,kernel,硬件

编译内核给自己用,这样文章在网上很多google下就好了

最好使用make bzImage的方式编译吧.

initrd就是加载的文件系统.

起程GRUB

GRUB简介

grub位于/boot/grub
stage1的大小为512byte  和MBR一样的大小

主要负责当bios交接给GRUB载入分区中开机文件

stage1算是MBR中的bootloader备份文件#1

stage1.5 有若干个stage1.5文件,如上图

xfs_stage1_5,
fat_stage1_5,
minix_stage1_5,
e2fs_stage1_5,
jfs_stage1_5

stage1.5是连接stage1与stage2的一个信道,唯一存放的是文件系统#2的格式而已

stage2是grub的核心,让用户操作系统加载,新增参数,修改选项等..stage2除了不能自己激活外,

所有的事都是stage2完成的.

GRUB的设置

在/boot/grub/grub.conf 有的系统是/boot/grub/menu.lst

#号的行是注释,

想设置grub的背景就找到里面的splashimage 把后面的路径改为你设置的图片

grub图片格式设置用命令convert grub_bg.jpg -colors 14 -resize 640x480! grub_bg.xpm

想更改字体颜色就注视掉color用background和foreground设置前景和背景光,颜色采用16进制

background aaaaaa
foreground aaaaaa

然后看最后几行,也是最重要的几行

title 操作系统的名称可以自行设置

root  定义该系统所使用的kernel和initrd文件在那块硬盘上,请记住linux的编号是用0开始的,所以指

向第一块硬盘hd(0,0)

kernel加载内核的位置

initrd加载initrd的位置

最后的kernel和initrd会在以后的记录里更加详细的介绍

简单来说grub只是一个开机引导的程序而已.

#1:stage1里只有446byte和MBR一样,其他的则毫无关系,但是如果想自己备份还是自己用"dd"来备份MBR比较安全

#2:Linux系统核心支持十多种文件系统类型:jfs、 ReiserFS、ext、ext2、ext3、iso9660、xfs、 minx、msdos、umsdos、Vfat、NTFS、Hpfs、Nfs、smb、sysv、proc等