[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

系统安装、升级讨论
头像
photor
论坛版主
帖子: 11003
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

[分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#1

帖子 photor » 2009-01-30 22:58


2010年9月4日更新:
SwapFs-3.0 Support for FAT32 and swap partitions bigger than 4GB.
下载地址:
http://www.acc.umu.se/~bosse/swapfs-3.0.zip

很多人通过在机器上安装双系统来运行 Linux 和 Windows。Linux 通常采用交换分区。进入 Windows 下则采用交换文件,这时交换分区就完全闲置了。其实我们完全可以把这块空间利用起来,存放一些不需要长久保存的文件,例如交换文件等等。所需要的只是一个简单的文件系统驱动程序 swapfs,可在 http://www.acc.umu.se/~bosse/swapfs-2.1.zip (已失效,用上面的3.0版下载地址)下载
(顺便提一句,swapfs 的作者是个文件系统 fans,主页上有不少文件系统和准文件系统,值得一观)。
简而言之,swapfs 这个软件做了两件事:当 Windows 启动的时候,它在交换分区上创建一个新的 FAT 文件系统;当 Windows 关闭的时候,它在交换分区上创建一个新的 swap 文件系统(此处存疑,见11楼、26楼的说明)。
让 Windows 把交换文件放到交换分区上有两个好处:
1、节省了单独的交换文件空间。
2、交换分区是独立的文件系统,交换文件存放在上面不会碎片化。
安装 swapfs 步骤很简单。下载 swapfs 驱动,解压缩到 swapfs 目录,其中包含 1 个目录和 5 个文件
目录
--------------------------
sys 源代码
文件
--------------------------
COPYING.TXT GPL v2 许可。
install.txt 一个极简单的安装说明。
readme.txt 说明文件。
swapfs.reg 注册表项目。
swapfs.sys 驱动程序。
我们关心的是 swapfs.reg 和 swapfs.sys。
首先把 swapfs.sys 复制到 %systemroot%\system32\drivers\ 目录。然后我们需要通过添加注册表项目来知会 Windows 一声。用普通的文本编辑器修改 swapfs.reg 当中
"SwapDevice"="\\Device\\Harddisk0\\Partition1"

"S:"="\\Device\\Harddisk0\\Partition1"
这两行以符合你的需要。第一行是 Windows 内部命名系统;第二行是兼容的 MS-DOS 命名法。规则很简单,第一个分区 hda1 是 Partition1,依此类推,扩展分区跳过不计。举个例子(如附图所示),我的swap分区在linux下是/dev/sda7,但是有个扩展分区/dev/sda3在windows下是不算的,所以应该把上面两行的Partition1都改成Partition6。双击导入注册表,然后重启系统就能看到新的 S: 盘了。
注意 swapfs 不会帮你保存系统上的任何数据。
附件
Screenshot--dev-sda - GParted.png
上次由 photor 在 2010-09-04 21:07,总共编辑 4 次。
这些用户感谢了作者 photor 于这个帖子:
sniper54 (2011-12-25 17:01)
评价: 3.7%
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#2

帖子 wangdu2002 » 2009-01-30 23:48

好贴,要顶!
特别是硬盘不大,想要减少分区以及想节省点硬盘空间的朋友,此贴不可不看,不可不遵照执行啊!
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
billbear
帖子: 3681
注册时间: 2008-05-03 23:42
送出感谢: 0
接收感谢: 3 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#3

帖子 billbear » 2009-01-31 3:38

如果 linux 处于休眠中咋办? win 动了 lin 的 swap,休眠的数据都完蛋。
其实反过来做为好,直接把 pagefile.sys 拿来做 lin 的 swap 就得了,swap 分区就不分了,比较简单。
win 的交换文件和休眠文件是两个东西,不怕用了 pagefile.sys 破坏 WIN 的休眠态。
billbear
帖子: 3681
注册时间: 2008-05-03 23:42
送出感谢: 0
接收感谢: 3 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#4

帖子 billbear » 2009-01-31 3:40

当 Windows 启动的时候,它在交换分区上创建一个新的 FAT 文件系统;当 Windows 关闭的时候,它在交换分区上创建一个新的 swap 文件系统。
当 windows 掉电的时候呢?以此法为不妥。
头像
photor
论坛版主
帖子: 11003
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#5

帖子 photor » 2009-01-31 10:36

billbear 写了:如果 linux 处于休眠中咋办? win 动了 lin 的 swap,休眠的数据都完蛋。
其实反过来做为好,直接把 pagefile.sys 拿来做 lin 的 swap 就得了,swap 分区就不分了,比较简单。
win 的交换文件和休眠文件是两个东西,不怕用了 pagefile.sys 破坏 WIN 的休眠态。
ubuntu的休眠没有太多意义,节约不了多少启动时间,而且可以保存会话,所以我不用休眠。
windows的交换文件和休眠文件分开确实是够弱智的,浪费。
头像
photor
论坛版主
帖子: 11003
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#6

帖子 photor » 2009-01-31 10:41

billbear 写了:
当 Windows 启动的时候,它在交换分区上创建一个新的 FAT 文件系统;当 Windows 关闭的时候,它在交换分区上创建一个新的 swap 文件系统。
当 windows 掉电的时候呢?以此法为不妥。
这个倒是不成问题,手动mkswap就行了
blackghost
帖子: 42
注册时间: 2007-03-18 18:35
送出感谢: 0
接收感谢: 0

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#7

帖子 blackghost » 2009-02-13 15:17

swapfs 这个软件做了两件事:当 Windows 启动的时候,它在交换分区上创建一个新的 FAT 文件系统;当 Windows 关闭的时候,它在交换分区上创建一个新的 swap 文件系统。
是什么意思?格式化吗?
billbear
帖子: 3681
注册时间: 2008-05-03 23:42
送出感谢: 0
接收感谢: 3 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#8

帖子 billbear » 2009-02-13 16:54

我想就是格式化。根据楼主提供的信息,它的工作方式是指定第 X 个分区,如 \\Device\\Harddisk0\\PartitionX 开机格一下,关机格一下,我觉得不太靠谱。假如有一天你改变了分区规划,第 X 个分区变成了非 swap,然后你又存了一些东西在上面,你忘了 windows 下还有这么个东西会摧毁你的数据,嘿嘿...
其实既然楼主说不用休眠,那就直接把 win 的 pagefile.sys 拿来做 ubuntu 的 swap 好了,比这个方案要优美多了。
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵
送出感谢: 1 次
接收感谢: 6 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#9

帖子 wangdu2002 » 2009-02-13 20:13

我一会觉得Photor兄弟的方法挺好的,不过看了BillBear兄弟的说明,觉得也有道理,选什么方法最好呢?
────这是个问题?
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
photor
论坛版主
帖子: 11003
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#10

帖子 photor » 2009-02-13 22:04

billbear的方法当然也可行,但是有三个问题:
1、每次启动都需要mkswap,所以不能直接用fstab自动挂载交换文件,只能改rc文件(或许有更好的办法?请指教)
2、用交换文件的效率比交换分区还是要低一些
3、看主帖上面对windows系统的第二点好处
:em09
头像
photor
论坛版主
帖子: 11003
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#11

帖子 photor » 2009-02-13 22:16

blackghost 写了:
swapfs 这个软件做了两件事:当 Windows 启动的时候,它在交换分区上创建一个新的 FAT 文件系统;当 Windows 关闭的时候,它在交换分区上创建一个新的 swap 文件系统。
是什么意思?格式化吗?
上面的介绍有一部分是网上抄来的,我估计不是格式化,而只是swapfs驱动起了一个翻译的作用,让windows将swap分区认成fat格式,而且可以直接在上面读写。实际上我在设置swapfs的过程中确实反复弄错过\Device\\Harddisk0\\PartitionX的编号X,最后才彻底搞懂与/dev/sdaY的对应关系,编号错误的话就对应到了非swap的普通分区,但是这样的操作并没有造成该普通分区上的资料丢失,所以我想swapfs做的应该不是真正的格式化操作
billbear
帖子: 3681
注册时间: 2008-05-03 23:42
送出感谢: 0
接收感谢: 3 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#12

帖子 billbear » 2009-02-13 22:24

1. You are right. But I don't consider it a problem.
2. According to https://help.ubuntu.com/community/SwapFaq , With the 2.6 kernel, "a swap file is just as fast as a swap partition."
头像
AutoXBC
帖子: 1744
注册时间: 2007-10-23 12:54
送出感谢: 2 次
接收感谢: 24 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#13

帖子 AutoXBC » 2009-02-13 22:25

Windows 要休眠,Linux 也要休眠,说不需要休眠的,不是机器支持不行,就是自己对休眠理解有问题。所以,Windows 的任何可被修改的文件都不能给 Linux 作交换,反过来也不行。
头像
photor
论坛版主
帖子: 11003
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#14

帖子 photor » 2009-02-13 22:31

billbear 写了:1. You are right. But I don't consider it a problem.
2. According to https://help.ubuntu.com/community/SwapFaq , With the 2.6 kernel, "a swap file is just as fast as a swap partition."
10楼的第三点呢?
头像
photor
论坛版主
帖子: 11003
注册时间: 2008-04-26 12:41
送出感谢: 8 次
接收感谢: 36 次

Re: [分享]装双系统的同学必看——Windows与Linux系统共享交换分区的方法

#15

帖子 photor » 2009-02-13 22:32

AutoXBC 写了:Windows 要休眠,Linux 也要休眠,说不需要休眠的,不是机器支持不行,就是自己对休眠理解有问题。所以,Windows 的任何可被修改的文件都不能给 Linux 作交换,反过来也不行。
要不搞一个投票,看这个坛子里有百分之多少的人用休眠(特别是linux)? :em09
回复

回到 “系统安装和升级”