积分 20 最后登录 2019-2-4 精华 0 阅读权限 10 主题 3 UID 1879892 帖子 49 PB币 9 威望 0 贡献 0 技术 33 活跃 5
UID 1879892 帖子 49 PB币 9 贡献 0 技术 33 活跃 5
7 F
发表于 2013-5-7 04:09:03
IP属地河南
| 只看该作者
已有的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
第四行可以看到大小是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 [查看分区,如图]
可见GPT保护分区被删除了,这里把他们恢复为EFI和BiosBoot分区,先是EFI:
n [新建分区]
[分区号,用默认值,直接回车]
2048 [输入起始扇区]
+409600 [输入终止扇区,EFI大小是200M,200x2048=409600,注意写上+号]
EF00 [分区类型,EF00是EFI的标志。创建过程如图]
BiosBoot分区,起始扇区紧挨着EFI,
p [查看扇区,可以看到EFI的结束扇区为411647,则BiosBoot分区起始为411648]
按图中输入
n [新建分区]
[分区号,默认值 直接回车]
411648[输入起始扇区]
[输入终止扇区,8M x 2048应该是16384个扇区,应该输入+16384,这个值跟默认值一样的 直接回车]
ef02 [BiosBoot分区类型为EF02]
下面是创建Linux分区和MacOS分区的实例,很简单,只要算出 扇区数=分区大小(MB) x 2048就是。
s [分区号重新排序]
p [查看分区]
如图最后一个分区是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分区。
建立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
查看全部评分