PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

琢磨了半天,终于搞懂怎么在Mac下制作SSD的启动U盘

[复制链接]
跳转到指定楼层
1#
duskash 发表于 2012-4-15 22:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:14455|回复数:7
本帖最后由 duskash 于 2012-4-16 10:11 编辑

重要:有朋友反应出厂系统为Lion且带光驱的Mac型号,例如MBP,iMac等无法通过U盘引导。我正在寻找解决办法,请大家给我点时间,谢谢



前言:

       随着SSD价格的不断下滑以及性能、容量的不断提升,SSD已经被很多玩家所接受并成为DIY的主要考虑因素。同时负责的厂家会不断推出新的固件来修复SSD主控的一些问题甚至提升其产品的安全系数、使用速度等。所以一般大厂发布固件之后玩家们都会考虑升级。
       现在我们在mac上遇到的问题是:很多厂家推出的升级固件都是基于dos或者win环境的。若是win环境,双击安装即可;若是dos环境,用刻录软件刻一张盘或者制作引导U盘也可以轻松完成升级。这些厂家似乎遗忘了我们这个市占率迅速提升的群体——Macers。
       本文仅介绍 镁光M4/C400,以及Intel 系列的SSD升级方法,其他品牌的固件升级请举一反三。但本文不需要任何windows的环境依赖,使您在mac下轻松升级各大厂的SSD固件。无需光驱、无需虚拟机、无需wine环境、更无需专门安装win环境。当然如果你是Linux高手,欢迎提出更有效的方法。如果你不是,那你还在等什么,还不快往下看?

第一节 前期准备
第二节 Mac下启动U盘的制作
第三节 总结及收尾工作
第四节 启动U盘的制作原理



第一节:前期准备
        俗语有“磨刀不误砍柴工”,我们当然也要做好前期准备。其实这里需要的内容非常简单也很容易获得。使用这些简单、免费、合法的工具就可以轻易完成我们的任务,也从侧面反应了mac随机附赠软件的强大和开源的伟大之处。
        既然要升级固件,当然需要先下载它们。本文以M4和Intel的SSD为例,固件名为:Crucialm4_000F.iso 和 0911036202M388208850.iso

M4 000F固件:http://www.crucial.com/support/firmware.aspx
Intel 固件:http://downloadcenter.intel.com/ ... rt-cn+home_download
        另外,mac系统需要安装rEFIt,这是一个利用EFI功能制作的多引导选择软件。refit的安装非常简单,去http://refit.sourceforge.net/ 下载一个 .dmg 文件,然后安装弹出窗口中的 refit.mpkg 即可。注意一定要安装到mac os x所在分区。安装完毕后重启一次或者两次,直至启动界面为refit的分区选择界面。

        准备工作完毕。


第二节:Mac下启动U盘的制作
1. M4的启动U盘
    首先在Mac上接上U盘,在磁盘工具中抹掉成为 Fat 格式。


然后打开Crucialm4_000F.iso 找到 BOOT2880.IMG 并解压到桌面


接下来进入终端,先输入如下命令(红字根据个人情况填写,请勿照搬)
    diskutil list    #用以查看本机挂载的磁盘信息



如上图,本次使用的U盘为8G,挂载名为 /dev/disk2
    下面输入:
    diskutil unmountDisk /dev/disk2    #卸载U盘

    dd if=~/Desktop/BOOT2880.IMG of=/dev/disk2     #将镜像内容按块写入目标磁盘 红色部分分别为镜像路径和目标磁盘路径,需要自己输入


如上图,如果写入成功,会显示输出和写入的内容及速度。
    最后输入
    diskutil eject /dev/disk2 #安全弹出磁盘

    拔下U盘后再接上去看一下,原来名为C400的U盘已经变成了Bootable。里面包含的内容如下:



重启Mac,开机后进入refit引导选择界面,如果前面制作成功,则会看到一个FreeDos的小鱼


进去出现一堆blah blah blah之后固件升级程序就自动运行了。由于我已经升级过了,所以这里选择no。想升级的朋友选择yes安心等待升级完毕之后按电源键关机重启即可。

   

2. Intel 的启动U盘
    通过上面的论述,相信很多反应快的朋友已经可以举一反三制作出Intel的启动U盘了。不过我在这里还是给小白们准备了Intel 的启动U盘制作过程。
    首先还是接上U盘,并在磁盘工具中抹掉成为Fat格式


之后解压0911036202M388208850.iso,将其中的 IMG 文件放到桌面


接着还是进入终端,输入
    diskutil list

    确认自己的U盘挂载名称之后输入
    diskutil unmountDisk /dev/disk2
    随后用dd命令写入引导镜像
    dd if=~/Desktop/Bootable_2.88M.img of=/dev/disk2
    最后安全弹出磁盘
    diskutil eject /dev/disk2

    如果制作成功,终端会显示写入内容的大小和时间等信息。拔下U盘再接上,名称已变为 ISSDFUT ,内容如下:


重启,进入refit引导选择界面。注意小鱼图标下方显示的 “ISSDFUT”,证明确实从刚才制作的U盘进入的


同样一堆blah blah blah之后升级固件。当然,这里我没有安装Intel的SSD,也就无法进行后面的升级操作了。        


至此,M4和Intel SSD的带引导功能的固件升级U盘制作完毕。


第三节:总结及收尾工作
        升级完毕之后的U盘仍然可以作为正常数据盘使用。格式化一下即可。在格式化之后,可能会留下一个引导分区,不影响数据的存放。如果以后又有新的固件放出,可以继续采用上文的方法制作启动U盘,免去没有光驱、光碟、win环境等各种苦恼。
        对于一些有洁癖的朋友,如果你们不再需要refit引导界面,可以直接删除根磁盘下的 efi文件夹以及 /Library/StartupItems 文件夹下的 rEFItBlesser 文件夹。参见http://refit.sourceforge.net/doc/c1s3_remove.html


        最后,启动U盘的制作流程简述如下:
1.下载对应品牌SSD的升级固件,多为 .iso 格式
2.解压iso文件,找到boot文件夹中的 .img 格式的文件,大小一般在2M或者更大
3.将U盘格式化为fat类型,进入终端用dd命令将 .img文件写入U盘
4. 重启后利用refit选择FreeDos的图标,进入升级界面。




======================中场广告========================

第四节:启动U盘的制作原理
        本节留给对引导U盘制作感兴趣的朋友。

        Mac在默认环境下,仅支持苹果自己的启动方式,以及osx下用bootcamp分出的win系统启动方式。这里仅仅是猜测,苹果对启动方式做了限制,在开机时搜索各分区的固定位置,如果发现苹果的引导形式或者基于bootmgr形式的引导就交管给它们进行系统引导。这也可以解释为何Lion不在支持winxp的安装,因为xp采用的是boot.ini+ntldr 的方式并不在Lion的支持之列。
        接下来的问题就是如何给U盘注入引导区块?


        在win下,有成批的软件支持U盘引导项的注入。例如ultraISO,bootice等等~但是mac下的选择并不多,可以理解的一个原因是:Mac根植于Unix,已经自带了 dd 指令。这个指令如此强大以至于不需要其他的工具来辅助完成了。

   

        dd 指令有很多参数,使用方法也非常灵活,这里仅举简单的例子介绍常用的几个指令。
        看一下上文所述的dd指令:
   
  1. dd if=~/Desktop/BOOT2880.IMG of=/dev/disk2
复制代码


        这里 if 的含义是输入文件的位置 input file ,后面用等于号告知这个文件的路径。在osx系统中,路径最前面的波浪号代表 /<osx disk>/Users/<user name now using> 比如我的Lion系统装在了 “Lion”分区,我目前使用的用户名为“Foxpro”,故波浪线代表 /Lion/Users/Foxpro 。上文中我将镜像文件置于桌面,于是该镜像的路径可简写为 ~/Desktop/BOOT2880.IMG


        接下来的 of 指输出文件到何位置 output file (to…) 同样用等于号告知输出路径。在osx系统中,磁盘是挂载在根目录下,通过diskutil list指令的查找,得知本例中U盘挂载在 /dev/disk2下。那么为何在这之前需要将这个磁盘卸载呢?


        因为dd指令是按块写入的,有点像ghost写入的原理。只不过ghost是按簇写入的,而dd指令可以指定写入的最小单位。既然磁盘都是通过一个固定区域的固定代码完成引导的,那么不做理解地全盘“照搬”到新磁盘上,这个磁盘“理应”具有引导功能。由于一般磁盘格式化后在磁盘最开始的几个扇区有特殊代码并设置为隐藏,所以我们不能直接写入镜像,而是要先卸载已经挂载的磁盘。这样才能保证我们写入的内容位于“整个磁盘”的最前端。


        而对于某些格式,比如苹果的HFS+。其引导格式并不位于磁盘的最前段,而是在1024*8处。故要处理能够引导到osx下的设备,需要在dd后面加上写入的初始区块,格式如下

  1. dd if=(…) of=(…) bs=8192
复制代码


        总体而言,在mac下需要做的任务就是采用dd指令,将本身带有引导功能的镜像按块写入U盘的最前端扇区,最终通过refit进行多系统的引导。

    终了,本文最需要感谢的是FreeDos,syslinux,refit这些开源项目。有了这些大牛大虾们的无私奉献才能让我们在苹果环境下进入本无法进入的禁区,实现Dos环境下的固件升级。当然,不得不提的是苹果根植于Unix,其中自带的很多工具比如终端、dd命令、方便的系统截图也是本教程的重要推动力。
                                                                                               
Enjoy fun!







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
wsy2220 发表于 2012-4-15 22:44 | 只看该作者
本帖最后由 wsy2220 于 2012-4-15 22:49 编辑

很好的技术文.
这些"歪门邪道"的开源项目确实在这些情况下很有帮助,比如plpbt(Plop Boot Manager).我经常用它在虚拟机里用来让U盘引导启动
不知道mac下能不能用这个来引导U盘或者光驱来实现刷固件,我没有mac,希望楼主可以尝试一下.
3#
jeffxl 发表于 2012-4-15 23:05 | 只看该作者
虽然不是在我们这里首发,但是还是相当支持这样的原创技术文。给分了
4#
灵威谁仰 发表于 2012-4-15 23:08 | 只看该作者
好文章,很需要这个
5#
duskash  楼主| 发表于 2012-4-15 23:25 | 只看该作者
wsy2220 发表于 2012-4-15 22:44
很好的技术文.
这些"歪门邪道"的开源项目确实在这些情况下很有帮助,比如plpbt(Plop Boot Manager).我经常用 ...

谢谢您的提醒,今晚来不及了,明天我会测试的
6#
wsy2220 发表于 2012-4-16 00:02 | 只看该作者

RE: 琢磨了半天,终于搞懂怎么在Mac下制作SSD的启动U盘

duskash 发表于 2012-4-15 23:25
谢谢您的提醒,今晚来不及了,明天我会测试的

这里是使用手册http://www.plop.at/en/bootmanager/full.html
7#
duskash  楼主| 发表于 2012-4-16 00:10 | 只看该作者
wsy2220 发表于 2012-4-16 00:02
这里是使用手册http://www.plop.at/en/bootmanager/full.html

呵呵,您发前面一贴的时候我就已经爬去看了~
仅看完了手册的前几节,感觉问题不大。明天做进一步测试,晚安
8#
gcafrk 发表于 2012-4-19 00:24 | 只看该作者
这个帖子很好,我用MAC系统,值得好好学习一下。收藏了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部