Windows 和 Linux 都使用交换空间。当操作系统关闭时,交换空间的内容只是垃圾,操作系统不会关心里面的内容。那么,当一次只能运行其中一个系统时,为什么还要分别为 Linux 划分 60MB 的分区作为交换空间,为 Windows 单独划分大约 32MB 的磁盘空间呢?(感谢 VMWare,可以同时运行 Linux 和 Windows。更多信息,请访问 VMWare 网站)。所以我们希望 Linux 和 Windows 共享同一块硬盘空间作为交换空间。
问题在于 Linux 使用分区作为交换空间,而 Windows 使用文件作为交换空间。(虽然可以为 Linux 创建交换文件,但不建议这样做。请参阅 Matt Welsh 的“Linux 安装和入门”)。现在,如果 Linux 使用与 Windows 存储其交换文件的分区相同的分区,它将覆盖引导扇区、FAT 和 Windows 假设每个驱动器上存在的其他数据表。因此,Windows 在启动时将无法找到交换文件,并将在 windows 目录中创建 win386.swp 文件。因此,即使 Linux 碰巧崩溃了,Windows 也能够启动。在这种情况下(Windows 交换文件在 Windows 目录中),只需重启 Linux 并启动 Windows,即可恢复 DOS/Windows 交换信息。现在 Windows 将使用 X: 盘符上的交换文件,因此您可以安全地删除 windows 目录中的 win386.swp 文件。
补救措施是将这些关键数据表一次性存储在 Linux 分区上的某个文件中。然后每次 Linux 启动时,检查交换空间上次是由 Linux 还是 Windows 使用的(使用您给分区添加的标签)。如果是 Linux,则只需启用交换即可;否则,首先使用 “mkswap /dev/winswap” 在 X: 驱动器上创建一个交换分区,然后启用交换。
当您关闭 Linux 时,重要的是将交换分区恢复为 DOS 格式,以便 Windows 能够正常启动。为此,我们将
/bin/zcat /etc/winswap.gz > /dev/winswap
命令添加到 halt 文件中。