可以动态增加系统的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
作者:无脑仔的小明 出处:http://www.cnblogs.com/wunaozai/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。有需要沟通的,可以站内私信,文章留言,或者关注“无脑仔的小明”公众号私信我。一定尽力回答。 |