LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 685|回复: 5

予实现freebsd与suse 共用swap 分区。

[复制链接]
发表于 2004-5-2 10:35:49 | 显示全部楼层 |阅读模式
参考文章 :
3. 在 Linux 和 FreeBSD间共享 Swap 空间
这一个篇幅描述我如何让 Linux 和 FreeBSD 共享一个 Swap 切割. 可能还有别的方法可以做到相同的结果. 这里所用的 Linux 是 Red Hat 4.1 和 4.2 (Linux 核心 2.0.29 和 2.0.30) 与 FreeBSD 2.2.2. 如果你愿意, 你可以在安装 Linux 之前先安装 FreeBSD, 但要注意 FreeBSD slice 中 partition 的顺序.


3.1 安装和准备 Linux
第一步是如平常一样的安装 Linux. 你必须在你的硬盘中留下给 FreeBSD slice 的空间. 你不用作 Linux 的 Swap 切割, 但如果你要这样一个切割, 就把它放在你要给 FreeBSD 的空间中. 这样, 你便可以在稍後删除这个切割, 并把它拿来给 FreeBSD 用 .

在完成 Linux 的安装後, 你必须要重新编译 kernel. 如果你对这不清楚, 可以参考 The Linux Kernel HOWTO. 你 必须 加入对 UFS 文件系统 的支持, 与对 BSD disklabel (FreeBSD partition tables) 的支持.

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

安装新的核心并重新开机. 如果你有结构 Linux Swap 切割, 把在/etc/fstab 档中任何含有 swap 的那几行删去. 确定你有可用的新核心开机片 你便可以开始来安装 FreeBSD 了.
3.2 安装 FreeBSD
依 FreeBSD 文件中所描述的方式来安装你的 FreeBSD. 如果你有结构 Linux swap 切割, 把它删除, (你可以使用 FreeBSD 的fdisk 程序.) 注意一下 FreeBSD slice 中 partitions 的顺序. 如果你使用缺省的标签编码, 第二个 partition 将是swap 切割. 完成 FreeBSD 的安装, 并使用Linux的开机片 重新开机进入 Linux.


3.3 在 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 切割. 如果你的 swap 切割是在 slice 中的第二个切割, 那将会是 /dev/hda6. 你必须把下面的这几行放到你的 /etc/fstab 档中来开启 swap partition 的功能.
/dev/hda6 none swap sw 0 0

FreeBSD 可以用任何格式的切割来当作 swap 切割, 但 Linux 的 swap 切割需要特别的签名. 这个签名是用 mkswap 来结构的. FreeBSD 使用这个共享的 swap 切割时会对这个签名造成破坏, 所以你必须在每次进入 Linux 的时後执行 mkswap. 要让这个动作自动执行, 你必须找出执行 swapon 的 script 并在开机时执行. 以 Red Hat 而言, 这是 /etc/rc.d/rc.sysinit. 把下面这一行放到 swapon -a 前:
awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab

这将会在每次开机时, 在 /etc/fstab 中的任何 swap 切割上执行 mkswap, 除非你把它取消 (使用 ``#'' 当一行的第一个字符)

在你重新开机进入 Linux 後, 使用 free 来检查 swap 空间的大小. 你也必须重新开机进入 FreeBSD 来确认一切都如预期的运作. 如果没有, 那你可能使用了错误的切割来当作 swap 切割. 唯一的解决办法, 便是重新再安装 FreeBSD, 并再试一次. 经验是好的导师. :-)

-----------------------
但不知
Red Hat 而言, 这是 /etc/rc.d/rc.sysinit.
这个在suse中 在哪里?
suse 为 SuSE-Enterprise-Server-8
发表于 2004-5-2 10:57:15 | 显示全部楼层
谢谢
 楼主| 发表于 2004-5-2 11:07:04 | 显示全部楼层
最初由 lemonle79 发表
谢谢

不客气的 但不知对我的问题 兄弟能指点一下么?:help
 楼主| 发表于 2004-5-3 13:58:37 | 显示全部楼层
顶一下
发表于 2004-5-4 00:17:19 | 显示全部楼层
看看/etc/inittab文件里面:sysinit:后面接的那个文件
打开那文件,搜索一下是否有swapon -a

或者
grep -r swapon  /etc/init.d/*
grep -r swapon  /etc/rc.d/*
找找
我用的不是SuSe:P
 楼主| 发表于 2004-5-4 08:24:20 | 显示全部楼层
谢谢 兄弟!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表