迷你linux系统的启动流程
副标题[/!--empirenews.page--] 为了更清晰的了解,尝试简单做一个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)保存并退出 第四步:复制或修改并复制新硬盘引导所需文件 1. cp /boot/grub/splash.xpm.gz /media/boot/grub/;cp /boot/vmlinuz-2.6.18-308.el5 /media/boot/ 复制这俩,开机图片+内核 2. mkdir -pv /opt/initrd 建个目录,专门折腾initrd-2.6.18-308.el5.img 2.1 修改并使用:initrd-2.6.18-308.el5.img 先介绍一下: 此文件存储方式为:cpio归档,gzip压缩。这个是个比kernel更大,驱动更全的内核,以只读的方式运行 完全可以理解成其本身就是一个迷你系统,负责使系统过度到真正的内核(vmlinuz-2.6.18-308.el5)等工作(个人理解) 2.2 cp /boot/initrd-2.6.18-308.el5.img /opt/initrd.gz 复制并改名,因为要使用gzip解压,以免出现不必要的麻烦 2.3 gzip -d /opt/initrd.gz 2.4 cd /opt/initrd 2.5 cpio -id < ../initrd 将文件解包 2.6 vim /opt/initrd/init 找到mkrootdev -t ext3 -o defaults,ro /dev/sda2 此行 修改其内容匹配你的新磁盘的第二个分区,修改使其和你的sdc2一致(本机我的是第三个盘sdc2,但是放到新系统里面,仍然是sda2) 2.6 find /opt/initrd/|cpio -o --quiet -H newc|gzip -9 > /media/boot/initrd.gz 修改完成后,归档,压缩,扔到新磁盘第一个分区下 (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |