西格玛向量™

U盘中打造属于自己的Linux (一)U盘的前期处理(下):格式化与初级BootLoader设置

作者: 西玛哒   分类: IT悟语, Linux, 老西常谈   标签:    评论: 1

##  

    接上篇: 处理U盘至usb-hdd模式;

     接下来,我们要做的就是进行U盘的格式化操作,

     首先,我们要选择一个BootLoader,你可能会问,为啥格式化需要先考虑BootLoader呢?这要跟BL的挑剔性说起。

    我们知道,BootLoader一般安装在MBR中,用于引导,这就决定了它必须正确识别文件系统,这样才能读取存在硬盘上的配置文件

     先简介一下几个比较著名的BootLoader

    :LILO 比较老的BL,支持大部分文件系统。

    :SysLinux 一般用于嵌入式,安装的硬盘文件系统一般为FAT

    :Grub 主流的BL,支持大部分文件系统。

    我们的很多工具盘的引导用的都是Grub,因为她十分的强大,因此我们打算采用它作为我们的BL。

     这里对于Syslinux一笔带过,它是嵌入式中常用的一个引导程序,使用也比较方便。后文中将会对比的提出使用方法。

      之后就是常见的文件系统:

      :FAT家族 我们见得多了,没吃过猪肉也见过猪跑,我就不介绍了,特性和其主子Windows一样……..

      FAT在嵌入式中常用,SysLinux就安装在FAT环境下。

      :Linux文件系统格式

        ext2   曾经辉煌的GNU默认文件系统,性能较好,缺点:掉电崩溃,数据经常丢失。

        ext3   现行正在主流的文件系统,解决了掉电丢失问题。

       回想我们的需求,我们希望将系统从内存中交换引导,因此我们使用ext2文件系统就可以满足我们的需要,当然是用ext3是很好的,ext2与ext3兼容性较好,可以方便的相互转换。

##  总结之前的内容,我们决定在ext2环境下使用Grub作为引导程序。

实现:

  一、 格式化

   进入宿主Linux 打开terminal(之后的工作默认都是在terminal中完成的,图形化的东西没啥用其实。。。)

##

   在这里说明一下 之后的操作默认在root权限下进行

   $ sudo su

   输入你的password:…….    // 这个地方没有回显

   #                                   //说明进入root权限了

    使用的命令(软件)有些提示没有安装,需要执行

    apt-get install (程序名) //从程序管理器中自动下载安装

##

    采用cfdisk作为分区工具。

    插入U盘,Linux一般会识别并自动挂载,在分区格式化之前,要先将U盘解除挂载

  #fdisk -l //列出所有的磁盘信息

  这时候如果你的硬盘是IDE的盘,那么一般你宿主机的硬盘会识别为

  /dev/hdax    (x=1,2,……..)

  这里说下磁盘在dev下的命名,h表明为IDE,s为sata,d表示disk 后面的为硬盘编号,a表示第一块,依次类推。

  我的宿主机硬盘为SATA的,所以识别为/dev/sda(x)

  因此 U盘被当成了SATA盘,接在后面被识别为 /dev/sdb(x)

  # df -l  //查询挂载情况

  看看你的U盘被挂在在何处 这里以/media/disk为例

  # umount  /media/disk

or # umount /dev/sdb(x) 作用相同,挂载的盘x要全部卸载

  #cfdisk /dev/sdb            注意 是给硬盘分区。

  若是之前这个盘为FAT或其他格式使用过,它可能会报出什么分区表&*(……%**&…… 云云,这是我们可以先吧分区表清空。

  #fdisk /dev/sdb   

         d   选择1-4删除原有的所有分区

         w  写分区表

         q   退出

  之后就可以正常进入分区了。

(不可以的话,额… 查查你U盘自身的问题吧)

  之后的有“图形界面” 操作比较方便应该。

  分区随便,需要的是一个起于beginning的分区,有bootflag(可启动),大小有你最后要实现的Linux规模决定,这里建议大家分一个区,不差钱儿…….

 U盘中打造属于自己的Linux (一)U盘的前期处理(下):格式化与初级BootLoader设置

  如上所示,我慷慨的贡献了2G的U盘给它,type可以选择Linux (代号 83) 记住一定要执行 Write 选项,否则就白做了!

#mkfs.ext2   /dev/sdb1      格式化为ext2格式

(对于syslinux格式化,基本相同,上面在type中选择FAT后 执行 mkdosfs /dev/sdb1 就可以了)

  至此,格式化过程就全部完成了。

  现在我们的U盘空的如同连上四节大课之后的胃一样…

二、 BootLoader的安装与初级设置

   我们先找宿主机分析一下,一个BootLoader一般需要什么东西。BootLoader在什么地方找呢?猜对了,/boot

   我在我的Linux中 /boot 下有一个名为 grub 的文件夹 起作用十分的明显,就是说,grub引导需要/boot/grub 中的文件。

   其实其中起作用的文件只有那么几个,之前的分析我们知道,grub 引导服从 stage1->stage1.5->stage2 这个过程,同时还需要遵照配置文件grub.conf 中的规则,因此我们需要的文件就是:

   stage1; stage2; e2fs_stage1_5(就是支持ext2的stage1.5文件,有人说没用)

  + 这几个文件一般人搞不定,因为它们涉及很多底层操作,我这个菜鸟必然不敢动,直接拷贝的干活…..

   grub.conf

   + 引导配置,可以自行设置,是我们实现引导的基础。

  当然 我们尝鲜要紧 里面的东西先放放再说。

现在我们要正式对U盘下手了….. 首先建立一个今后一直要用的挂载点,自己方便就好,我的是/mnt/usb

#mkdir /mnt/usb

# mount /dev/sdb1 /mnt/usb

# cd /mnt/usb   //进入u盘目录

这时候你ls下 可能只有lost+found孤零零的躺在那里

(若发现一堆东西,请迅速离开,不知道咋离开的点右上角的X…)

# mkdir boot

# mkdir boot/grub

# cp -dpR /boot/grub/{stage1,stage2,e2fs_stage1_5}  boot/grub                                              //复制必要文件

# touch boot/grub/grub.conf             //先弄一个空文件

这样 必要的文件就准备好了 下一步是安装grub

宿主linux中,一般都会安有grub 的shell环境。

# grub

grub >  root (hd1,0)

//———–

  这里的(hd1,0) 不同于之前的磁盘表示,是设备号

  在设备划分中,没什么IDE啊SATA的,都是磁盘hard disk

  磁盘计数和数组类似 从0开始

  那么hd1 表示 第二块磁盘 0 表示该磁盘的第一个分区

  root 就是置为操作对象之意……

//————-

grub >  setup (hd1,0)

……………………(没用)

Succeed ! Done!   / Failed!

看看你是否安装成功….

grub > quit                    退出。

如果上面的succeed了 那么你的BootLoader已经安装完毕了,虽然现在没有任何配置,不可能正常引导,但是启动后应该可以找到grub程序了。

//———————应达到效果—————————-

插入u盘 开机,进入bios设置,选择从usb-hdd启动。

  进入 出现grub的引导提示信息。

  ………

##

补充: vmware 中实现u盘引导的方法:

    vmware的启动非常快,来不及加载u盘,依次我们绕过,将u盘模拟为虚拟硬盘使用。

    随便新建一个虚拟机,删除原有的硬盘,在配置中点击ADD添加设备,选择硬盘,并“使用物理磁盘”之后选择PD1 就应该是你的u盘了,之后就可以用这个虚拟机验证启动。

##

anyShare分享到: U盘中打造属于自己的Linux (一)U盘的前期处理(下):格式化与初级BootLoader设置
          
05-27
2009
loading...