• 借助GRUB4DOS在U盘上引导ISO镜像


    转载:http://blog.oasisfeng.com/2008/10/13/boot-iso-by-grub4dos/

    根据cch在上一篇《新电脑的规格配置》一文中的留言提示,我下载了Hitachi Feature Tool工具,打算将我的WD640AAKS也调节为高性能模式。不过面临的直接问题是这个工具是以ISO格式的光盘镜像提供,其中封装的是IBM DOS和FTOOL工具。而我没有刻录光驱,也无法安装DOS系统(全部分区都被我格式化为NTFS了),想要引导这个镜像还真有点麻烦。

    正好一直以来都想解决U盘引导多重ISO镜像的难题,于是便去网上找答案,最后让我发现了GRUB4DOS这个非常强大的系统引导辅助工具。它的文档写的很详细,覆盖了各种场景下的安装方法。即使像我这样从未玩过Vista/Win2008中BCD引导系统的新手,也能按部就班的顺利装上GRUB4DOS。其实步骤说起来也很简单:(仅适用于Vista/Win2008)

    首先应将你的U盘分区转换为可引导分区:(注意将“U:”换成实际U盘的盘符)

    bootsect /nt60 U: /force /mbr

    接下来需要借用Vista/Win2008安装介质中的引导部分,将其中的bootmgr、bootmgr.efi以及整个boot和efi文件夹复制到U盘上(根文件夹下)。

    (因为我手中这个优盘之前就做成了Win2008的安装盘,因此省去了上面两步)

    然后需要修改BCD记录,为GRUB4DOS增加引导项:

    bcdedit /store U:\boot\bcd /create /d "More..." /application bootsector

    正常情况下,你会得到一个形如“{05d33150-3fde-11dc-a457-00021cf82fb0}成功创建”的提示。这个“{…}”就是新引导项的ID,将要用在下面的几条命令中(注意将{id}替换为上述提示中的“{…}”):

    bcdedit /store U:\boot\bcd /set {id} device boot
    bcdedit /store U:\boot\bcd /set {id} path \grldr.mbr
    bcdedit /store U:\boot\bcd /displayorder {id} /addlast

    然后将grldr.mbr、gdldr和menu.lst复制到U盘的根文件夹下即可。

    接下来要修改menu.lst,增加对光盘的引导选项。编辑menu.lst文件,在第一个“title”所在行之前插入如下内容:

    title Hitachi Feature Tool
    map --mem (hd0,0)/ftool.iso (hd32)
    map --hook
    chainloader (hd32)
    savedefault --wait=2      
    因为这个光盘镜像其实很小,所以我使用了–mem参数将其缓存到内存中。对于较大的ISO文件,最好去掉–mem参数。(除非你的内存足够容纳下)

    最后包含“savedefault”那行不是必须的,它只是让你可以在引导时将这个项保存为默认值。

    完成上述步骤后,再把光盘镜像文件ftool.iso丢到和grub同样的根文件夹下就完工了。

    重新启动后,在Vista的启动选单中选择“More…”,然后就会出现GRUB的引导菜单,其中第一项就是我们希望引导的光盘镜像了。

    GRUB4DOS强大的功能远不止引导光盘镜像、WinXP、Win9x、DOS、Linux、Mac OS全都不在话下,而GRUB4DOS本身也支持多种加载方式:MBR、boot.ini、BCD、PXE…… 以后有时间再来细细研究了,反正目前主要是用它来在U盘上多重引导ISO镜像。


    倘若引导不成功,通常可能的原因有:

    (1)光盘镜像的CD-ROM文件系统是Joliet CD格式,GRUB4DOS不支持这种格式。你需要通过工具转换一下镜像文件的文件系统格式。
    (2)BIOS中激活了SATA的AHCI模式。GRUB4DOS可能无法兼容AHCI模式,应在BIOS中将SATA模式设置为IDE。


    UPDATE: 倘若不需要兼做Vista/Win2008的安装U盘,那么完全可以删除掉boot\fonts下多余的繁体中文、日文、韩文等字体文件,可以节省不少空间。bootmgr.efi及整个efi文件夹按理也可以删掉,只要用起来没有兼容性问题。

  • 相关阅读:
    Android ADB关闭Selinux ( adb shell setenforce 0 )
    通过windowmanager在camera界面上显示内容
    Android Handler类 发送消息-post()和postDelay(), Looper讲解
    Ubuntu下的log日志查看器
    Ubuntu下 安卓 adb 命令报:“insufficient permissions for device: user in plugdev group; ”问题的解决办法
    java.lang.UnsatisfiedLinkError: dlopen failed: library "/system/lib/libjni_i
    为 Linux 应用程序编写 DLL
    android Camera 之 ZSL
    Android Studio 导入 Android 系统模块并编译和调试
    微服务架构设计
  • 原文地址:https://www.cnblogs.com/linmilove/p/1610628.html
Copyright © 2020-2023  润新知