[转]Freebsd 6.x下的m0n0wall开发环境

时间: 2009-03-28 / 分类: Linux, 收藏 / 浏览次数: 7,891 / 1个评论 发表评论

要对m0n0wall进行开发或者修改,就必须有一个好用的开发环境,本文讲述的就是如何建立一个基于 Freebsd 6 的 m0n0wall 开发环境。 

  • 介绍
  • 修订日志
  • 磁盘准备
  • 基本系统和Ports 安装
  • 网络配置
  • 用户账户
  • SSH 配置
  • 设置开发 Jail
  • 进入开发 Jail
  • CVSup安装和配置
  • 重新构建
  • Onward!


介绍 
本文信息都可以在网上找到。 m0n0wall 开发文档就有一篇精美的基于 FreeBSD 4.11 的 映像构建指南,而 Ultradesic 也有一篇 minibsd开发指南 (基于 FreeBSD 6.x) 供你延伸阅读用。然而,在 m0n0wall 指南中 4.11 和 6.2 有一些区别,而 Ultradesic 的指南又没有对 jail 的设置进行描述。
本文的目的是整合存在的文档,为那些有意设置 m0n0wall 开发环境的人们提供一个单一的指南。
本文所述基于一个 Parallels虚拟机,它有一个 8GB 硬盘和 256MB 内存。如果有其他什么需要注明的。
那些熟悉 FreeBSD 的人 可以飘过。

修订日志 
2007-07-14 – 翻译第一版(hemengui [AT] gmail [dot] com)
2007-03-02 – 修复 jail 准备部分的打字错误 (感谢 Paul T.)
2007-02-22 – 第一版

1. 磁盘准备 

  • 在选择您的国家和键盘布局后,从菜单 选择”standard” 。
  • 确认 来到 fdisk 屏幕,然后 按 ‘a’在磁盘上建立单个 slice。
  • 按 ‘q’ 离开编辑器。
  • 从下一屏选择 ‘OK’ 以安装启动管理器到磁盘。
  • 确认 下一个分区屏幕并 按’c’ 来建立您的第一个分区。我们要建立的第一个分区将作为交换分区。
  • 输入相应的值 以设置大小。1
  • 选择 ‘Swap’ 然后 ‘OK’
  • 按 ‘c’ 建立另一个分区。
  • 选择 ‘OK’ 使用剩余磁盘空间作为我们的根文件系统。
  • 选择 ‘FS’ 因为我们确实需要一个文件系统。
  • 输入 ‘/’ (没有引号) 作为挂载点并继续。
  • 按 ‘q’ 离开编辑器。

2. 基本系统和 Ports安装 

  • 从 Distributions 列表选择 ‘Developer’ 。
  • 选择 ‘Yes’ 安装 ports 集合。
  • 返回 Distributions 屏, 按 ‘OK’
  • 确认 ‘CD/DVD’ 作为安装媒体。
  • 好好看看 并确认您不会意外破坏一个已经存在的安装或什么。 安装会耗费若干分钟。
  • 接受祝贺。

3. 网络配置 

  • 选择 ‘Yes’ 设置网卡。
  • 从列表选择您的网卡 。
  • 回答 ‘IPv6’ 和 DHCP 问题。
  • 如果您不使用 DHCP,填写您的网络信息并继续。
  • 选择 ‘OK’ 启动网卡。
  • being a gateway 的地方选择 ‘No’,inetd 的地方选 ‘No’ 。
  • 选择 ‘Yes’ 启用 SSH 登陆。
  • Anonymous FTP 的地方选择 ‘No’ ,being a NFS Server选 ‘No’ 还有 being a NFS Client 选 ‘No’
  • needing any additional system consolesettings 的地方选 ‘No’
  • 按提示 设置时区。
  • Linux Binary Compatibility 的地方选 ‘No’
  • 鼠标?
  • 回答 ‘No’ 以浏览包集合。

4. 用户账户

  • 如果需要就添加用户。 如果仅仅是一个开发环境,你可能并不需要。
  • 设置 root 密码。
  • 在 ‘last options’ 屏幕回答 ‘No’ 。
  • 退出 安装程序。

5. SSH 配置 

  • 机器重启后, 以 root 登陆。
  • 如果要通过 SSH 登陆系统,并且你只有 root账户,你需要 允许 root 通过 SSH 登陆:
    • 编辑: /etc/ssh/sshd_config
    • 取消 ‘PermitRootLogin=no’ 的注释并将 no 改为 ‘yes’

6. 设置开发Jail 
m0n0wall 需要给基本系统打一些补丁。因为这样,我们更愿意建一个 “沙盒” 来做试验,以防破坏我们正在工作的环境。我们用 sysinstall 来安装 jail 到 /usr/jail。

  • 运行 sysinstall
  • 选择 ‘Custom’ 安装。
  • 选择 ‘Options’
  • 确认 ‘Release Name’ 设置为 ‘6.2-RELEASE’
  • 将 Install Root 从 ‘/’ 改为 ‘/usr/jail’
  • 按 ‘q’ 离开选项编辑器。
  • 选择 ‘Distributions’ 并选择 ‘Developer’发行,与我们安装基本系统时一致。
  • 在 ports 问题中再次回答 ‘Yes’。
  • 选择 ‘Exit’
  • 选择 ‘Commit’ 和你的安装媒体 开始 jail 的安装。
  • 当安装过程完毕, 如果你需要设置任何 last options 就 回答 ‘No’ 。
  • 选择 ‘Exit’ 然后 ‘X Exit Install’退出 sysinstall。

7. 进入开发 Jail
预备和 chroot 到你的新开发 jail 的最简单方式是从 ultradesic文档下载 这个脚本

# fetch http://www.ultradesic.com/pub/miniBS…/minichroot.sh
# chmod 700 minichroot.sh

它完成以下工作:

  • 从主机系统复制一些重要的东西到 jail (resolv.conf,localtime, wall_cmos_clock)
  • 挂载设备系统到 jail
  • chroot 到 jail

将下面一行添加到 /usr/jail/root/.cshrc 就能随时提示你所处的环境:
set prompt = “MiniBSD %~ %# ”
就这样。执行脚本进入你的开发 jail 吧。

8. CVSup 安装和配置 
这些指令也可以用于更新你的主机系统资源。
安装 cvsup-without-gui 包 让你可以更新你的 jail 系统源代码

# pkg_add -r cvsup-without-gui
# rehash

接下来, 复制示范的 stable-supfile 到 /etc 并使其可写

# cp /usr/share/examples/cvsup/stable-supfile /etc/supfile
# chmod 600 /etc/supfile

添加一行 到 supfile 使得 cvsup 同样可以更新我们的ports 树。

# echo “ports-all tag=.” >> /etc/supfile

修改下面一行 设置你的 cvs 主机 为 离你最近的镜像

* default host=CHANGE_THIS.FreeBSD.org


修改 ‘cvs tag’ 所在行
 使得同步的 OS 源代码为 Release 6.2:

* default release=cvs tag=RELENG_6_2

最后, 同步你的源代码树。

# cvsup -g -L 2 /etc/supfile

9. 重新构建 
这些指令用于重新构建你的 jail 系统(不用切换到单用户模式来安装和构建内核)。如果你希望重新构建你的主机系统,按照下面警告过的额外步骤做。
添加一行 到 /etc/make.conf 使得系统的二进制文件可以动态链接,如此可节省空间。

# echo “NO_SHARED=no” >> /etc/make.conf

最后,我们准备好重新构建系统了!执行下面的命令,然后 煮杯咖啡,出去泡泡妞先。

# cd /usr/src
# make -j4 buildworld


警告:
 只有你希望重新构建你的主机系统时才执行下面的命令,因为这会把你丢到单用户模式

# shutdown now # confirm the default shell
# cd /usr/src

现在,我们可以 安装全新编译的系统了。

# make installworld


警告:
 只有你希望重新构建你的主机系统时,才执行下面的命令,因为这会重新编译和安装更新的内核并重启到你的新系统。

# make buildkernel
# make installkernel
# reboot

10. Onward! 
你的开发系统已经准备妥当。为了保持你的机器的生产力,我们写了一个 m0n0dev工具,它会自动完成 映像构建指南中提到的步骤,注意 4.11 和 6.2 之间的区别。

  • FreeBSD 推荐这个数值是你的系统当前内存的两倍。

1个评论

  1. 卓越网
    2009/03/31 20:20:33

    很喜欢你的博客想和你做个友情连接!!
    方便以后访问~~你的链接已经做好咯~~
    网站名称:卓越网
    网站地址:http://di67.cn/

发表评论

您的昵称 *

您的邮箱 *

您的网站