FreeBSD和Linux共享swap区

来源:岁月联盟 编辑:zhu 时间:2008-01-17
FreeBSD和Linux共享swap区内容简介:【FreeBSD教程】 在一台电脑上安装有FreeBSD和Linux两个系统时,可以让这两个系统使用同一个硬盘分区作为swap区,节省一定的硬盘空间。这里介绍一种实现共享swap区的方法,当然可能有其他方法也可以解决这一问题。这   【FreeBSD教程】在一台电脑上安装有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分区表)支持。
  UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y
  BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]
  (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,在输出信息中可以看到如下的信息:
  Partition check:
  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 的前面。
  awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab
  这样在每次启动Linux时就会在/etc/fstab中设定的swap分区上运行mkswap。
  
  好了,完成了设定,可以重新启动到FreeBSD看看swap分区是否工作,再重新启动到Linux看看是否工作。但愿你能顺利的设定完成。
 

图片内容