将 Windows 7 迁移到新硬盘/分区

将 Windows 7 迁移到新硬盘/分区

因此,我设法使用 ntfsclone 将我的 Windows 7 数据从 /dev/sdb3 迁移到 /dev/sdc1 上的新分区。我设法调整卷大小以匹配新分区大小。我还使用 ms-sys 将 Windows 7 MBR 添加到 /dev/sdc。

Windows 无法启动。如果我仍启用 /dev/sdb3,Windows 可以启动,但最终目的是删除该分区。此外,在这种情况下,我的新驱动器仅被视为 D,而不是启动驱动器。我到处搜索……帮忙?

ntfsclone 命令是 ntfsclone -O /dev/sdc1 /dev/sdb3

答案1

我发现将 Windows 分区克隆到不同的磁盘经常会失败,有时是因为驱动器号更改了,有时是因为启动记录出错了等等。以下两个解决方案多次帮助了我,但它们也并非 100% 万无一失:

  • 使用 Windows 7 启动盘的“修复”功能。它通常可以修复许多启动问题。使用这些说明。不幸的是,这种方法并不是 100% 有效。

  • 替代方法:在 Windows 中(启动到旧分区),创建启动/系统分区的镜像作为您的新的分区。镜像同步完成后,断开镜像并保留新的仅限分区。此方法需要将磁盘转换为动态磁盘,如果您需要从 Linux 或其他非 Windows 操作系统访问这些磁盘,则可能会导致问题。

答案2

您可以在 Windows 旁边安装 Linux。它将占用大约 2 GB 的空间,并且 grub 将检测到 Windows 并显示在启动菜单中。您可以在 1 秒延迟后将其设为默认。作为额外的奖励,您将有备用系统在紧急情况下启动。我总是这样做。

答案3

Windows 会创建一个 100MB 的隐藏分区,在大多数情况下,它是启动所必需的。您是否也复制/恢复了它?

答案4

我没有成功ntfsclone,但我成功了dd。以下是我所做的,希望它有用。

旧驱动器为/dev/sda640GB;新驱动器为 120GB 固态硬盘/dev/sdb/
我有 3 个分区,一个 15GB 恢复分区、一个 100MB 启动分区和系统(在 Windows 中安装在 C: 上)。

第一步是获取旧磁盘的所有起始/结束扇区:

root@sysresccd /root % gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************

Disk /dev/sda: 1250263728 sectors, 596.2 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 95A8B5D6-CA2E-4D48-A3EA-856883098142
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 1250263694
Partitions will be aligned on 2048-sector boundaries
Total free space is 4717 sectors (2.3 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        31459327   15.0 GiB    2700  Windows RE
   2        31459328        31664127   100.0 MiB   0700  Microsoft basic data
   3        31664128      1250260991   581.1 GiB   0700  Microsoft basic data

然后我使用 fdisk 创建了相同的分区:

fdisk /dev/sdb

我使用上一个输出提供的扇区位置创建了三个分区gdisk
然后,我使用 将第二个分区标记为可启动cfdisk /dev/sdb

最后一步是使用复制数据dd,因为该ntfsclone -O /dev/sdb1 /dev/sda1方法不起作用:

dd if=/dev/sda1 of=sdb1 conv=notrunc
dd if=/dev/sda2 of=sdb2 conv=notrunc
dd if=/dev/sda3 of=sdb3 conv=notrunc

这值得放入screen并获取 pid 来向其发送 USR1 信号以获取进展。

在我的设置中,最后一个分区缩小到 100GB,随后有大约 500GB 的可用空间(640GB 磁盘)。最后一个dd命令以设备上没有剩余空间(120GB SSD)结束。

但是重启非常顺利,Windows 感觉很顺手。他甚至说找到了一个新硬件,找到了驱动程序并安装了它,这让我笑了。“Bingo,你需要重启才能让那个硬件正常工作!”
只是那个硬件是它启动的 SSD(旧 HDD 已从计算机中移除)。

请注意,所有这些内容主要摘自这篇博文:http://linuxtips.manki.in/2011/11/migrating-to-new-ssd-without-data-loss.html

相关内容