HDD GPT磁盘上的WIN7无损迁移到SSD MBR磁盘

时间:2024-02-15 19:15:54
迁移计划:
 
说明:
  • 为了方便,本教程中的部分图片是在虚拟机中截取的,只做示意,仅供参考,但是本教程的方法是可行实用的,在我的华硕A53SV上已经成功实践
  • 对于本教程所造成的数据损失等一切后果,本人概不负责
  • 迁移系统前,请做好数据备份,以防万一。
 
迁移步骤
 
一、.分区
1.将SSD插入到系统内置硬盘的位置,系统原来的硬盘HDD,挂接到光驱位硬盘架上
2.开机启动到HDD的系统
3.打开磁盘管理工具,会提示“初始化磁盘”,将其初始化为MBR格式的磁盘
4.手动给SSD分区,情况如下:
 
  • 100MB fat32分区,是引导分区,存放win7的引导文件,并且将该分区标记为活动分区,按微软的说法,MBR磁盘上的活动分区,称为系统分区
    PS:如果不喜欢将win7的引导放在单独的分区,方法如下:
    #不要建立100MB分区
    #将win7分区(SSD上win7系统所在的分区)标记为活动分区,此时该分区就是系统分区
    #其它步骤相同
  • 40.92GB的ntfs分区,为SSD上系统所在的分区,教程中我称它为win7分区
    PS:不能称为系统分区,因为在微软的概念中,对于MBR磁盘,系统分区就是活动分区
  • 70.77GB的ntfs分区,用来安装一些程序,称为程序分区
    因为我们是迁移系统,所以该分区中的数据,是从原HDD系统中,安装程序的分区复制过来的数据。
5.介绍一下我原来HDD的系统中的分区情况:
    
 
HDD上的win7是基于GPT磁盘EFI引导的。
  • 100MB的分区为EFI分区
  • 50.10GB的ntfs为安装win7的分区,本教程称为win7分区
  • 195.31GB的ntfs U:盘,这是安装第三方程序的分区(包括游戏),称为程序分区
    PS:这里的数据将为迁移到SSD的程序分区
  • 195.91GB的ntfs E:盘,这里存放一些电影,歌曲等数据,该分区不会迁移到SSD
  • 24.22GB无格式的分区,这是MAC LION系统的分区,这个与该教程无关,不处理该分区
关于系统分区的解释(引用自微软官方对于bcdboot的帮助文档):
 
  • 在基于 BIOS 的系统上,系统分区是使用主引导记录 (MBR) 磁盘格式的磁盘上的活动分区。BCDboot 会在系统分区上创建 \Boot 目录,并将所有需要的引导环境文件都复制到此目录中。
  • 在基于统一可扩展固件接口 (UEFI) 的系统上,EFI 系统分区是使用 GUID 分区表 (GPT) 磁盘格式的磁盘上的系统分区(我的注释:其实就是EFI分区,从diskpart的create partition的帮助中可以看出来)。BCDboot 会创建 \Efi\Microsoft\Boot 目录,并将所有需要的引导环境文件都复制到此目录中。
 
 
二、.将HDD上的系统所在分区Ghost 到SSD上的win7分区
直接把windows分区的所有文件复制到SSD分区
    应该需要在PE,或者windows RE环境下复制
 
    为了容易识别SSD上的C分区,win7上,在该分区建立一个文本文件:SSD-C.txt
  
 
RE下使用xcopy    直接复制文件的方法,有部分文件没有复制过去
不推荐该方法
 
3.制作USB TOOL
 
大概是说无法使用bootsect.exe
原因:目前的系统是在GPT磁盘上基于EFI引导,bootsect不可用
 
放弃使用USB TOOL
 
改用PE
 
用urtalISO直接将win7 镜像写到U盘(唉,还是用了第三方工具了),无法修复启动错误:缺少nls数据
用系统备份的镜像恢复的话,就会把磁盘恢复成GPT
 
改用PE+Ghost吧
 
 
2012年7月7日 13:31:05
ghost成功
 
1.制作一个可启动的PE  U盘
    具体步骤,查阅你所用的PE的帮助文档
2.将HDD上的win7分区克隆到SSD上的win7分区(几乎所有的第三方PE,都会包含该工具)
    PS:这里我们使用手动GHOST工具,而不用一键GHOST工具。
 
  •     打开GHOST工具,
    依次选择菜单:"Local-Partition-To Partition"
    意思是,从分区到分区的克隆,如图:


  • 克隆过程
    #选择克隆的源磁盘,本教程就是HDD磁盘,可根据大小判断



    #选择源磁盘上的源分区,本教程就是HDD上的win7分区



    #选择ghost的目标磁盘,本教程就是SSD磁盘



    #选择克隆的目标磁盘的目标分区,这里就是SSD上的win7分区



    #确认执行克隆操作,请点击Yes
        PS:确认对话框中提示:目标分区将会被重写。

 
三、.修复克隆到SSD上的系统的引导
 
 
2012年7月7日 14:42:44
1.ghost成功后,需要修复引导
 
2.此时两块硬盘上有2个系统,原来HDD系统会占用C盘符,SDD上的系统所有分区会变成其他盘符(我的是Q)
这就导致一个问题,如果你把HDD上的C盘符删掉,将会导致SDD上的系统,无法进入桌面,因为SDD上的系统是HDD上的Ghost
 
这时,就要修改注册表
todo:等待有网络了,从手机的为知上同步过来需要修改的地方
 
#用ultra iso将win7镜像写入到U盘
 
#用U盘启动电脑,出现选择语言界面的时候,按shift+f10调出命令提示符
 
#修复SSD上的win7引导
    bootsect /nt60 sys /mbr
    说明:
  • 参数 /nt60 将系统引导切换为bootmgr,也就是win vista ,win 7的引导    
  • 参数 sys     更新系统分区的主引导代码
                        对于MBR磁盘,系统分区就是激活的分区,
                        因此不管你是单独分区存放引导文件,还是在安装win7的分区存放引导文件,都没有关系,只要激活单独的分区,或者激活安装win7的分区,就可以了。
                       
  • 参数 /mbr 将更新 sys 参数指定的分区所在磁盘的的mbr为符合win7引导的mbr
  • bootsect /help 可以查看bootsect的帮助,虽然是英文,不过不难懂
  • bootsect命令,对于GPT磁盘无效,其实GPT磁盘的引导修改是很简单的,直接使用bcdboot重建BCD数据,bios就会自动找到win7 引导所用的efi文件。
 
#重建bcd数据
     PS:
  • 修复SSD上win7的引导后,MBR磁盘只是具有了引导WIN7的功能,但是SSD上的win7还是无法启动的,因为,还没有引导文件以及引导数据(bcd数据)。
  • 克隆到SSD上的win7没有引导文件及bcd数据的原因是:HDD上的win7是基于GPT磁盘efi引导的,引导文件以及bcd数据都是存放在efi分区的,我们迁移到MBR磁盘后,需要重建引导文件
     
    bcdboot x:\windows /l zh-cn
     说明:
  • 参数 x:\windows  x代表ssd上的win7分区的盘符
  • 参数 /l 指定引导菜单所用的语言,zh-cn代表简体中文,不指定的话,可能会是英文,如果是英文的话,后续可以通过bcdedit命令修改
  • 该工具,如果不指定bcd数据存放位置的话,会默认放置到系统分区
  • 使用diskpart命令查看某个分区的盘符
    select disk 0--------------------选择磁盘,请选择你要查看的分区所在的磁盘,可根据磁盘容量确定
    select partition 1----------------选择分区,请选择你要查看的分区,可根据分区容量确定
    detail partition------------------显示分区信息,其中包括分配到的盘符,图中LTR字段,就是盘符
    assign letter=x------------------分配盘符x给所选择的分区

#修改注册表
PS:
  • 此时两块硬盘上有2个系统,原来HDD系统会占用C盘符,SDD上的系统所在分区会变成其他盘符(我的是Q)
    这就导致一个问题,如果你把HDD上的C盘符删掉(或者格式化了HDD的win7分区),将会导致SDD上的系统,无法进入桌面,因为SDD上的系统是HDD上的克隆,它会去找C盘(在HDD磁盘上)的一些数据
  • 经过前面的步骤,现在已经可以启动SSD上的win7系统了
  • 启动SSD的win7系统:
    °HDD的系统是基于EFI引导的,因此,在bios的引导菜单上显示的是windows boot manager
    °在计算机启动的时候,按某个键(主板不一样,这个按键是不一样的,请查看你的主板说明),调出bios引导菜单,选择你的SSD磁盘的名字,即可从SSD启动,引导至SSD的win7系统
   启动SSD的win7系统后,打开注册表,定位到
        HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
    在右边的最下面可以看到
        \DosDevices\Q:
    我的SSD的win7分区,现在是Q盘符,需要修改为C盘符
        在\DosDevices\Q:单击右键,选择重命名,修改为:
        \DosDevices\C:
    如果已经有了\DosDevices\C:,请先将\DosDevices\C:重命名为
         \DosDevices\X:                     这里的X代表其它盘符,请自行选择不在使用中的
 
    
 
 
四、重启计算机
    1.重启电脑, 设置bios,将第一引导设备调整为你的SSD磁盘,重启电脑
 
    2.删除HDD上win7分区的盘符,重启电脑,查看是否正确
 
    3.使用bcdedit命令查看一下bcd数据
        如图:
        {current}项中的
        device partition=C:
        path \windows\system32\winload.exe
        
        如果是这样,基本就没有问题了。        
 
        
 
   4.如果没有问题,可以删掉HDD上的系统win7分区,做为他用了