科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道一山可容二虎 让Linux与FreeBSD共存 (3)

一山可容二虎 让Linux与FreeBSD共存 (3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

这个文档描述了如果在同一个系统上使用Linux和FreeBSD。它介绍了FreeBSD,并且讨论如果使这两个系统协同工作,比如,共享swap空间。在读些文档之前,最好有一些对于fdisk分区和Linux或FreeBSD系统的经验

作者:doorsir 来源:赛迪网技术社区 2007年10月16日

关键字: 操作系统 共存 FreeBSD Linux

  • 评论
  • 分享微博
  • 分享邮件
 

5. 挂起文件系统

5.1在Linux下挂起UFS文件系统

非常不幸的,UFS驱动程序在Linux 2.0.xx内核中没有包括对FreeBSD的支持。当你尝试挂起一个FreeBSD文件系统,你可能会得到一信息出错信息(其实文件系统被挂起了,但是你不能在上作任何事情)这个问题在新的内核2.1.87之后,就被解决了。

在metalab.unc.edu上有另一个UFS驱动程序,它运行在Linux 2.0.xx内核之上(xx<=30)。它被称为U2FS并且当前版本为u2fs-0.4.3.tar.gz。现在你必须重新建立一个新的内核,支持U2FS文件系统和BSD的分区格式。(见上面的"安装Linux"章节)当你使用U2FS时,你可以不选择UFS文件系统的支持。当你已经安装了这个内核,你可以挂起你的UFS文件系统(除了swap分区以外的所有FreeBSD slice):

mount -t u2fs /dev/hda8 /mnt
如果你使用更高版本的Linux内核2.1.87或更高,可以用:

mount -t ufs /dev/hda8 /mnt

从2.1.112开始,你必须加入-o ufstype=44bsd,如:

mount -t ufs -o ufstype=44bsd /dev/hda8 /mnt

UFS(以及U2FS)驱动程序是只读的。你只能读出UFS文件系统中的数据,但你不能写入。一个实验性的可读写的UFS驱动程序被放入到Linux内核2.1.112之后的版本中,并且代替了只读的那么个驱动程序。从2.1.127之后,向FreeBSD分区写入就被支持了。

5.2在FreeBSD中挂起ext2fs文件系统

在FreeBSD中挂起ext2fs文件系统,你必须首先建立一个新的内核,它要支持ext2fs。检阅一下 ,可以告诉你如何做。在你的内核配置文件中放入:

optins  "EXT2FS"

当你已经使用这个新内核重新启动后,你可以使用以下命令以挂起ext2fs文件系统:

mount -t ext2fs /dev/wd0s3 /mnt

由于在FreeBSD 2.2.8或更早的版本中的一个bug,你将必须在你关闭FreeBSD系统之前将所有的ext2fs文件系统全部卸下,当然,如果你使用这些版本的话。如果你在ext2fs文件系统正挂起时关闭FreeBSD系统,FreeBSD不能与与此同时UFS文件系统同步。这将导致在FreeBSD被重新启动后运行fsck。你可以在/etc/rc.shutdown文件中输入:

umount -a -t ext2fs

来绕过这个问题。这个bug在FreeBSD 3.x以后就被修复了。

6.运行外部二进制代码

6.1在Linux下,运行FreeBSD二进制代码

iBCS软件包支持在Linux下运行FreeBSD的二进制代码。但它太老了。我不能让它工作。如果你知道有更好的工具,请告诉我。

6.2在FreeBSD下运行Linux的二进制代码

FreeBSD具有运行Linux的二进制代码(a.out和ELF格式)的能力。你必须遵循以下三个步骤:

1、必须打开Linux兼容。(在FreeBSD 2.2.2---根据版本的不同而不同)你需要在/etc/rc.conf中加入,并且修改。

将:

linux_enable="NO"

改成:

linux_enable="YES"

然后重新启动。另一种载入对Linux二进制代码支持的方法是运行命令/usr/bin/linux。这样你就不必重新启动了,并且你并不总是有Linux二进制代码支持的装入器(比如,你需要节省内存)记住,在FreeBSD内核配置文件中加入:

options         COMPAT_LINUX

2、如果你的Linux二进制代码被动态地连接了,你就必须安装Linux共享库。在FreeBSD 2.2{2,5,6}中都有这个库,作为linux_lib-2.4.tgz(可能已经有新的版本了)的软件包。运行:

pkg_add /linux_lib-2.4.tgz

是你希望将其装入的位置。你也可以从网上安装:

pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_lib-2.4.tgz

或通过重新运行/stand/sysinstall.输入"Configure","Packages"并且使用这个菜单。如果你运行静态的Linux二进制代码的连接,你需要运行以下命令:

brandelf -t Linux

3、安装你希望运行的Linux程序。这个程序可以安装在UFS上也可以安装在ext2fs文件系统上。(查阅“在FreeBSD在挂起ext2fs文件系统”。)

我已经成功地将Applixware 4.3和Netscape 3.01(ELF格式)的Linux版本在FreeBSD 2.2.2运行了。(当然,我知道有一个FreeBSD的Netscape 4版本)Linux版本的Staroffice 3和4在FreeBSD下也运行非常好。StarOffice 5必须依靠Linux的内部的线程的管理方式,而不能在当前的FreeBSD下运行。关于这个话题,请查阅其它FreeBSD的文档。

7.信息资源

http://www.image.dk/~nkbj,最新的mini-HOWTO可以在些找到,有许多种格式(包括SGML和PostScript)。你可以在http://www.futuresouth.com/~fullermd/freebsd/bsdvlin.html找到更多的关于Linux和FreeBSD的文章。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章