迷你linux系统的启动流程

为了更清晰的了解,尝试简单做一个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    修改完成后,归档,压缩,扔到新磁盘第一个分区下

时间: 2024-12-29 00:22:48

迷你linux系统的启动流程的相关文章

详解linux系统的启动过程及系统初始化

一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检-->BIOS(Boot Sequence)-->加载对应引导上的MBR(bootloader)-->主引导设置加载其BootLoader-->Kernel初始化-->initrd->/etc/init进程加载/etc/inittab,其进程流程图如下:

Linux系统的启动过程

  一直使用linux系统,却对系统启动过程及系统初始化和各种服务的启动不太清楚.今天终于搞明白整个是怎么一回事了.本来想自己写篇文章,刚好在网上看到一篇不错的介绍,很详细,就直接拿来了. Linux系统的启动过程: BIOS自检 -> grub引导程序 -> 加载内核 -> 执行init -> 启动shell -> login登陆系统 系统启动各个阶段的详细介绍: 一.BIOS自检 计算机在接通电源之后首先由BIOS进行POST自检,然后依据BIOS内设置的引导顺序从硬盘.

Linux系统服务 4 启动流程+模块管理与loader

一 Linux的启动流程分析 1 目前各大Linux发行版本的主流引导装载程序使用的软件为grub 2 简单来说,系统启动的过程如下: 1. 加载BIOS的硬件信息与自我测试,并依据设置取得第一个可启动的设备 2. 读取并执行第一个启动设备内的MBR的boot Loader也就是一般的grub 3. 依据boot Loader的设置加载Kernel,Kernel会开始检测硬件与加载驱动程序 4. 在硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level信息 5.

自己动手做一个迷你Linux系统

本文将带领大家构建一个迷你型的Linux 系统.它占用的硬盘空间远小于 16M 字节,但是却包括了 XFree86 的 X Window 窗口系统. 目标 本文要构建的这个迷你型的 Linux 系统只能在一台特定的单机上运行,如果读者朋友们有兴趣的话,在这个系统的基础上加以改进,是可以构建出通用的.可以在大多数常规 PC 机上即插即用的系统来的.但是这已经不在本文的话题之内了,读者朋友们如果有兴趣,可以通过我的电子邮件和我讨论其中的细节问题. 我们的目标 Linux 系统运行在一台普通的 Int

修改linux系统默认启动级别

  修改系统启动级别:修改系统默认启动到3 多用户状态,在Linux中有7种启动级别,默认是X-Window,像是Windows的窗口模式,而Linux的操作和配置一般我们都采用输入命令的方式来完成,像DOS操作系统一样,如何让Linux一启动就进入这种模式呢? 第1步:以管理员身份进入Linux,修改文件:/etc/inittab文件. 第2步:找到"id:5:initdefault:",其中的5就是X-Window,为默认运行级别,我们把5改为3即可. # 0 - halt (Do

Linux系统下启动MySQL报错:Neither host &#039;localhost.localdomain&#039;

Linux系统下装完MySQL,然后重启动时报错: 解决方法: 查看cat /etc/hosts 发现什么文件也没有,编辑内容相关配置. vim /etc/hosts 输入以下内容:127.0.0.1localhost.localdomain localhost 然后重新启动MySQL 正常启动OK了~

基于ARM的嵌入式系统Bootloader启动流程分析

  一. 引言:     对于PC机,其开机后的初始化处理器配置.硬件初始化等操作是由BIOS(Basic Input /Output System)完成的,但对于嵌入式系统来说,出于经济性.价格方面的考虑一般不配置BIOS,因此我们必须自行编写完成这些工作的程序,这就是所需要的开机程序.而在嵌入式系统中,通常并没有像 BIOS 那样的固件程序,启动时用于完成初始化操作的这段代码被称为Bootloader程序,因此整个系统的加载启动任务就完全由Bootloader 来完成.简单地说,通过这段程序

玩转Linux系统制作启动U盘

dd命令是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换.大部分用户只知道dd命令的这个用处,殊不知dd命令做usb启动盘也十分方便,下面就让我们一起来看看dd命令是如何运用到刻录启动U盘上的. dd命令做usb启动盘十分方便,只须:sudo dd if=xxx.iso of=/dev/sdb bs=1M 用以上命令前必须卸载u盘,sdb是你的u盘,bs=1M是块的大小,后面的数值大,写的速度相对块一点,但也不是无限的,我一般选2M,

解决WebLogic在Linux系统中启动关闭很慢的方法

风信网(ithov.com)原创文章:WebLogic是一个基于Javaee架构的中间件,BEA WebLogic是用于开发.集成.部署和管理大型分布式Web应用.网络应用和数据库应用的Javahttp://www.aliyun.com/zixun/aggregation/15818.html">应用服务器.将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发.集成.部署和管理之中. 在管理AS 5.1的过程中,发现启动关闭weblogic很慢,查找了一下