可以动态增加系统的U盘启动器(基于grub)

  前言:最近面试无果,就在宿舍看那本《30天自制操作系统》,里面使用的系统文件格式是img,要在真机上运行,就需要使用U盘进行启动,因为现在都没有软盘。而网上很多都是用软件写入U盘的。反正我查过的都是一次写入,下次要覆盖使用最新编译的还是要用软件写入。所以就想用一个一劳永逸的办法,只要把IMG文件复制到U盘即可启动。并且每次新的编译后IMG只要覆盖进U盘即可。比较方便。

一、准备几个软件

  硬件:准备一个2G以上的U盘

  软件:1.grubinst 用来给U盘写入引导记录

            2.grub4dos-0.4.4 用来制作多重引导菜单

            3.各种操作系统

 

二、制作grubinst过程

  1.解压grubinst并运行grubinst_gui.exe选择对应的U盘hd1.

 

  2.分区列表点击刷新,选择整个磁盘MBR

  3.注意,点击刷新后可能会出现此提示,无需理会,点击确定即可

 

  4. 若:如下图: 下拉列表中没有MBR字符,则此U盘没有MBR分区,无法做启动盘.

 

     若:如下图:下拉中有MBR字符,则此U盘可以做启动盘.

  5.点击“安装”,如果成功会出现控制台,上面写着

                   The MBR/BS has been successfully installed

                   Press <ENTER> to continue …

        意思是说主引导记录写入,按回车继续。这一步只是写入U盘引导记录。

 

三、把grub4dos-0.4.4解压后找到核心文件grldr和grub.exe和menu.lst,并复制到U盘的根目录中。

 

四、下载所有需要的操作系统,我这里下载了BT3,CDlinux,Beini还有《30天自制操作系统》里面的haribote.img作为例子。

  1.解压Bt3,CDlinux,Beini到根目录,因为解压后会有一些目录是相同的名字,我们可以进行重命名。具体的重命名可以随意改。而img文件就直接放到根目录就可以了。

  2.处理后的目录如下

  3.现在最关键的是修改menu.lst文件,下面是我的配置文件

 1 default=0
 2 timeout 20
 3 
 4 default /default
 5 
 6 title 1 BackTrack3
 7 find --set-root /bootbt3/vmlinuz
 8 kernel /bootbt3/vmlinuz root=/dev/ram0 ramdisk_size=6666 autoexec=kdm vga=791
 9 initrd /bootbt3/initrd.gz
10 
11 title 2 cdlinux
12 find --set-root /CDlinux/bzImage
13 kernel /CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8
14 initrd /CDlinux/initrd
15 
16 title 3 beini
17 find --set-root /bootbeini/bzImage
18 kernel /bootbeini/bzImage quiet max_loop=255 tce=sdb1 waitusb=6
19 initrd /bootbeini/tinycore.gz
20 
21 title 4 hello
22 map --mem /hello.img (fd0)
23 map --hook
24 chainloader (fd0)+1
25 rootnoverify (fd0)
26 map --floppies=1
27 boot
28 
29 title 5 winpe
30 find --set-root /ntldr
31 chainloader /ntldr

         上面有些参数和设置我是不懂的,不过那些目录路径还是很容易看懂和修改的。

         因各人的硬件设置不尽相同,如果检测时发现 beini不能启动或启动后不正常,请更改“sdb1”参数,即 U盘在 linux系统下的名称。常用的有 sda1,sdb4等,具体可在启动 bt3或 cdlinux系统后,在其中查看具体显示名称,更改即可。

 

  4.运行结果,在真机上是可以运行的。下面这个图是我在虚拟机中截的。

五、vm虚拟机使用U盘启动

         1.一般创建虚拟机的步骤都懂的,这里就不介绍了。

         2.在创建完虚拟机后,选择虚拟机设置

         3.下一步,选择“Use a physical disk(for advanced users)”然后Next。

 

         注意如果没有出现所需要的U盘选项,那大概是虚拟机没有识别出来,只是重插U盘。或者重新启动虚拟机软件。有时候是因为U盘接口控制没有选上,只要选上就可以了

         4.选择PhysicalDrive1,这里的选项将取决于你计算机所有的物理硬盘。然后下一步就会出现下面这个磁盘信息。

 

         嗯,3.7G对了,就是这个了。然后就完成了。

         5.虚拟机中设置BIOS(加电自检是按下F2进入),修改Boot启动项。

 

  我的U盘是SCSI Hard Drive(0:1)的。一开始默认是(0:0)的只是我总是启动不了,就修改成(0:1)了不知道有没有关系,就在这里说明一下。

 

         让Hard Drive为第一启动项,就可以了。

 

   到这里就可以实现动态增加操作系统的U盘系统了。如果有合适的系统就可以复制到该U盘里,然后修改menu.lst文件就可以了,不用每次都用软件写入iso文件。

六、资料下载

   用到的两个grub软件和我参考的一个pdf文件 https://files.cnblogs.com/wunaozai/grub.zip

 

  本文连接 http://www.cnblogs.com/wunaozai/p/3854875.html

 

 

 

posted @ 2014-07-19 14:10  无脑仔的小明  阅读(2775)  评论(1编辑  收藏  举报