可以动态增加系统的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文件,下面是我的配置文件
default=0
timeout 20 default /default title 1 BackTrack3
find --set-root /bootbt3/vmlinuz
kernel /bootbt3/vmlinuz root=/dev/ram0 ramdisk_size=6666 autoexec=kdm vga=791
initrd /bootbt3/initrd.gz title 2 cdlinux
find --set-root /CDlinux/bzImage
kernel /CDlinux/bzImage quiet CDL_LANG=zh_CN.UTF-8
initrd /CDlinux/initrd title 3 beini
find --set-root /bootbeini/bzImage
kernel /bootbeini/bzImage quiet max_loop=255 tce=sdb1 waitusb=6
initrd /bootbeini/tinycore.gz title 4 hello
map --mem /hello.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1
boot title 5 winpe
find --set-root /ntldr
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文件 http://files.cnblogs.com/wunaozai/grub.zip
本文连接 http://www.cnblogs.com/wunaozai/p/3854875.html
可以动态增加系统的U盘启动器(基于grub)的更多相关文章
- 在Winform界面菜单中实现动态增加【最近使用的文件】菜单项
在我们一些和文件处理打交道的系统中,我们往往需要记录下最近使用的文件,这样方便用户快速打开之前浏览或者编辑过的文件,这种在很多软件上很常见,本文主要介绍在Winform界面菜单中实现[最近使用的文件] ...
- OSGI(面向Java的动态模型系统)
基本简介编辑 OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能.为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方.OSGi联 O ...
- Linux生成动态库系统
Linux生成动态库系统 一个.说明 Linux下动态库文件的扩展名为 ".so"(Shared Object). 依照约定,全部动态库文件名称的形式是libname.so(可能在 ...
- OSGi 系列(一)之什么是 OSGi :Java 语言的动态模块系统
OSGi 系列(一)之什么是 OSGi :Java 语言的动态模块系统 OSGi 的核心:模块化.动态.基于 OSGi 就可以模块化的开发 java 应用,模块化的部署 java 应用,还可以动态管理 ...
- OSGI 面向Java的动态模型系统
OSGI (面向Java的动态模型系统) OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSG ...
- mac制作U盘启动器
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.所需工具及必要条件: 1. 首先需要一个大于16GB U盘. 2.电脑系统版本应该大于10.11.X(因为之前 ...
- 【纯净版windows系统】U盘启动制作图文教程
无废话,按照步骤来就可以. 1.一个大于4G的U盘(格式化)准备好U盘,请注意制作过程中对U盘有格式化操作,有用的东西请先备份 2.UltraISO(软碟通软件)下载安装百度“软碟通”,或者访问 ht ...
- Hyperledger Fabric 动态增加组织到网络中
本文基于Hyperledger Fabric 1.4版本. 官方文档地址:传送门 动态添加一个组织到Fabric网络中也是一个比较重要的功能.官方文档写的已经很详细了,有能力的尽量还是看官方文档,本文 ...
- java 动态增加应用服务器,出现的消息队列的消费者提报错问题
java 动态增加应用服务器,出现的消息队列的消费者提报错问题 在项目中,有这样的业务场景,在某一个时间段,客户流量瞬间增大,服务器瞬间很大,出现高并发问题.有一种解决方案就是脚本动态增加业务服务器, ...
随机推荐
- UVALive 2949 Elevator Stopping Plan(二分 + 贪心)
ZSoft Corp. is a software company in GaoKe Hall. And the workers in the hall are very hard-working. ...
- Linux 下搭建流媒体服务器
http://blog.csdn.net/huangtaishuai/article/details/9836581 ----------------------------------------- ...
- ASP.NET MVC+Bootstrap 实现短信验证
短信验证大家都已经非常熟悉了,基本上每天都在接触手机短信的验证码,比方某宝,某东购物.站点注冊,网上银行等等,都要验证我们的手机号码真实性.这样做有什么优点呢. 曾经咱们在做站点的时候.为了提高用户注 ...
- AutoResponder Reference
Fiddler's AutoResponder tab allows you to return files from your local disk instead of transmitting ...
- SVN、TortoiseSVN相关问题
主要记录一些日常操作出现的问题: 1.upgrade working copy: SVN客户端升级或降级的时候,在本地已经下载workspace右键会显示upgrade working copy. 无 ...
- Windows 无法启动MongoDB服务 错误1067:进程意外终止
1:Windows 无法启动MongoDB服务 错误1067:进程意外终止 2:解决方法: 进入MongoDB安装目录\data\将此文件夹下的mongod.lock删除(网友提供解决方案,实验之后貌 ...
- How to set up OpenERP for various timezone kindly follow the following steps to select timezone in OpenERP
How to set up OpenERP for different Time Zones Click on the "Edit Preferences" wheel a ...
- Chrome实用调试技巧
如今Chrome浏览器无疑是最受前端青睐的工具,原因除了界面简洁.大量的应用插件,良好的代码规范支持.强大的V8解释器之外,还因为Chrome开发者工具提供了大量的便捷功能,方便我们前端调试代码,我们 ...
- springMVC + hadoop + httpclient 文件上传请求直接写入hdfs
1.首先是一个基于httpclient的java 应用程序,代码在这篇文章的开头:点击打开链接 2.我们首先写一个基于springMVC框架的简单接收请求上传的文件保存本地文件系统的demo,程序代码 ...
- js 取值 getElementsByTagName,getElementsByName
getElementsByTagName,getElementsByName 获取的值是数组的所以用[0][1]引用 1 <select multiple size="2" ...