如何将 Linux 磁盘内容与 Win7 内容交换?

如何将 Linux 磁盘内容与 Win7 内容交换?

我已经使用 Ubuntu 13.04 一段时间了,我非常喜欢它!目前我的 PC 中有 2 个磁盘:2011 年硬盘,1TB 空间,上面装有 Win7。2006 年硬盘,150GB 空间,上面装有 Ubuntu 13.04。由于 2006 年的硬盘很旧(随时都有可能出现故障),我想在 160GB 磁盘上安装 Win7,在 1TB 磁盘上安装 Ubuntu。这怎么可能呢?

答案1

如果我理解正确的话,您想交换硬盘驱动器的内容。为此,您需要启动到 liveCD/USB 系统。任何带有 GParted 的系统都可以。确保您备份了两个磁盘上的所有重要文件。

在开始之前,最好先通读所有步骤以大致了解您需要做什么。

启动实时发行版,运行 GParted 并按照以下步骤操作:

  1. 将 Windows 分区的大小缩小到旧驱动器可以容纳的大小(检查磁盘大小并将其缩小几 MB 以确保安全)

  2. 现在将您在上一步中缩小的分区一直移动到右侧。注意 1:不要将步骤 1 和 2 合并。这听起来违反直觉,但首先重新调整大小缩小到左侧然后移动到右侧比一步“朝”磁盘右侧缩小分区更快更安全。

  3. 将 Linux 分区从旧磁盘复制到新磁盘。从技术上讲,您不必复制交换分区,只需在新磁盘上创建一个大小相同的分区即可,但我的建议是将该死的东西从旧驱动器复制到新驱动器。这将保留分区 UUID,因此您以后不必进入并手动更改 fstab。注意 2:如果您的 /home 文件夹有一个单独的分区(这始终是一个好主意),那么最后复制它,这样它就会是最右边的 Linux 分区。如果您只有一个包含所有内容的 Linux 分区,那么将交换分区放在第一位,将 Linux 分区放在第二位。这在以后调整其大小时会派上用场。

  4. 现在是进行一些测试的好时机。如果您愿意,可以断开或将旧驱动器和移动的 Windows 分区标记为隐藏。打开终端并在新磁盘上安装 GRUB。假设您的磁盘是 /dev/sdb,您需要类似以下内容的内容:grub-install /dev/sdb如果一切顺利,您的系统将启动到 Linux。现在您可以继续。

  5. 关机,重新连接驱动器(如果已断开连接),然后重新启动到 liveCD/USB。再次运行 GParted 并从旧磁盘中删除所有分区。

  6. 将 Windows 分区从新磁盘复制到旧磁盘。如果隐藏了它,请记住取消隐藏。暂时将新驱动器中的“旧”Windows 分区隐藏。

  7. 是时候再次测试了。再次运行 grub-install 脚本,以便它可以检测到 Windows 安装。重新启动并尝试 Windows 和 Ubuntu。如果一切正常,请继续下一步。

  8. 您几乎已经完成了。现在您可以从新磁盘中删除“旧”Windows 分区,并重新调整 Linux 分区的大小以覆盖新 1TB 驱动器的剩余未分配空间。

答案2

由于 Windows 无法读取 ext4 文件系统,因此您需要在 Windows 中使用名为 ext2explore 的实用程序将内容从 Linux 复制到 Windows。从 Windows 到 Linux 很简单,因为 Linux 知道如何读取 ntfs 文件系统。

ext2explore 的链接: http://sourceforge.net/projects/ext2read/files/Ext2Read%20ver%202.0/ext2explore%202.0%20beta/

答案3

这很危险,所以您应该进行备份并准备重新安装操作系统。

您可以使用 gparted 移动/复制分区。(从技术上讲,它会创建一个新分区)但是,为了更改安装 Ubuntu 的设备的分区,您需要另一个安装了 Ubuntu 的设备(或任何可以使用 gparted 的 Unix)或实时介质。但是,删除和复制(交换)组成整个设备的分区可能会失败。为此,您要么需要第三个设备,要么可以先尝试减小分区的大小,以便任一设备都可以同时容纳两个分区。

或者,您可以制作 dd 映像。(首先使用 gparted 将 1 TB 分区缩小到 150 GB)假设应该替换 /dev/sdb1(1 TB)和 /dev/sdc1(150 GB)(创建映像文件 WIN-2013.dd(现在在 1 TB 设备上)和 UBU-2013.dd(现在为 150 GB)):

$ umount /dev/sdb1
$ umount /dev/sdc1
$ dd if=/dev/sdb1 of=WIN-2013.dd
$ dd if=/dev/sdc1 of=UBU-2013.dd

然后使用 gparted(或您喜欢的任何其他分区管理器)按所需顺序创建和格式化新的空分区(以交换 sdb1 和 sdc1)

$ umount /dev/sdb1
$ umount /dev/sdc1
$ dd if=UBU-2013.dd of=/dev/sdb1
$ dd if=WIN-2013.dd of=/dev/sdc1

不管怎样,你可能需要更新 grub。首先,在你仍在实时或第三个 linux 安装中时挂载 ubuntu 分区,然后

$ cd /media/THE_ROOT_OF_THAT_NEW_UBUNTU
$ sudo mount -o bind /dev ./dev
$ sudo mount -o bind /sys ./sys
$ sudo mount -t proc /proc ./proc
$ chroot .

那么你的 name@machine 应该已经改变了,所以:

$ update-grub

(但是,如果不安装仅用于 grub 启动的虚拟 Linux,我不知道如何处理 Windows!)

相关内容