Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

查看: 13471|回复: 16

[原创内容] 非UEFI,BIOS引导GPT磁盘,MacOS + Linux + (Hybrid-MBR+扩展分区+Windows) [复制链接]

Rank: 1

UID
1879892
帖子
49
PB币
9
贡献
0
技术
32
活跃
4
发表于 2013-5-6 20:31:05 |显示全部楼层
本帖最后由 wapcy 于 2013-5-6 22:13 编辑

适合主板不支持UEFI的,传统BIOS引导GPT磁盘,安装各系统全攻略。
  • 安装多个Mac OS X 和多个Linux, 在这些系统下识别为GPT磁盘。
  • 安装多个Windows系统带扩展分区,在Windows下识别为MBR磁盘。
  • Mac OS X和Linux在GPT分区下可以正确读写Windows下的MBR分区,包括扩展分区,这些分区被认做GPT主分区。
  • Windows下可以把2TB以内的GPT分区认做扩展分区,完全正确读写,互不破坏分区结构。
  • 采用的是Hybrid-MBR技术,打破了MBR分区下面只能有三个可用分区的限制。


本文实例中GPT磁盘分区结构,与之对应的兼容MBR分区结构如下图:
gpt-mbr.png




实测中我安装了Windows8+7/Server2k8 + XP/2k3 + Linux(Fedora+Ubuntu+OpenSUSE)+MacOSX
实时上可以把扩展分区做的更大,可以包含到Linux和MacOS,但我不希望在Windows下看见Linux和MacOS分区,我只希望分区做的尽可能简单。
先看一下效果:
  •   在Mac_OS_X下是GTP分区,磁盘工具截图如下:(前8个分区是Windows分区,NTFS是系统分区仍旧设为只读以避免误操作,HOME分区是档案盘,FAT32,所有系统都支持写入。中间灰色的是Linux分区,不可读
D501A390-DBFA-4DC8-8B54-228DB8687488.png



  • 在Windows下的分区结构,截图如下:(扩展分区实事上对应的是GPT的主分区)
Windows-Partition.jpg


   在Linux下的分区结构如下:(所有分区都可以完全读写!为了安全,把HFS+和Win系统分区设为只读,仅HOME分区可写)
ok.png



---------------------------------------------

实现方法有很多种,每种在后面都会补上,先说一下要则。
  • 不管在哪个系统下进行分区,都要遵循各系统对分区的要求和规则,达到最佳兼容性和效率性。
  • 每个系统对MB,GB的单位和大小都是不一样的,这里分区大小的概念全以扇区为标准,1扇区=512字节,1MB=2048扇区。
  • EFI分区大小为200M,在Mac下是209.7M,如果不是这个大小,使用Mac对磁盘进行操作,哪怕不动任何分区,仅仅是格式化一个分区,都会强行重建此分区。当然咱也可以设置为更大,缺点是一旦重新安装Mac或是在Mac下修改分区,都必须重新调整和修改EFI其它分区。
  • 如果主板不支持UEFI,则必须创建BIOSBoot分区,这个分区可以创建在任何地方,为了安全和方便以后修改分区而不影响启动,这里设在第二个主分区。
  • 扩展分区也是一个主分区,在他内部又分了很多逻辑分区,逻辑分区和主分区在本质上是一样的,区别就是主分区的分区表写在MBR,而每个逻辑分区的前面都要留最少63个扇区,这些扇区就是他的分区表。Windows下的分区工具是自动创建此扇区,但是在GPT里如果要把某个分区做为逻辑分区,就要为他空出最少63个扇区大小。



空磁盘,最简单的创建方法:
  • 先简单说一下步骤,先大致看一下,后面上图。
  • 用Windows下的DiskGenius工具进行分区,大致如第一个图,设为MBR分区,创建的时候,每个分区都要选中“对齐到下列扇区的整数倍:2048”。当然也可以不选。传统MBR分区是63扇区对齐,LBA是柱面对齐,1柱=255磁道,1磁道=63扇区,乘下来就是16065扇区, 每个分区的起始扇区都是16065的整数倍,最小分区大小就是16065/2048=7.8MB,而GPT分区是最佳设置就是2048扇区对齐,这样每个分区都是1M的整数倍。Mac默认是8扇区对齐,但如果你的磁盘是2048扇区对齐时,Mac也会以2048对齐方式创建和修改分区,同样Linux也是。目前最新的系统都支持4096扇区对齐,也就是传说中的4kb扇区技术。
  • 需要Linux命令进行无损转换GPT。可以选择Ubuntu或Fedora发行版的U盘启动盘(LiveUSB)。
  • 进入Linux启动盘,备份MBR,然后在终端输入gdisk /dev/磁盘号 回车,再输入w回车,此时MBR磁盘瞬间变成GPT,数据无损,所有扩展分区都变成了GPT主分区,然后再还原MBR,此时就变成了带扩展分区的兼容MBR了,整个过程快到5秒都能搞定。
  • 安装Linux,Windows,Mac。Windows可以在第2步分完区后立即安装。Linux无所谓。注意安装后Mac后,分区表又变成三个主分区了,此时再进入Linux,还原MBR,搞定。





3

查看全部评分

超级用户

Rank: 5Rank: 5Rank: 5

UID
452930
帖子
365
PB币
660
贡献
0
技术
0
活跃
113
发表于 2013-5-6 20:40:16 |显示全部楼层
标题党!

Follower

Rank: 7Rank: 7Rank: 7

UID
1503768
帖子
641
PB币
1853
贡献
0
技术
5
活跃
121
发表于 2013-5-6 21:57:02 |显示全部楼层
好像应该顶一下

Rank: 1

UID
1879892
帖子
49
PB币
9
贡献
0
技术
32
活跃
4
发表于 2013-5-7 01:03:35 |显示全部楼层

空磁盘的分区操作步骤

Windows下的空磁盘操作方法:
重点是创建符合Mac标准的EFI分区,以及兼容全系统的BiosBoot分区,以及GPT保护分区,以免在安装MacOSX和Linux时他们的程序会强行修改这些分区。

先创建EFI分区:先选中2048对齐,再选其它的。选中后,EFI的起始扇区应该是2048,大小应该是409600个扇区,整整200M这样是符合Mac标准的。缺点是在Mac下操作分区,系统会重建一个起始为40,大小为200M的EFI,需要重新用工具调整。 EFI.jpg

再创建8M的BiosBoot分区:注意以后每次都要先选中2048对齐。
Biosboot.jpg

再创建Windows8的分区:
WinMain.jpg

设置Windows8的分区为活动分区:
active-win.jpg


这样的话前二个分区的大小就确定下来了,然后删除前两个分区,重新创建为GPT保护分区:
remake-efi.jpg

注意修改GPT保护分区的起始扇区为2,(1就是MBR)也就是柱面0磁头0扇区2:
Protected-MBR.jpg

有了GPT保护分区,在支持GPT磁盘的系统下,Mac,Linux 会把磁盘认做是Hybrid-MBR结构的。

创建扩展分区:大小是800GB,在扩展分区的后面还有Linux和Mac分区。
Extend.jpg

创建各个逻辑分区:
logic.jpg


逻辑分区创建完后,再创建Winodws下的第四个主分区,用于大数据存储备份之类的:
primary-last.jpg

然后4个主分区就创建完了,剩下的分区在MBR系统是动不了的,不可能创建第五个主分区,也就起到保护作用了。用于Linux和Mac分区,在支持GPT的系统下创建,留多少可以自已考虑。


然后在Linux下进行GPT-HybridMBR转换,这个是支持数据无损转换的,请看下楼。

小学生

Rank: 11Rank: 11Rank: 11

UID
71938
帖子
9929
PB币
22844
贡献
0
技术
60
活跃
1260

8周年庆典勋章

发表于 2013-5-7 01:23:52 |显示全部楼层
技术贴 可是咱看得有点晕了

Rank: 2Rank: 2

UID
2566547
帖子
148
PB币
8
贡献
0
技术
3
活跃
6
发表于 2013-5-7 03:17:14 |显示全部楼层
谢谢分享

Rank: 1

UID
1879892
帖子
49
PB币
9
贡献
0
技术
32
活跃
4
发表于 2013-5-7 04:09:03 |显示全部楼层
已有的MBR磁盘,在Linux下进行无损GPT-HybridMBR转换

上面的分区创建完之后,然后可以把各分区进行格式化,顺便有Ghost系统的可以把各个系统Ghost到相应的分区里,也可以全新安装各个系统,如果数据不重要,可以先不安装系统进行测试。

如果目前您已有MBR磁盘,安装了所有系统,包括MacOS和Linux,也是一样!只需用工具把第一个磁盘分区调小一点,在最前面划出210M的空间,按前楼所述创建出GPT保护分区即可。

1. 如果要同时安装WindowsXP、Server2003,必须把扩展分区设为第三个分区,且XP和2003必须安装在最后一个逻辑分区。
2. 请注意如果没有双磁盘,要保证有一个FAT32的分区,用于各系统把整个分区表进行临时备份
3. 做此步骤之前用DiskGenius把整个磁盘的分区表备份,备份到U盘和FAT32分区各一份。


步骤看似很麻烦,其实懂得这个系统的都没什么难度。
用Fedora或Ubuntu的启动U盘(LiveUSB)进入系统。
进入终端,输入下列命令进入root权限:

su 回车
输入下列命令,查看第一个磁盘,如果想转换的磁盘是第一个磁盘,磁盘号就是/dev/sda,如果是第二个磁盘,就是/dev/sdb
fdisk -l /dev/sda
fdisk.png

第四行可以看到大小是2000.4GB,如果不是,重新输入上面命令,把sda改成sdb,查看第二个磁盘。第三个是sdc,如此类推,然后下面的所有命令中的sda都要换成sdb或sdc,根据你的电脑
注意 列表中的 /dev/sda1就是GPT保护分区,起始扇区应该是1,如果不是1,说明您在Windows下操作有错误,请输入下列命令进行修改:中括号内是说明文字
gdisk /dev/sda回车 [修改第一磁盘]
x回车 [高级模式]
b回车 [调整某个分区的起始扇区]
1回车 [选择1号分区]
1回车 [输入起始扇区位置]
w回车 [写盘]
q回车  [退出]

备份MBR文件,此MBR其实就是Hybrid-MBR,临时保存在FAT32的分区下面, 这里U盘做为启动盘,是只读的不可写。
装载FAT32分区:(查看上图列表中有FAT字样的分区为/dev/sda6,根据你的电脑情况)
mkdir /mnt/bak
mount -t vfat /dev/sda6 /mnt/bak
备份MBR:
dd if=/dev/sda of=/mnt/bak/hybrid-mbr.bak bs=512 count=1
推出Fat32分区。
umount /dev/sda6

转换为纯GPT磁盘并创建Linux和Mac分区:
gdisk /dev/sda [用Gdisk打开磁盘1]
p 回车 [因为有GPT保护分区,则提示将转换为GPT格式,输入P查看分区,看看所有的分区都是否存在,关键是FAT32分区]
[如果没有错误,输入w回车就直接写盘退出就变成GPT了,这里还要创建其它GPT分区]
s [对分区号重新排序]
p [查看分区,如图]
gdisk-1.png


可见GPT保护分区被删除了,这里把他们恢复为EFI和BiosBoot分区,先是EFI:


n [新建分区]
[分区号,用默认值,直接回车]
2048 [输入起始扇区]
+409600 [输入终止扇区,EFI大小是200M,200x2048=409600,注意写上+号]
EF00 [分区类型,EF00是EFI的标志。创建过程如图]
efi.png


BiosBoot分区,起始扇区紧挨着EFI,
p [查看扇区,可以看到EFI的结束扇区为411647,则BiosBoot分区起始为411648]
bios-boot.png

按图中输入
n [新建分区]
[分区号,默认值 直接回车]
411648[输入起始扇区]
[输入终止扇区,8M x 2048应该是16384个扇区,应该输入+16384,这个值跟默认值一样的 直接回车]
ef02 [BiosBoot分区类型为EF02]

下面是创建Linux分区和MacOS分区的实例,很简单,只要算出 扇区数=分区大小(MB) x 2048就是。
s [分区号重新排序]
p [查看分区]
linux_boot_swap.png

如图最后一个分区是9,终止扇区是3154677759,那么新的分区应该从315467760开始。

创建linux_Boot分区,大小500M,格式Ext4
n回车[新建分区]
[输入分区号,默认值]回车
[输入起始扇区,默认值315467760]回车
[输入终止扇区,500M x 2048=1024000]+1024000回车
[输入类型,Ext4是8300,默认值]回车

创建Linux_Swap分区,大小8G,8192MB,格式swap
n 三个回车[新建分区]
+16777216回车[大小:8192M x 2048=16777216]
回车[类型:默认值]


创建Linux_Btrfs分区,大小是152G,相当于升级版的LVM,类似Win下的扩展分区,所有的系统都可以装在这个分区里
n 三个回车
+318767104回车 [大小:152GB x 1024 = 155648 MB x 2048 = 318767104扇区]
回车 [类型:默认值]

创建MacOSX Lion分区,大小是64GB  x 1024 = 65536 MB x 2048 = 134217728扇区
n 三个回车
+134217728回车
AF00 [类型]

创建下一个Mac分区,大小自已算
n 三个回车
+扇区数
AF00

依次类推就创建完了。

w [写盘并退出]


此时用磁盘工具可以看一下,以前的分区都完好无损,数据都在,MBR下面的扩展分区在这里也变成了GPT分区。
ok.png


建立Hybrid-MBR结构:
其实就是恢复之前保存的MBR文件,此文件保存在FAT32格式的分区里面,在GPT磁盘里找到此分区:
在上面磁盘工具里可以看到:我的系统是/dev/sda5,你的要看你的情况
或者终端里输入:
gdisk -l /dev/sda
Fat分区号是哪个应该很明白了。

装载FAT分区:
mount -t vfat /dev/sda5 /mnt/bak
恢复MBR:
dd if=/mnt/bak/hybird-mbr.bak of=/dev/sda bs=512 count=1

此时算是完成所有分区的建立,现在安装GURB2+BiosBoot,以引导GPT磁盘。
格式化EFI分区,分区号是1(/dev/sda1):
mkfs.vfat -F 32 -n "EFI" /dev/sda1
装载EFI分区,把引导安装在EFI分区:
mkdir /mnt/efi
mount -t vfat /dev/sda1 /mnt/efi
安装:
grub2-install --boot-directory=/mnt/efi /dev/sda
建立启动菜单:
gedit /mnt/efi/grub2/grub.cfg
内容如下,应据实情适当修改:
set timeout=5
menuentry 'Windows 8' {
  set root='hd0,gpt3'  #GPT3是Windows8的分区,也是MBR的活动分区  
  ntldr /bootmgr
}
menuentry 'Windows 7 / Server2008R2 {
set root='hd0,gpt6' # Win2K8安装在第6分区
ntldr /esldr            #破解的Win7、2K8,在根目录有个xxldr文件。如果设为bootmgr就失去破解了。
}
menuentry 'Deepin Windows PE 4.2 With GPT and AHCI' {
set root='hd0,gpt3' #Windows PE,深度版,支持AHCI和GPT磁盘
ntldr /dpldr
}


menuentry 'All Linux Boot In (hd0,gpt10)' {
configfile (hd0,gpt10)/grub2/grub.cfg  #Linux的Boot分区是10号,直接切换到他自带的菜单文件。
}


menuentry 'All Mac OS X Boot Loader' {
#要将Mac版变色龙里的各boot文件复制到EFI分区,GRUB有很多方法来引导
#引导文件名:boot 。也可以从Windows版的wowpc.iso里面提取。
set root='hd0,gpt1'  
multiboot /boot


#Mac变色龙有N多Boot方boot0hfs,这个应该是写在MBR的,不用写,直接用GRUB装载这个MBR:
chainloader /boot0hfs
#或者用boot1h文件,这个应该写在第一个Mac分区的第一个扇区,也不用写,直接用GRUB装载:
chainloader /boot1h
# 或者将boot1th写入Mac分区,比如是第15分区:
set root='hd0,gpt15'
chainloader +1

}


保存退出。


备份最终的Hybrid_mbr,到EFI分区,带引导信息的。
dd if=/dev/sda of=/mnt/efi/hybrid-mbr.bak bs=512 count=1


其它注意事项:

1.在各系统不要用现有的工具修改扩展分区,一般情况建立好了之后,很长时间是不会动的,如果需要修改,请参见后楼。
2. 安装过程中他们的分区软件和格式化软件都会洗掉Hybrid-MBR,但是不会洗掉EFI和BiosBoot分区,随时可以进入Linux进行恢复:
mkdir /mnt/efi
mount -t vfat /dev/sda1 /mnt/efi
dd if=/mnt/efi/hybird-mbr.bak of=/dev/sda bs=512 count=1
或者在Mac下面也行:
mkdir /Volumes/EFI
mount_msdos /dev/disk1s1 /Volumes/EFI
dd if=/Volumes/EFI/hybird-mbr.bak of=/dev/rdisk1 bs=512 count=1


本楼完。
后面楼有介绍:
把现有的带数据的纯GPT磁盘,创建Hybrid_MBR带扩展分区,并安装多个Windows系统,不伤数据。



1

查看全部评分

Rank: 1

UID
3754484
帖子
14
PB币
29
贡献
0
技术
0
活跃
0
发表于 2013-5-7 09:18:48 |显示全部楼层
wapcy 发表于 2013-5-7 04:09
已有的MBR磁盘,在Linux下进行无损GPT-HybridMBR转换

上面的分区创建完之后,然后可以把各分区进行格式 ...

顶技术贴
我脑袋疼
1

查看全部评分

Rank: 2Rank: 2

UID
233141
帖子
348
PB币
2161
贡献
0
技术
0
活跃
55
发表于 2013-5-7 09:25:08 来自手机 |显示全部楼层
技术贴啊,又复习了一次,顶

Rank: 2Rank: 2

UID
1447955
帖子
324
PB币
338
贡献
0
技术
0
活跃
48
发表于 2013-5-7 09:35:29 |显示全部楼层
技术贴啊,又复习了一次,顶

Rank: 2Rank: 2

UID
2615980
帖子
342
PB币
211
贡献
0
技术
21
活跃
102
发表于 2013-5-7 10:02:40 |显示全部楼层
看帖回复是美德

Rank: 5Rank: 5Rank: 5

UID
1070355
帖子
659
PB币
4
贡献
0
技术
4
活跃
348
发表于 2013-5-7 11:06:39 |显示全部楼层
看帖不回复是缺德!

Rank: 2Rank: 2

UID
3039278
帖子
244
PB币
262
贡献
0
技术
8
活跃
710
发表于 2013-5-7 12:12:18 |显示全部楼层
先马后看,顶一个

宇宙

Rank: 5Rank: 5Rank: 5

UID
1877147
帖子
774
PB币
4727
贡献
0
技术
503
活跃
1027

8周年庆典勋章

发表于 2013-5-7 13:28:30 |显示全部楼层
看帖不回复是缺德!

宇宙

Rank: 5Rank: 5Rank: 5

UID
1877147
帖子
774
PB币
4727
贡献
0
技术
503
活跃
1027

8周年庆典勋章

发表于 2013-5-7 13:30:02 |显示全部楼层
我想请问一下,如果acer 4750G bios支持uefi,在原有MBR磁盘,所有系统都装了,能不能用你的方法呢?如果能,是不是不用新建bios boot分区?

宇宙

Rank: 5Rank: 5Rank: 5

UID
1877147
帖子
774
PB币
4727
贡献
0
技术
503
活跃
1027

8周年庆典勋章

发表于 2013-5-7 13:40:43 |显示全部楼层
本帖最后由 cjdung 于 2013-5-7 13:41 编辑

追问:我的MBR分区表如下:
win8     (主分区,50G,NTFS)
Mac      (主分区,200G,HFS+)
Library (逻辑,250G,HFS+),这种情况下,能不能按照您的帖子,无损转换GPT后转用clover引导?目前是mac变色龙引导。不想格式化后两者,win8格式化没问题

OS fans

Rank: 9

UID
636386
帖子
877
PB币
109
贡献
0
技术
46
活跃
515

7周年庆典勋章

发表于 2013-5-7 13:45:55 |显示全部楼层
内容详尽的技术贴   实践前还需要补补课先
支持楼主
关闭

站长推荐

回顶部
Copyright (C) 2005-2017 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件