上一页
常见问题
OpenBSD FAQ 第九章:从Linux迁移过来
下一页
系统管理

9.1-给Linux(和其他免费的类Unix操作系统)用户的简单提示

OpenBSD和Linux间有许多的不同点。这些不同点包括但并非仅限于启动程序,网络界面使用和磁盘管理。很多不同点有很好的文档说明包括查找manpages.本文档试图给出这些不同点的一个摘要。
●OpenBSD有一个ports树。基于此,有个事实是:并没有很多的应用程序是本身就源于OpenBSD 环境的。
●OpenBSD使用CVS 来修改源代码。Linux 通过不同的发行版来发布源代码。OpenBSD使用匿名CVS,它允许任何人在任何时候为OpenBSD 的任何版本解压源代码。使用web interface to CVS也是十分便利的。
●OpenBSD周期性的发布适用于不同体系的snapshot,并且每6个月出版一个稳定的官方CD发行版。
●OpenBSD包含USA based操作系统不包含的强大的加密方法。OpenBSD 也已经在源代码树中实现了强大的安全审查和安全特性。
●OpenBSD内核是/bsd.
●硬盘名一般是/dev/wd(IDE)和/dev/sd(SCSI或者模拟SCSI硬盘的ATA设备)
●Linux下无参数的/sbin/ifconfig将给出所有界面状况。在OpenBSD下需使用-a参数。
●Linux下无参数的/sbin/route将给出所有可用的路由状况。在OpenBSD下需使用"show"参数,或者使用netstat -r.
●OpenBSD不支持象ReiserFS,IBMs JFS或者SGIs XFS 等日志文件系统。取而代之的是,我们使用SOft Updates.
●OpenBSD附带了Packet Filter(PF), 不是ipfw, ipchains, netfilter, iptables, 或者 ipf.这就意味着:
  ●●NAT通过pfctl(使用-N)来实现。
  ●●ipfwadmin通过pfctl来实现。
  ●●你需要参阅section 6来获得配置的详细说明。
●界面地址保存在/etc/hostname.里。它需要hostname来代替IP地址。
●计算机名在/etc/myname中。
●默认网关在/etc/mygate中。
●OpenBSD的默认Shell是/bin/sh,即Korn Shell。诸如Bash,tcsh等Shell可使用package或者从ports进行安装。
●密码管理变化很大。主文件是不一样的。(passwd(1),passwd(5)).
●设备按驱程来命名而非按类型。比如,没有eth*设备。ne2000是ne0,3Com Etherlink XL和Fast Etherlink XL是xl0等。
●OpenBSD的开发者很努力的使manual page保持最新并且准确。使用man命令寻找信息。

9.2Linux和OpenBSD双启动

是的!它是可能的!
阅读INSTALL.linux
9.3将Linux(或其他System 7-style)的passwd文件转换成BSD类型

首先,请确定你的Linux密码文件是否为影子文件。假如是,可使用John the Ripper的unshsdow工具将你的passwd和shadow文件合并为一个System 7-stlye文件。

为了使用你的Linux密码文件,我们把它叫做linux_passwd,你需要在field 4和7间加入::0:0。awk可为你做好此工作:
# cat linux_passwd | awk -F : '{printf("%s:%s:%s:%s::0:0:%s:%s:%s\n", \
> $1,$2,$3,$4,$5,$6,$7); }' > new_passwd

在此,你会想编辑new_passwd文件并删除已经存在于你的OpenBSD密码文件中的root及其他系统项,否则不适用于OpenBSD。同样,需要确定new_passwd和OpenBSD中的/etc/passwd没有相同的用户名和用户ID。这个最好的方法是建立一个新的/etc/passwd.
# cat new_passwd >> /etc/master.passwd
# pwd_mkdb -p /etc/master.passwd

最后一步,必须使用pwd_db来重建/etc/spwd.db和/etc/pwd.db文件。它也将在/etc/passwd中创建一个为一些程序使用的system 7-style密码文件。 OpenBSD使用一个更强大的密码加密方法---blowfish,这和其他系统上看到的完全的system 7-style密码文件很不一样。为了转移到这种强大的加密方法,简单的让用户运行"passwd"并修改密码。你输入的新的密码将会使用你的默认设置进行加密(一般是blowfish,除非你修改了/etc/login.conf).或者,作为root,你可以运行passwd useename.

9.4在OpenBSD上运行Linux二进制文件

当内核编译进COMPAT_LINUX选项并且已经设置了运行时sysctl kern.emul.linux,OpenBSD/i386可以运行Linux二进制文件。如果你使用的是GENERIC内核(你应该是),COMPAT_LINUX就已经启用了,你就只要:
# sysctl -w kern.emul.linux=1
为了在计算机每次启动时自动做好这点,删除/etc/sysctl.conf中如下行前的#:
#kern.emul.linux=1 # enable running Linux binaries
即改为:
kern.emul.linux=1 # enable running Linux binaries
并且重启系统来使它生效。

为了使用任何没有静态链接的Linux二进制文件,你需要按compat_linux man页中的说明来做。

得到大多数有用的Linux 库文件的简单方法是从ports中安装redhat/base.预了解ports collection的更多信息,请阅读FAQ8-Ports.一旦ports树已经安装了,用下面的方法安装Linux 库:
# cd /usr/ports/emulators/redhat/base
# make install

9.5从OpenBSD中访问Linux文件


OpenBSD支持EXT2FS文件系统。使用
# disklabel disk

(其中disk为你的磁盘设备名,比如wd0)来察看OpenBSD是如何处理Linux分区的。然而,不要使用disklable或者fdisk对disklable做任何修改。
更多使用disklable的信息请阅读FAQ14-Disklable.