GPT与MBR那些纠缠不清的故事.docx
- 文档编号:11070352
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:25
- 大小:3MB
GPT与MBR那些纠缠不清的故事.docx
《GPT与MBR那些纠缠不清的故事.docx》由会员分享,可在线阅读,更多相关《GPT与MBR那些纠缠不清的故事.docx(25页珍藏版)》请在冰豆网上搜索。
GPT与MBR那些纠缠不清的故事
GPT与MBR那些纠缠不清的故事
第一弹——MBR与GPT都是什么呢?
那个……最近看威锋上很多同学把分区表弄乱了(其实也没有,有一两个而已),感觉很多同学还是在用Windows的分区思维来看Mac,对于Mac使用的GPT(GUID分区图)不太了解,那我就敲篇科普文……本人说话有点啰嗦……所以请各位包含……还有本人才疏学浅,欢迎拍砖~
很多同学很喜欢用Windows分区思维来看Mac,觉得用Windows分区软件来分区问题不大,但是这样就造成了很多问题,有些同学改完分区之后会发现,咦?
分区不见了诶~好神奇哟。
然后剩下的我就不说了。
用自带的磁盘工具分区也经常出问题,那么我就来给大家讲讲Mac的GPT与Windows的MBR之间的二三事
电脑的硬盘都有分区,这个大家应该都知道,但是其实这个分区在硬盘上是不存在的。
总不能说,我买块硬盘,咣当用分区软件一分,一下子就把硬盘磁碟给那笔画出来几个区。
然后这个是第一个分区,这个是第二个分区,然后这个装Windows,那个装OSX等等。
分区是存储在分区表上的。
这个大家都知道我也就不再说了,但是分区表也是分格式的,就像一个登记表一样,记录着每一个分区的开始和结束位置(一般是以柱面、磁头、扇区做单位)。
PC上使用的一般是MBR,也就是所谓的“主引导记录”,这个分区表一般存储在磁盘的第一个扇区。
但是MBR(主引导记录)是PC用的东西,Mac从PowerPC时代就不是用这个的。
现在大家如果到磁盘工具里,还能看到一个Apple分区图(如下图)这就是当时的产物
Apple分区图是为了配合当时的PowerPCMac使用的(具体用来配合他的基础系统是什么技术我也不是特别清楚,有知道的同学可以帮忙补充一下),但是到了06年IntelMac的时候,就要用一种和Intel兼容的技术了。
Apple当时没有选用当时已经用了N年,可以说“古董级”的BIOS作为电脑的基础系统。
而是使用了Intel当时正在大力倡导的EFI技术。
说道BIOS,我这里跟大家简单介绍一下,BIOS这种神器是从IBM时代开始的。
具体的工作可以说就是几个:
首先这个东西会检测系统硬件是否正常,然后接下来,通过CMOS里的设置看明白是要启动哪个设备(比如光驱、硬盘、闪存,还有上个世纪的软驱和比较奇葩的网络等等)并按照顺序检测。
通过选定的启动设备启动系统。
这个东西可以说当初作为一个电脑的基础系统,起了很大的作用,但是用Mac的同学都应该知道,Mac下是不需要设定启动设备的。
如果要启动到闪存盘也是只需要在启动的时候按住Option键来选定而已,而且最好的是这个选定界面支持鼠标。
那为什么在Mac下就这么简单呢?
这就要讲到EFI技术了
话说这个EFI技术是Intel当时极力倡导的,后来交给一个组织发展,改叫UEFI。
不过不论叫什么,这个东西他是好的没错。
好处呢就是他的数据(如果我没记错的话)是保存在闪存上的,而且是用32位的C语言开发的。
这个什么语言可以不用管它,但是需要知道的一点就是这个可以执行一些比较复杂的程序。
比如说在09年左右开始,貌似华硕就出过一款主板,内置了一个紧急恢复系统,用于在操作系统崩溃的时候恢复数据用的。
还自带一个浏览器,可以说是已经到了神器级别……不知道现在的华硕板子还有没有这个玩意了。
总之,那段时间之后的主板大都开始配备EFI了。
笔记本也是这段时间才开始配备的。
好了,总算把EFI的问题倒腾完了,接下来,继续说GPT的问题。
GPT和MBR不同,他并不是在一个固定的扇区的,而是从在第一个扇区之后开始(为什么保留第一个扇区我等会跟大家解释)作为一个分区进行保存,分区表可以要多大有多大。
GPT作为一种分区表是极好的,优点是什么呢?
我来给大家讲解一下。
刚才我也说过,BIOS是管电脑启动的,但是他知道该启动哪个设备之后,如何知道该启动哪个分区呢?
这个在MBR中是由所谓“活动分区”管理的。
也就是说,BIOS会在之后读取MBR中的“活动分区”,然后根据活动分区加载启动器(比如WindowsXP的ntldr、WinVista的bootmgr等等),由启动器再加载操作系统。
但是,这样就造成了一个后果,就是比如我在A分区装了个Windows,B分区装了个Linux,必须指定一个活动分区然后用他的引导器来引导操作系统。
这一点可能有同学不太理解。
就是说,如果你装了Linux和Windows,你必须选择使用一种引导器,然后再由引导器自动(或者你手动)添加另一个操作系统。
比如选定GRUB(Linux的引导器),那你能看到的就是GRUB那个方框式界面,如果选定了bootmgr,那就能看到的是“Windows启动管理器”那个界面。
当然一般Linux和Windows共存的时候一般都用GRUB的。
而GPT加载的方式就不一样。
虽然也有引导器,但是没有活动分区这码事。
具体的引导方式我也不清楚(不清楚你说毛啊亲)。
至少在Mac下我理解是通过设定引导分区来进行的。
有知道的同学可以告诉我一下……
说完了GPT的第一个优点,接下来说第二个,这个优点就是GPT对多分区的支持很好。
很多同学经常性被MBR分区表的那个什么“逻辑分区”、“主分区”、“扩展分区”犯晕。
为什么要有这么多类型的分区呢?
就是因为MBR只有一个扇区(我没记错的话)。
这个扇区只支持四个分区的信息。
所以,只能分四个区。
但是为什么(事实上)MBR还能分很多区呢?
这就是扩展分区和逻辑分区。
扩展分区就是一个大的分区(在MBR看来),但是其中实际包含要多少有多少个逻辑分区。
每个逻辑分区都存储着下一个逻辑分区的信息,然后这样连起来。
而GPT刚才我也说过,他可以要多少个扇区有多少,所以他可以存储最多无限个分区。
当然,看你给GPT分配多大空间了。
最后说GPT的第三个优点,就是对大硬盘的支持好。
前一段时间一直爆出iMac3TB硬盘的版本无法使用BootCamp,就是源于MBR使用的是CHS寻址,也就是我刚才说的磁头、柱面、扇区寻址办法。
而这种寻址不能支持2TB(精确说应该是两点多T,有零有整的)以上的硬盘。
所以就造成了这个结果(至于BootCamp的实现原理我等会再和大家说)。
而GPT使用的是LBA寻址,支持到十几EB的硬盘。
几十年内是足够用的。
这么好的技术,为什么一直在PC上得不到应用呢?
原因就是当时Windows对GPT的不支持。
这里我就要狠狠地吐槽一下微软了。
微软的Windows操作系统我一直管他叫“新技术推进的最大障碍”(其实Office神马的也是……不过这个留待下次吐槽)。
比如说高DPI显示器(Retina屏幕),在Mac下可以说是神级的一个东西,但是为什么在PC下就推广不起来?
原因就是MS一直是对高DPI显示持保守态度。
07、08年的时候就有厂商出过20英寸的准高分辨率显示器。
当时的显示器一直是叫好不叫座,为什么呢?
原因就是当时的20寸显示器(16:
10)都使用了1680x1050的高分辨率,而当时的WindowsXP和WindowsVista没有针对高分辨率做任何优化。
造成的直接后果就是字体在这种分辨率下很小,看着非常累。
于是厂商们都使用低分辨率。
直到今天,1366x768也是主流。
同理换到EFI上也一样。
当时的WindowsVista(32位)并不支持作为系统盘使用GPT的,而WindowsXP(32位)干脆就不支持使用。
64位的Windows倒是支持GPT作为启动盘了。
但是当时64位的Windows多少人用啊……反观Linux,从2008年左右开始的Linux不论32位还是64位都支持GPT作为启动盘了。
微软直到最近的Windows8才完整的对GPT与LBA进行支持(没记错是这样)。
我估计还是为了EFI的安全启动(可以让电脑只能使用Windows)而支持的。
所以别看Apple有的时候专利流氓……微软也是挺恶心的……大公司都这样……
好了,那么为什么有些同学在拿Windows的磁盘管理来调整分区的时候造成分区表乱掉呢?
这个我可以说说BootCamp的实现原理
Windows就算是现在对GPT的支持好一点了,也只是64位有限支持而已。
所以当初Apple用了一个折中方案,叫做MBR/GPT混合分区表。
正常的GPT为了防止不识别GPT的分区软件弄乱分区,所以在原来的第一个扇区(也就是MBR用的)写入了一段信息,将整个磁盘写成了一个未知格式的分区。
这样在MBR软件读取的时候,会显示整个硬盘有一个未知格式的分区,进而停止访问。
但是BootCamp为了兼容,在这个写入了前四个分区的磁盘信息,这样在Windows下也可以读取了。
但是这样在调整的时候就出了问题。
Windows的磁盘管理可能会把GPT分区表的分区删除,然后……整个硬盘就变成MBR分区表了……后面的后果……我不用说了吧
好了,码了这么多,原理说完了,接下来就是讲讲BootCamp的话对于分区该有什么注意事项了:
1.对于Mac,千万不要尝试使用任何Windows下的分区软件来调整分区。
Windows自带的磁盘管理是无法识别GPT/MBR的混合分区表的。
第三方管理软件我不知道但是尽量别用。
自带的磁盘管理就好
2.对于3TB以上硬盘的Mac,如果要安装Windows,需要将BootCamp分区置于2TB之内。
好了,就说这么多了。
本人才疏学浅。
对很多东西不是特别了解,很多知识也记不清了。
所以如果有说错的还是请多拍砖
本文部分内容参考Wikipedia。
本文全文基于cc-by-sa协议发表,您可以自由复制、放映、传播、修改、商业使用本作品。
唯请遵循以下条件:
1.请署原作者之姓名(Park)
2.请仍基于本协议进行发表
附加条款:
1.若转载请通知(不是让我同意,只要让我知道就行……毕竟我挺想知道我的文章被谁转载了)
2.商业使用请寄送样刊(就是收藏……看样子也没人会商业转载吧……)
修改:
2013年1月29日:
1.修正笔误(Bootmgr与Boormgr)
2.解释授权协议,修正附加条款
GPT与MBR那些纠缠不清的故事第二弹——MBR与GPT实验探究(我承认我被物理课本洗脑了)
首先,是我的试验品……SanDiskCruzerBlade8G闪存盘一只
(我的闪存盘……跟随我是走南闯北啊……当然……我每次需要试验最先也都是想到他)
我打开磁盘工具,大家可以看到我这个闪存盘是MBR格式的分区表
好,首先,让我们把他的分区表改为GPT。
我们点击“分区”标签,并选择“一个分区”
然后再点击“选项”
选择GUID分区表并点击“好”
之后点击应用,好了,一个崭新的植物人……不GPT分区表就要诞生了
最后点应用
再确认
好了,分区完成了
我们来看看这个闪存盘在Windows下会变成什么样
我们看到,当插入闪存盘之后,Windows下面弹出了一个对话框,要求对闪存进行格式化。
但是这个闪存盘刚才大家也看到了,是Fat格式的,应该Windows能够识别
(要格式化哦亲)
那我么接下来打开Windows的磁盘管理看看变成了什么样
我们可以看到,Windows下面这个磁盘变成了两个分区,其中第一个写的是“GPT保护分区”,第二个分区是RAW。
是Windows不支持Mac下格式化的闪存盘吗?
我们就格式化一下看看。
(200M……我闪存盘剩下的空间呢?
空间呢?
比尔盖子~赔我闪存盘~~)
我们会发现一个很有意思的事情,明明我的闪存盘是8个GB的,为什么这里变成了200M呢?
不管他,格式化……
格式化完了,这个时候我们看一下闪存盘在Windows下面变成什么样了吧
(555~比尔盖子)
我们会发现,Windows下面出现了一个空的可移动磁盘,大小仍旧是200M。
那我们回到Mac下来看看。
回到Mac下面我们会发现,原来的闪存盘除了我们分出来的那个‘1’分区之外,还有一个NONAME的分区。
没错,大小正是200M
我们再回到磁盘工具里看一看
(变身……MBR分区表~)
发现了没有,这里的闪存盘分区表已经变回了MBR(主引导记录)。
这是为什么呢?
原因就在于Windows只支持可移动磁盘(闪存盘)的第一个分区,如果闪存盘有多个分区也是读取第一个的。
但是我们的试验用闪存盘是GPT分区表。
GPT我在前面那篇帖子里也说过,是将分区信息存储在第一个隐藏分区的(也就是前面在Windows看到的“GPT保护分区”)。
而Windows就会误把这个分区当做一般的分区来要求格式化。
当格式化完以后,这个闪存盘里的GPT分区表自然就不存在了。
但是我之前也跟大家说过,Mac为了兼容,一般会制作GPT/MBR混合分区表。
也就是在原本MBR分区表该待的地方放一个MBR分区表。
这样,我的闪存盘才能在格式化GPT分区以后还能认得出来。
好了,我上次的试验已经跟大家复刻完毕了。
这个时候我突然发现一点比较好玩的事情,就是我使用的是闪存盘做试验,而闪存盘有他在Windows下的受限性,那么,我就来更进一步,用移动硬盘来做个试验吧。
我们的试验对象(2号):
三桑S2160GB移动硬盘一只
(我其实有很多块硬盘,不过都存放着……滴……所以就只好用这块了,各种累啊……光把数据倒腾到TimeCapsule上就花了一下午啊亲!
一下午啊!
)
好了,还是老规矩,首先是肯定要拿磁盘工具把他的分区表转化为GPT的
这次不太一样,我要把他分成两个区,看看Windows下面会怎么样
大家可以看到,他的分区表经过我的蹂躏哦不调教已经变成了GUID分区表(GPT)
(嗯……很久没看到的设备驱动安装画面。
比Mac下慢多了)
好了,接下来我们就把他连接到Windows下面吧(顺带一提,我这里和之前选用的Windows都是64位的Windows7系统)
大家可以看到,这里识别出来没有任何异常。
那我们到磁盘管理里看看
两个分区和GPT保护分区都能识别出来,没有异常
那我们试试把他带回到古老的WindowsXP下呢?
(使用的WindowsXP是SP3的32位版,而且貌似没有经过任何的改造)
也没有问题
那么我们看看在WindowsXP的磁盘管理里是什么样的呢?
WindowsXP没有任何问题,而且居然能识别出来GPT保护分区
哥凌乱了啊……本想好好把自己硬盘的分区表整乱然后最后留下一句“绝对不能在Windows下对GPT分区乱动啊”的警告然后点发帖按钮,怎奈何Windows不给力啊……好吧……我继续折磨我这块硬盘
我们先回到Windows7下
既然Windows7能够识别这一块硬盘,那么磁盘管理能不能对这块硬盘进行分区等调整呢?
那我们就试试在“1”分区与“2”分区之间做出一个卷标为“15”的分区吧(别吐槽我数写错了……卷标不能用圆点,所以1.5就变成了15……)
首先,右击“1分区”
(我擦,居然没有压缩卷!
?
)
哎呀呀呀,本来想通过“压缩卷”功能来调整分区的,但是……
既然如此,那我试试删除卷吧,子曰:
“破而后立……”(孔子:
我哪说过这么一句话?
)
(啊朋友再见~啊朋友再见~)
好,这个刚才的“1”分区已经成功的“成为非人”(这个梗得读过1984才能懂)了,那我们就来建立两个新的分区。
(“简单卷”是“动态磁盘”的产物,不过有多少人用呢?
)
(既然要建两个分区就不能全把剩余空间用了,随便打个小点的数吧……)
(不过别格式化成NTFS,虽然说我的OSX装插件了能够写入,但是还是保险一点好。
另外卷标也要“符合剧情”的改为“1”)
(嗯,完成了)
(第二个分区)
(嗯?
)
发现什么蹊跷没有?
对了,这个分区“15”显示成了“逻辑驱动器”,也就是“逻辑分区”而不是“主分区”。
但是GPT应该是没有必要使用也没有逻辑分区的,那我们就回到Mac下面看看
灵异的事件发生了有木有?
刚才建立的“1”和“15”两个分区在这里又变回了一个“1”分区,好像Windows根本没有动过这个分区一样
再连回Windows试试
大家可以看到,这个分区又变了回来,变回了一个“1”,一个“15”和一个“2”的布局。
啊……总算把分区表弄乱了,心情舒畅啊舒畅(你是唯恐天下不乱么亲……),接下来我就来解释解释为什么会这样。
没错,又是MBR/GPT混合分区表的问题。
两个分区表我也就不唠叨了,而在Windows下会默认装载MBR分区表,当我们在Windows下进行更改时,更改的只是MBR的那个分区表,而GPT的分区表没有动,所以回到Mac下仍旧是两个分区。
同时,我在准备下一个试验的时候发现了磁盘工具告诉了我这个问题
(Mac贴心啊~赞一个)
大致应该是磁盘工具侦测到了MBR有改动,为了防止潜在的问题,才防止了调整分区。
好了,继续下一个试验,大家看了我的前文应该都知道,MBR只支持4个分区,那么我们来弄五个分区吧
(5个分区……后面还有十几个分区的选项,但是就是我没选……)
嗯,还是老流程。
不过很坑的一点是这里默认的不是FAT格式而是HFS+……我擦擦擦擦擦……
(记得要选FAT哦亲)
(分区进行中)
好了,分区终了,把他带到Windows下看看吧……
果然,在Windows下面,包括GPT分区,只能识别出来前四个分区,也就是说……实际能看到的就是3个分区……其他的都变成了:
可用空间……这个的原理(MBR只能识别四个主分区)我不用多跟大家讲了吧?
好了,这就是总共的三个试验(本来还打算做第四个试验……把移动硬盘的GPT保护分区给格式化了,但是后来发现Windows的磁盘管理对GPT保护分区有一定的保护措施,“格式化”和“删除”都是灰色的(两个Windows版本都是如此……)于是只得作罢。
其实我还很想做一个试验,就是找个大于2TB的硬盘来看看大硬盘支持的问题,不过考虑到瓦么那么多米+没有3TB的2.5寸硬盘……看来这个只得等到生物全息存储技术发达的那一天了。
经过这次试验,之前有一位同学的问题现在我也能做出解释了,就是如何修复被Windows磁盘管理给弄挂掉的分区表。
一般这种问题都是由于只调节了MBR分区表而没有调节GPT造成的。
应该对照MBR重建GPT,应该就可以了。
再次说明本文测试用工具:
Mac系统采用OSX10.8.2
Windows全部运行在虚拟机ParallelsDesktop8上
闪存盘为SandiskCruzerBlade,容量为8GB,使用USB2.0连接
移动硬盘为三星S2,容量为160GB,使用USB2.0连接
虚拟机系统为WindowsXP32bitSP3及Windows764bitSP1
本试验中所有截图版权归源软件公司所有
我吐槽第一次:
我擦……为了这个试验我要重新分区有木有……原本我的闪存盘是做好了Mac恢复盘的有木有……一做实验全没了有木有!
还要重做有木有!
写完东西都快崩溃了有木有!
我吐槽第二次:
开虚拟机要开俩有木有……一气开俩CPU快爆了有木有……得亏我是RetinaMacbookPro怪兽本有木有……我终于找到能够让我的RMBP物尽其用的另一个办法了……开俩虚拟机……
我吐槽第三次:
好容易写完了一堆截图全是1MB以上的有木有……传不上来有木有……得自己转格式压缩有木有……Mac下没有工具有木有……然后还得开虚拟机用Windows的Paint有木有……求Mac下压缩和转换图片的软件……
吐完了……乃们看着办吧……
本文全文基于cc-by-sa协议发表,您可以自由复制、放映、传播、修改、商业使用本作品。
)
本来这个系列我不打算写第三弹了。
不过没想到……在我写完之后居然有更多的人因为磁盘问题求救。
要疯了……要疯了……所以我把我这两篇文章的内容归纳总结一下。
希望能对BootCamp的同学有用。
使其免于数据丢失的噩梦。
1.所谓的“GUID分区表”就是GPT,“主引导记录”就是MBR。
GPT和MBR是他们的简写。
2.Apple的磁盘工具做出的磁盘(在选择了“GUID分区表”的情况下)又有GPT又有MBR。
3.MBR有他的先天缺陷:
不能读取四个(在GPT里是第三个及以后)的分区,不能读取超过2TB的硬盘部分。
4.GPT会在硬盘的前200M划分一个隐藏分区用来存放分区表。
在Windows的磁盘管理能看到显示为“GPT保护分区”。
请切勿删除、格式化此分区,否则会造成分区表变为“主引导记录”,无法正常使用OSX系统
5.不要尝试使用Windows下的任何工具来调整磁盘分区!
所有的尝试都可能造成分区表错乱,造成OSX无法启动、数据丢失的严重后果
6.磁盘工具在安装Windows后就会将分区表锁定,除非删除Windows,否则无法对Windows分区进行任何的调整大小。
请务必在安装前设定好分区大小。
7.在启动时按Option键打开的分区列表中,如果有Windows,只是说明你的MBR分区表内有设置活动分区。
并不代表Windows正常。
8.如果GPT分区表损坏,可以尝试用gdisk之类的工具修复。
不过本人不保证一定能修好
9.OSX……还是安安心心的用虚拟机吧……
10.随时补充
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GPT MBR 那些 纠缠不清 故事