学习Linux和FreeBSD来共享swap分区

系统 Linux
这个部分描述了如何使用Linux和FreeBSD来共享一个swap分区。这一方法在RedHat Linux release 4.1和4.1(Linux kernel 版本2.0.29 和2.0.30)和FreeBSD2.2.2上通过测试,高版本的系统应该同样可以实现。

在一台电脑上安装有FreeBSD和Linux两个系统时,可以让这两个系统使用同一个硬盘分区作为swap分区,节省一定的硬盘空间。这里介绍一种实现共享swap分区的方法,当然可能有其他方法也可以解决这一问题。

这一方法在RedHat Linux release 4.1和4.1(Linux kernel 版本2.0.29 和2.0.30)和FreeBSD2.2.2上通过测试,高版本的系统应该同样可以实现。首先安装哪个系统都无所谓,只需要注意一下FreeBSD的slice分区的次序。

第一步,安装Linux
 
按照正常的步骤安装Linux,注意为安装FreeBSD留出硬盘空间。安装Linux时不必设定swap分区,如果你想加一个swap分区,那么把swap分区放到为FreeBSD留出的硬盘空间上。这样可以删除掉这个swap分区,然后安装FreeBSD。
 
安装完Linux,必须重新编译内核,加入UFS文件系统支持和BSD disklabel(FreeBSD分区表)支持。
 

  1. UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y   
  2. BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]   
  3. (NEW) y  

安装新kernel并重新启动机器。注意如果你设定了swap分区,删除/etc/fstab文件中包含swap的一行。确定你有一张可以启动新内核的启动盘。然后安装FreeBSD。

第二步,安装FreeBSD

按照正常步骤安装FreeBSD,如果为Linux分配了swap分区,可以用FreeBSD的fdisk删除掉。注意FreeBSD的slice分区的次序,如果使用默认分区,那么第二个分区是FreeBSD的swap分区。完成FreeBSD安装后重新启动到Linux。

第三步,在Linux中设定使用FreeBSD的swap分区

重新启动到Linux中后,运行dmesg,在输出信息中可以看到如下的信息:
 

  1. Partition check:   
  2. hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >  

这表示/dev/hda4是你的FreeBSD slice,/dev/hda5、/dev/hda6、/dev/hda7、/dev/hda8是FreeBSD的分区。如果FreeBSD的swap分区在这个slice上的第二个分区,那就是/dev/hda6。

那么就把下面一行加入/etc/fstab中:
/dev/hda6 none swap sw 0 0

由于FreeBSD可以使用任何形式的分区作为swap分区。而Linux需要在swap分区上设定一个特殊标识。这个标识是是用mkswap生成的。FreeBSD在使用swap分区时破坏了这个标识。所以在每次启动Linux时都要运行mkswap来重新设定这个标识。

为自动完成这个工作,找到启动时执行swapon的script文件。在RedHat Linux中这个文件是/etc/rc.d/rc.sysinit,将下面一行加在swapon -a 的前面。

  1. awk -- /swap/ && ($1 !~ /#/) { system("mkswap "$1"") } /etc/fstab   

这样在每次启动Linux时就会在/etc/fstab中设定的swap分区上运行mkswap。

好了,完成了设定,可以重新启动到FreeBSD看看swap分区是否工作,再重新启动到Linux看看是否工作。但愿你能顺利的设定完成。

【编辑推荐】

  1. 关于基础的Swap分区知识讲解
  2. linux关于swap分区的划分规则
  3. 关于2G虚拟内存Linux swap限制的说明
  4. 学习手动扩展SWaP分区大小方法
  5. 创建SWaP文件调整SWaP容量
责任编辑:小霞
相关推荐

2017-08-15 11:00:33

LinuxSwap

2010-05-24 10:16:40

SWaP分区

2009-12-14 13:35:16

LinuxSwapmount

2010-05-24 12:27:48

swap分区

2014-08-08 09:56:28

LinuxSwap分区

2010-05-24 09:11:24

swap空间

2011-12-23 09:56:25

Linux FreeBSolaris扩展测试

2011-01-14 15:30:44

2010-01-08 13:40:51

Ubuntu linu

2009-01-14 13:19:45

Ubuntu优化swap

2010-05-24 12:38:41

Swap分区

2010-05-24 15:03:12

Swap space

2015-05-04 10:24:01

2010-03-05 14:50:56

Ubuntu硬盘分区

2020-08-13 11:35:52

Linuxswapbuffer

2017-04-07 10:00:11

Linux目录结构分区大小

2020-06-22 08:30:42

Linux内存手动释放

2012-12-18 15:21:21

UbuntuSwap

2015-07-31 13:38:39

FreeBSDLinux

2019-02-22 09:05:04

SwapNVMe设备
点赞
收藏

51CTO技术栈公众号