ubuntu 启动盘制作

 

 

 

1.启动盘的制作&构建一个小系统

准备:

    制作系统:ubuntu 8.10(我的是8.10,各个版本应该都可以)

    可启动的U盘一个

前言:

    本节利用ubuntu现成的文件创建一个可U盘启动的linux小系统

分区:

    #sudo fdisk /dev/sdb        /*在创建分区前,可以使用d命令删除所有分区:d回车1,d回车2,d回车3,d回车4,*/

    Command (m for help):n   /*n 新建分区*/

    Command action

           e     extended

           p     partition (1-4)

    p                                      /*p 创建主分区*/

    Partition Number (1-4):1 /*1 创建第一个主分区*/

    First cylinder ......:            /*回车 采用默认值*/

    Using default value 1

    Last cylinder .....:             /*回车 整个U盘分为一个区*/

    using default value xxx

 

    Command (m for help):a /*a 激活分区*/

    Partition Number (1-4):1 /*1 激活第一分区*/

 

    Command (m for help):p /*p 查看一下操作后分区信息*/

    ......   

 

    Command (m for help):w /*分区并退出*/

 

格式化:

    sudo mkfs.ext3 /dev/sdb1 /*格式化为ext3分区*/

    sudo mount -t ext3 /dev/sdb1 /mnt  /*加载分区到/mnt*/

准备grub启动文件:

     sudo mkdir -p /mnt/boot/grub/

     sudo cp /usr/lib/grub/i386-pc/* /mnt/boot/grub/    

    /*有用的文件是stage1 e2fs_stage1_5 stage2三个文件*/

    sudo  cp /boot/grub/menu.lst /mnt/boot/grub/    /*当模板,后续要编辑一下*/

准备内核:

    sudo mkdir /boot/myboot/

    sudo cp /vmlinuz /initrd.img /mnt/boot/myboot/ 

修改启动菜单:

    sudo vi /mnt/boot/grub/menu.lst

    #file start

    default    0

    timeout   10

 

    title       myboot

    kernel   /boot/myboot/vmlinuz

    initrd     /boot/myboot/initrd.img

    #end file

grub安装:

     sudo umount /mnt

     sudo grub

     grub>root (hd1,0)    /*grub硬盘设备总是hd的,下标为0开始,ubuntu系统为hd0,U盘为hd1*/

     grub>setup (hd1)

     grub>quit

#################################################

以下是网络上找到的更详细的说明,供参考


grub> root (hd0,1)        (A)
root (hd0,1)
 Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)         (B)
setup (hd0)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.                 (C)
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p        (D)  (hd0,1)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.                     (E)
grub> quit

A:设置装有stage1,stage1.5.stage2的硬盘分区
B:安装GRUB至MBR  
C:'embed'命令是嵌入stage1.5到硬盘MBR后的扇区上,这儿把stage1.5写入MBR后的15个扇区.扇区数目
   根据stage1.5的大小而不同
D:安装stage1到MBR上
E:'p'告知GRUB,stage2和menu.lst的位置

#####################################################

好了这样一个U盘就可以启动一个linux 系统了。

最后一个地方会停一点时间,然后进入(initramfs)系统了。

 

2. 启动基本流程说明

    系统启动,最开始启动了grub的,grub通过菜单启动了vmlinuz(内核),然后内核解压initrd.img

到内存,并形成一个根文件系统,并运行根目录下的init程序。

    在ubuntu中init是一个脚本,它会启动一套很复杂的脚本,我没有花太多时间理解它,其中加载

所有必要的驱动,是很重要的功能,因此initrd.img中包含了很多驱动模块,系统进行选择性的加载。

还有系统初始化完毕后,它会卸载掉ram根文件系统,从内核root参数中,读取根设备,建立基于

硬盘上,也就是我们平时登录系统后看到的系统。root 参数在menu.lst中描述,示例如下:

kernel /boot/myboot/vmlinuz root=/dev/sdb1 rw

你可以在grub菜单的时候按“e”建重新编辑kernel这一样,然后在按“b”,引导系统,会看见一个出错

信息,系统还是进入了initramfs模式。因为u盘的根目录下只有grub,没有其他任何数据,即root=

指定的分区中没有init文件无法启动新的根文件系统。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值