通过PXE安装FreeBSD系统

目标

在已有一台运行 FreeBSD 的计算机(我们称其为 S)的情况下,使用 PXE 在一台计算机(我们称其为 D)安装 FreeBSD。

硬件需求

S 必须拥有一块 FreeBSD 可以正常使用的网卡。
D 必须可以支持 PXE 引导,并且其网卡要可以在 FreeBSD 里面正常使用。 一条用于双机直连的网线。

软件需求

tftpd,已经包含在 FreeBSD 发行版的 base 中。
nfsserver,已经包含在 FreeBSD 中。
isc-dhcp3-server 3.0.5,通过 ports 安装。
FreeBSD 发行版 DISC1 的 ISO 镜像(我使用的镜像是 FreeBSD 8-CURRENT 今年一月的快照,8.0-CURRENT-200801-amd64-disc1.iso)。

S 上使用的 FreeBSD 是 7.0-BETA2-i386。

网络设置

假设 S 的 IP 地址为 192.168.0.1,子网掩码为 255.255.255.0。

准备工作

允许 tftpd 运行

默认情况下,inetd 里面的 tftpd 是不会运行的。在 inetd.conf 中找到 tftpd 所对应的一行,去掉行首的#,保存。注意,去除注释的这行应该是使用 udp 而不是 udp6。

配置 nfsserver

echo "/mnt -ro -alldirs" > /etc/exports

安装 isc-dhcp3-server

cd /usr/ports/net/isc-dhcp3-server && make BATCH=yes install

配置 isc-dhcp3-server

编辑 /usr/local/etc/dhcpd.conf

default-lease-time    7200;
max-lease-time    7200;
ddns-update-style    none;
subnet 192.168.0.0 netmask 255.255.255.0 {
    range 192.168.0.2 192.168.0.254;
    server-identifier    192.168.0.1;
    next-server        192.168.0.1;
    filename        "/pxeboot";
    option    root-path    "/mnt";
}

这里是整个 PXE 安装最重要的部分之一,能否正常进行 PXE 安装关键就在这里。这里面最关键的几个选项是 next-server,filename 和 root-path。
要理解这些选项的作用,首先要理解 PXE 工作的流程。按照 FreeBSD PXE 引导的过程,我们将其分成三个阶段。
第一阶段主要是 D 上 PXE 的 firmware 和 S 上 dhcpd 协商的过程。在这里,要商定 D 的 IP 地址,并且确定下一步 PXE 要加载的文件,及其位置。
第二阶段是 D 加载上一阶段商定好的文件。对于 FreeBSD 来说,主要就是 pxeboot(8),一个 PXE 的 bootloader。
第三阶段是根据 pxeboot(8) 的指示加载 loader(8) 和 kernel。
在这里,我们可以看到 D 要从网络加载两次文件,一次是 pxeboot(8),另外一次是 loader(8) 和 kernel。这两次加载文件的位置就是由上面的三个选项来确定的。下面我们逐一分析这几个语句的作用。

next-server 语句主要控制了整个 PXE 引导中两次加载的文件所在的服务器的地址。pxeboot(8) 是通过 tftp 从 S 传递到 D 的,所以 next-server 第一个作用就是指定一个 tftp server 的地址。在第三阶段,要加载 loader(8) 和 kernel,这个加载过程是通过 nfs 完成的。next-server 同时也指定了 nfs server 的地址。值得注意的是,有一些文档说第一阶段确定的 PXE 在下一阶段要加载的文件(也就是 pxeboot(8))所在的服务器地址是通过 server-identifier 给定的,但是对于 isc-dhcp3-server 来说,这一点并不成立,而恰恰是 next-server 决定了 pxeboot(8) 所在的服务器的地址(在 dhcpd.conf(5) 里面已经明确指出了这一点)。

filename 指定的是 pxeboot(8) 在 tftp 传输过程中的名字。由于 tftpd 将在 inetd 中来使用,根据 inetd.conf 中给 tftpd 传递的选项,tftpd 启动的时候会进行 chroot,于是 filename 的地址是要相对于其 chroot 之后的根路径来说的。默认情况下,tftpd 会 chroot 到 /tftpboot,我们要在 /tftpboot 中放入 pxeboot(8) 这个文件。由于相对 /tftpboot 作为根路径来说,pxeboot(8) 的位置是 /pxeboot,所以我们直接填入 /pxeboot 便可。

root-path 这个选项指定的是第三阶段加载 loader(8) 和 kernel 在 nfs 的根路径的位置(也就是包含了 boot 目录的位置)。因为我们导出的是 /mnt,所以这里填 /mnt。

正式安装

1、为了避免 S 上的 dhcpd 影响网络中其他机器,也为了避免 D 受到网络上其他机器的影响,用直连网线将 S 和 D 连接起来。

2、挂载准备好的 ISO 镜像。 使用 mdconfig 将 FreeBSD 的 ISO 文件连接成为一个 vnode 类型的内存盘:

mdconfig -atvnode -f 8.0-CURRENT-200801-amd64-disc1.iso

挂载这个 md 节点(假设为 /dev/md0)到 /mnt:

mount_cd9660 /dev/md0 /mnt

3、把 pxeboot(8) 放到 /tftpboot:

cp /mnt/boot/pxeboot /tftpboot

4、在 S 上启动 tftpd, dhcpd 和 nfsd:

/etc/rc.d/inetd forcestart
/etc/rc.d/nfsd forcestart
/usr/local/etc/rc.d/isc-dhcpd forcestart

5、由于我们已经使用直连网线将 S 和 D 连接,假设 S 上没有配置 BIND 服务,也没有额外的到 Internet 的网络连接,那么需要禁止 S 上的 DNS 解析。可以修改 /etc/resolv.conf,将其中所有以 nameserver 开头的行注释掉。否则 mountd(因为 nfsd 依赖这个 daemon,所以 mountd 也会随 nfsd 启动而启动)会去查 DNS,而有可能导致最终 PXE 启动连不上 nfs,不能加载 kernel 而超时失败。

6、在 D 的 BIOS 中设置为 PXE 引导,重新启动计算机。

7、D 此时已经启动,并通过 PXE,加载了 loader。此时需要选择 loader 启动选项的第 6 项,进入 loader prompt。输入以下命令:

set vfs.root.mountfrom="ufs:/dev/md0c"
boot

第一行保证我们可以启动到正确的安装程序,第二行提示系统继续执行启动的各个步骤。

8、此时应该正常进入安装程序。到选择安装介质之前都按照一般的安装步骤。在选择安装介质时选择 nfs,然后输入 S 的 IP 地址,以及导出的路径,例如 192.168.0.1:/mnt。确认后,系统提示要设置网卡,在这里按照系统提示,使用 dhcp,保证 D 与 S 在同一个网络中。主机名和域名随意,DNS 以及网关可以暂时不填。后续步骤与从光盘安装一致。

9、最终退出安装程序,重新启动系统。并修改 D 的 BIOS 设置,禁止网络启动。

10、安装全部完成,可以开始享用 FreeBSD 了。

参考

rafan 的 PXE Install 笔记[URL:http://wiki.rafan.org/doc/freebsd#pxe_install]

原文链接:http://wiki.freebsdchina.org/howto/p/pxeinstall

FreeBSD 7 Xorg7.3 KDE3.5 桌面系统安装及美化

这几天一直在整FreeBSD+KDE的桌面系统,现在基本上能满足偶的日常需要。把安装过程记录下来,方便以后重装。。。。 !!

一、安装系统

首先,最小化安装系统,没什么好说的,最好单独分一个/home出来,这样重装后,很多东西可以重用。然后装呗。。建议把src/base/kernels/man一并装上,以后可能会用到。 然后在sysinstall里建一个wheel用户,建用户的时候shell那里偶写上:/bin/csh,因为偶比较习惯用csh 再修改一下网卡属性,连接上网。

最小化安装好系统后,把cd1,cd2,cd3中的内容都拷到硬盘,这样pkg_add 软件方便,不用来回换光盘。

建个目录放拷来的tbz文件

#mkdir /usr/soft

挂载光驱

#mount /cdrom

拷贝packages下的所有文件到硬盘里

#cp -rf /cdrom/packages/* /usr/soft/

挂载掉光驱

#umount /cdrom

然后到/usr/soft目录,安装xorg,kde,linux程序支持,可以使用ls xorg*命令查看具体文件名。

#cd /usr/soft/All

#pkg_add xorg-7.3_1.tbz

#pkg_add kde-3.5.8.tbz

#pkg_add linux_base-fc-4.10.tbz

装完xorg,kde后,更新ports。/etc/portsnap.conf里是更新portsnap镜像的站点地址。可以改成国内比较快的镜像站点:SERVERNAME=portsnap.hshh.org 最小化安装时默认是不安装ports的,如果你装了ports,先删除ports目录

#rm -rf /usr/ports

然后继续,fetch是取得ports镜像,extract把ports镜像解压到/usr/ports,update是更新ports

#portsnap fetch

#portsnap extract

为了让ports的安装速度更快,做以下修改:

#ee /etc/make.conf

在make.conf中加入下面的内容,可以用wget在国内镜像站点下载ports包需要的软件。

MASTER_SITE_OVERRIDE=\

http://ports.hshh.org/${DIST_SUBDIR}/\

ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/

FETCH_CMD=wget -c -t 1

DISABLE_SIZE=yes

接下来安装显卡驱动,我的显示是nvidia7300gt。A卡的用户百度狗狗下~

#cd /usr/ports/x11/nvidia-driver

#make install clean

装好之后,最好重启一下。

#shutdown -r now

为了方便,偶装了偶比较习惯用的编辑器,如果你喜欢用ee,可以不装vim ,下面一些shell命令行,把vim 换成ee

#cd /usr/ports/editors/vim

make install clean

用PREFIX=/home/path/to/your/opt 命令,可以把vim装在你想要的目录,当然也可以直接装在默认目录下。偶一般在自己的home目录下建个opt文件夹,放安装的程序。

接下来配置xorg,进入kde桌面

#xorg -configure

这样/root下应该会生成xorg.conf.new文件,测试一下是否正常,如果屏幕上出现一个黑色的鼠标指针就差不多啦~如果不正常,接Ctrl+Alt+Backspace

#xorg -config xorg.conf.new

如果一切正常,把xorg.conf复制到公共目录里,不过偶装的时候好像没有手动复制也可以,像是装的时候自动放到位置上去了。具体参看手册。

之后,试试看可以了嘛~~

#startx

#startkde

界面可能不好看,没关系,改动一下配置文件,让kde随机启动。

#vim /etc/ttys

把 ttyv8这行,改成这样:

ttyv8 ”/usr/local/bin/kdm -nodaemon” xterm on secure

这样,系统启动时就默认登录KDE桌面。

如果想改成其它桌面,可以直接编辑Xsession文件。

#vim /usr/local/share/config/kdm/Xsession

default)那里,即是默认启动的窗口。

default)

exec startkde

编辑好,保存即可。

安装kde的汉化文件

#cd /usr/ports/chinese/kde3-i18n-zh_CN

#make install clean

为了方便,可以直接装下一个做好的ports

#cd /usr/ports/chinese/auto-cn-l10n

#make install clean

选择下需要安装的内容,wqy字体选中,fireflyttf字体选中,SCIM输入法选中。

上面的包装好后,如果你需要用五笔或拼音可以分别在下面二个位置安装

/usr/ports/chinese/scim-tables

/usr/ports/chinese/scim-pinyin

OK,在你用kdm进入kde前,用先前建的帐号,最好设置一下一些东西。

#su 用户名

%cd ~

因为我用的是csh,所以编辑.cshrc文件。

%vim .cshrc

加入这么二行,习惯了:) shell会更好看呵呵。

alias ls ls -FAG

setenv LSCOLORS ExGxFxdxCxegedabagExEx

如果上面装了scim,.cshrc文件中没有改下内容,则加入

setenv XMODIFIERS @im=scim

setenv QT_IM_MODULE scim

setenv GTK_IM_MODULE scim

保存.cshrc文件。退出。

设置本地化环境

%vim ~/.login_conf

加入:

me:\
:charset=zh_CN.UTF-8:\
:lang=zh_CN.UTF-8:\
:setenv=LC_ALL=zh_CN.UTF-8:\
:setenv=LC_COLLATE=zh_CN.UTF-8:\
:setenv=LC_CTYPE=zh_CN.UTF-8:

这样重启后,自动进入kde桌面环境。

第一次进入时,有桌面配置向导,看提示一步步点完即可。

二、定制内核

具体内容参看:http://docs.freebsd.org/doc/7.0-RELEASE/usr/share/doc/zh_CN/books/handbook/kernelconfig.html

定制内核前,看一下:http://docs.freebsd.org/doc/7.0-RELEASE/usr/share/doc/zh_CN/books/handbook/kernelconfig-trouble.html

FreeBSD7手册中内核配置文件部分,说的十分详细,怎么按自己要求修改内核文件参看:http://docs.freebsd.org/doc /7.0-RELEASE/usr/share/doc/zh_CN/books/handbook/kernelconfig-config.html

准备好了之后,继续。。。

之前安装时建议把src装上,现在就可以用上啦。按手册上面说的把内核文件修改好之后。

进入 /usr/src 目录:

# cd /usr/src

编译内核:

# make buildkernel KERNCONF=MYKERNEL

安装新内核:

# make installkernel KERNCONF=MYKERNEL

安装好新内核之后,先不急重启,看清楚手册上说的内核配置错误不能启动怎么办那章之后,再重启哦。

如果想临时换回默认的GENERIC内核,可以修改/boot/defaults/loader.conf文件。

三、美化系统

1、字体

之前装了wqy字体,可以在K菜单-控制中心-外观和主题-字体里,把所有的字体都换成WenQuanYi的。

2、KDE风格

在 http://kde-look.org 的左中方有搜索栏,搜索kollide。 找到 kollide 1.5 的Theme-Manager Theme 风格包,下载。。解压缩。 #tar zxvf kollide*.gz 具体地址是:http://kde-look.org/content/show.php/kollide?content=75295

下载后在K菜单-控制中心-外观和主题-主题管理器中,点击安装新主题,选中.kth主题文件,即可。 这样在这个目录里就应该有kollide主题的目录,如果没有,可以在包里复制过来。

~/.kde/share/apps/kthememanager/themes

这样风格好看了吧,还有漂亮的壁纸。

3、登录界面风格

同样,从kde-look下载你喜欢的kdm风格包,下载解压缩包到 /usr/local/share/apps/kdm/themes 里, 同时修改kdmrc文件 #vim /usr/local/share/config/kdm/kdmrc 把UseTheme=true前面的注释号去掉。 Theme路径设成你刚刚下载的kdm风格路径。 我的是:Theme=/usr/local/share/apps/kdm/themes/DEEP

ok,ctrl+alt+delete重新登录一下看看 🙂

4、面板设置

在面板空白处右击,面板菜单-添加新面板-选择外部任务栏

K菜单-控制中心-桌面-面板

在“排列”选项卡里,选择设置“主面板”,位置向下居中,长度30%,勾选“自动扩大到需要的尺寸”,大小选“大”。

在“排列”选项卡里,选择设置“外部任务栏”,位置向上居中,长度100%,勾选“自动扩大到需要的尺寸”,大小选“小”。

在“外观”选项卡里,“面板背景”项中勾选“允许透明” 确定。。

这样面板是不是好看多了~呵呵,这个全凭各人喜好。我这里配置“外部工具栏”不显示全部桌面中的窗口。。。不分组显示 。。个人爱好。

5、conky设置

首选安装conky,ports安装,注意root 权限。

#cd /usr/ports/sysutils/conky

#sudo make install clean

装好之后,在你的主目录中建一个文件.conkyrc ,然后编辑这个文件。注意帐号,不要用成root的了。

#su 用户名

%cd ~

% vim .conkyrc

加入以下内容:

background no
double_buffer

# X font used, you can pick one with program xfontsel
#font 5×7
#font 6×10
#font 7×13
#font 8×13
font wenquanyi Bitstream Vera Sans Mono-9
# font *mintsmild.se*
# font -*-*-*-*-*-*-34-*-*-*-*-*-*-*

# Update interval in seconds
update_interval 1.0

# Create own window instead of using desktop (required in nautilus)
own_window no

# Draw shades?
draw_shades yes

# Draw borders around text
draw_borders no

draw_outlines yes
default_outline_color gray30

# Stippled borders?
stippled_borders no

# Default colors and also border colors
default_color gray75
default_shadecolor gray41

# Text alignment, other possible values are commented
#alignment top_left
#alignment top_right
#alignment bottom_left
alignment bottom_right

# Gap between borders of screen and text
gap_x 16
gap_y 66

use_xft

# Substract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase yes
# stuff after ‘TEXT’ will be formatted on screen

TEXT
${color grey69}CPU Usage :$color $cpu% @ ${freq}MHz
${cpubar 4}
$cpugraph
${color grey69}Processes :$color $processes ${color grey69}Running:$color $running_processes
${color grey69}Load      :$color ${loadavg 1} / ${loadavg 2} / ${loadavg 3}
$color$stippled_hr
${color grey69}RAM Usage :$color $mem / $memmax – $memperc%
${membar 4}
${color grey69}Swap Usage:$color $swap / $swapmax – $swapperc%
${swapbar 4}
$color$stippled_hr
${color grey69}Networking: re0: Up:$color ${upspeed re0} k/s${color grey69} – Down:$color ${downspeed re0} k/s
$color$stippled_hr
${color grey69}Disk: developer $color grey69} Used: $color${fs_used /home/developer} ${color grey69} Free:$color ${fs_free /}
${color grey69}    : usr: ${color grey69}Used: $color${fs_used /usr} ${color grey69} Free: $color ${fs_free /usr}

把网卡名换成你机子的网卡名,还有用户主目录换成你的主目录即可。

当然也可以从网上下载conky的风格放在主目录下改名为.conkyrc

设置conky自启动:

打开 ~/.kde/Autostart 目录,把conky的程序拖进autostart目录,选择在此处创建链接。即可。

四、安装常用软件

一些常用软件都可以使用ports安装

%whereis 软件名

即可看到这个软件在ports中的位置。

%whereis firefox3

firefox3: /usr/ports/www/firefox3 浏览器

%whereis kchmviewer

kchmviewer:/usr/ports/deskutils/kchmviewer CHM查看软件

%whereis kftpgrabber

kftpgrabber: /usr/ports/ftp/kftpgrabber FTP客户端

%whereis ktorrent

ktorrent: /usr/ports/net-p2p/ktorrent KDE下图形BT客户端

%whereis smplayer

smplayer: /usr/ports/multimedia/smplayer “暴风影音”?呵呵

%whereis amarok

amarok: /usr/ports/audio/amarok MP3播放器

%whereis eva

eva:/usr/ports/net-im/eva linux下的QQ

%whereis stardict2

stardict2: /usr/ports/textproc/stardict2 星际译王2

amarok有个歌词插件,名字叫lrcshow,可以从网上下载到。在amarok的菜单里有选项,选中下载回来的固定文件名包即可安装。这个插件需要系统中有py-qt才可以正常使用。

%whereis py-qt

py-qt: /usr/ports/x11-toolkits/py-qt

强烈建议大家安装下sudo,十分方便。以前用ubuntu时就喜欢上了sudo…ports中有包。

偶在FreeBSD下主要弄php程序,上面说的软件smplayer没有测试能不能正常放,如果不行可以从百度狗狗上找找怎么下载解码器之类安装。

在安装ports的过程中可能会无法继续

强制安装使用:FORCE_PKG_REGISTER=YES

还有NO_CHECKSUM之类的,PORTS安装还是比较简单方便的。

实在不行,可以在ftp://ftp.freebsd.org的相关目录里下载tbz文件回来安装。。

再不行,可以pkg_add -r 安装。。

五、其它

因为是装过之后,才写的一些安装过程,错误在所难免,请见谅。

有点白
alittlewhite.developer@gmail.com
http://developer.cublog.cn

原文链接:http://wiki.freebsdchina.org/doc/p/freebsd_desktop_kde

FreeBSD配置ZFS做为根系统

声明:不建议使用ZFS做根文件系统

需要的文件

需要FreeBSD的DVD镜像 或者 memstick.img文件,其他的都不完整,所以不推荐

启动到Fixit

1.启动DVD 2.选择Fixit 3.选择CDROM/DVD,回车

创建mbr结构分区表,如果已存可以省略

Fixit# gpart create -s mbr ad4

显示分区信息

Fixit# gpart show ad4

在ad4上创建FreeBSD使用的分区ad4s3

Fixit# gpart add -b 6313545 -s 119515536 -t freebsd ad4
ad4s3 added
Fixit# gpart create -s BSD ad4s3
ad4s3 created

创建FreeBSD Partition

ad4s3a的分区是去掉Swap分区后的大小,计算公式时1024x1024x2=1G

Fixit# gpart add -i 1 -b 0 -s 117418384 -t freebsd-zfs ad4s3
ad4s3a added
Fixit# gpart show ad4s3

Fixit# gpart add -i 2 -b 117418384 -s 8380811 -t freebsd-swap ad4s3
ad4s3b added
Fixit# gpart show ad4s3

安装FreeBSD自带的引导器,boot0阶段

Fixit# gpart bootcode -b /mnt2/boot/boot0 ad4
ad4 has bootcode

boot1阶段

Fixit# dd if=/mnt2/boot/zfsboot of=/dev/ad4s3 count=1

boot2阶段

Fixit# dd if=/mnt2/boot/zfsboot of=/dev/ad4s3a skip=1 seek=1024

加载zfs内核模块

Fixit# kldload /mnt2/boot/kernel/opensolaris.ko
Fixit# kldload /mnt2/boot/kernel/zfs.ko

创建ZFS存储池

Fixit# zpool create tank /dev/ad4s3a
Fixit# zpool set bootfs=tank tank

文件系统校验使用fletcher4方式

Fixit# zfs set checksum=fletcher4 tank

创建ZFS文件目录结构

Fixit# zfs create -o compression=on -o exec=on -o setuid=off tank/tmp
Fixit# chmod 1777 /tank/tmp
Fixit# zfs create tank/usr
Fixit# zfs create tank/home
Fixit# zfs create -o compression=lzjb -o setuid=off tank/usr/ports
Fixit# zfs create -o compression=off -o exec=off -o setuid=off tank/usr/ports/distfiles
Fixit# zfs create -o compression=off -o exec=off -o setuid=off tank/usr/ports/packages
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off tank/usr/src
Fixit# zfs create tank/var
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off tank/var/crash
Fixit# zfs create -o exec=off -o setuid=off tank/var/db
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off tank/var/db/pkg
Fixit# zfs create -o exec=off -o setuid=off tank/var/empty
Fixit# zfs create -o compression=lzjb -o exec=off -o setuid=off tank/var/log
Fixit# zfs create -o compression=gzip -o exec=off -o setuid=off tank/var/mail
Fixit# zfs create -o exec=off -o setuid=off tank/var/run
Fixit# zfs create -o compression=lzjb -o exec=on -o setuid=off tank/var/tmp
Fixit# chmod 1777 /tank/var/tmp

安装FreeBSD到ZFS上

Fixit# cd /dist/8.1*
Fixit# export DESTDIR=/tank
这里推荐先不要释放ports,曾经8.0上释放ports会导致重启
Fixit# for dir in base catpages dict doc games info lib32 manpages; \
     do (cd $dir ; ./install.sh) ; done
Fixit# cd src ; ./install.sh all
Fixit# cd ../kernels ; ./install.sh generic
Fixit# cd /tank/boot ; cp -Rlp GENERIC/* /tank/boot/kernel/
Fixit# cd /
Fixit# zfs set readonly=on tank/var/empty

安装后配置

在rc.conf,src.conf,fstab,loader.conf文件里添加了这些内容就行,不管你使用什么方法ee,vi,echo。都行

Fixit# echo ‘zfs_enable="YES"’ > /etc/rc.conf
Fixit# echo ‘hostname="FreeBSD.tk.local"’ >> /etc/rc.conf
Fixit# echo ‘ifconfig_em0="DHCP"’ >> /etc/rc.conf
Fixit# echo ‘LOADER_ZFS_SUPPORT=YES’ > /tank/etc/src.conf
Fixit# echo ‘zfs_load="YES"’ > /tank/boot/loader.conf
Fixit# echo ‘vfs.root.mountfrom="zfs:tank"’ >> /tank/boot/loader.conf
Fixit# cat << EOF > /tank/etc/fstab
# Device                       Mountpoint              FStype  Options         Dump    Pass#
/dev/ad4s3b                    none                    swap    sw              0       0
EOF

重新编译引导器,添加zfs支持

Fixit# chroot /tank
Fixit# mount -t devfs devfs /dev
Fixit# export DESTDIR=""
Fixit# cd /usr/src/sys/boot/
Fixit# make obj
Fixit# make depend
Fixit# make
Fixit# cd i386/loader
Fixit# make install

设置密码

Fixit# passwd

设置时区

Fixit# tzsetup
Fixit# cd /etc/mail
Fixit# make aliases
Fixit# umount /dev
Fixit# exit

创建zpool.cache

Fixit# mkdir /boot/zfs
Fixit# zpool export tank && zpool import tank
Fixit# cp /boot/zfs/zpool.cache /tank/boot/zfs/zpool.cache
Fixit# export LD_LIBRARY_PATH=/mnt2/lib

修改zfs存储池tank的挂载点

Fixit# zfs set mountpoint=legacy tank
Fixit# zfs set mountpoint=/tmp tank/tmp
Fixit# zfs set mountpoint=/usr tank/usr
Fixit# zfs set mountpoint=/var tank/var
Fixit# zfs set mountpoint=/home tank/home

卸载所有

Fixit# zfs unmount -a

退出,重新引导系统

Fixit# exit

其他

1.有时会出现找不到引导器,重启后就可以引导了,原因不明

2.可能导致Windows7出现引导器修复界面

原文链接:http://wiki.freebsdchina.org/doc/z/zfsbootpartition

在FreeBSD上搭建NTP时间服务器

电脑的时间放置不理的话过不久就会出现误差。
这个误差会反映在email送信时刻的time stamp上,会反映在你的论坛帖子发表时刻上。至少我遇到过这个问题。
网络上有ntp(network time protocol)服务器,提供当前的时刻。我们可以将本地的时刻与ntp服务器的时刻进行同步。

目的如下:
1,启动时用ntpdate进行时刻修正。
2,启动中,通过ntpd进行时刻校正的同时,将各个客户端电脑的时刻也进行同期校正。
3,如果不能找到ntp服务器,那么就使用local time,同时同步客户。

全世界约有100多个ntp服务器,从下面地址找一个离你最近的
http://www.eecis.udel.edu/~mills/ntp/clock1a.html
我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2
clock.tl.fukuoka-u.ac.jp 133.100.11.8
步骤:

FreeBSD中有两个标准的ntp程序,其一为ntpdate。
ntpdate通过从ntp服务器获取时刻,调整本地时刻。
# ntpdate clock.nc.fukuoka-u.ac.jp
9 Oct 18:12:23 ntpdate: step time server 133.100.9.2 offset -19.112674
大约有19秒钟的误差

自动设定
# grep ntpdate /etc/defaults/rc.conf >>/etc/rc.conf
# vi /etc/rc.conf
ntpdate_enable="YES" # Run ntpdate to sync time on boot (or NO).
ntpdate_program="ntpdate" # path to ntpdate, if you want a different one.
ntpdate_flags="clock.nc.fukuoka-u.ac.jp" # Flags to ntpdate (if enabled).
重新启动以后就运行了,当然设定没有完,不必急着启动
FreeBSD的另一个标准ntp程序,ntp
ntp程序使的获取ntp时刻的同时,向其他pc提供时刻。

添加文件ntp.conf:

用来作为标准时刻的ntp服务器我选择了两个
clock.nc.fukuoka-u.ac.jp 133.100.9.2
clock.tl.fukuoka-u.ac.jp 133.100.11.8
同时指定复数个服务器也没有问题,系统会自动选择一个可以信赖的。
这里,为避免多余的DNS数据包传递,我们直接指定IP地址。
server行 server 127.127.1.0 为参考本地时刻时用的地址。然后用fudge指定阶层编号为5,降低其优先度。

接着用restrict对每一个IP地址指定相应的规则。
最后,指定波长校正用的drift文档保存地址。关于这个命令行,具体的含义不太清楚。不过如果没有的话,时间校正起来就会比较慢
# vi /etc/ntp.conf
server 133.100.9.2 #clock.nc.fukuoka-u.ac.jp
server 133.100.11.8 #clock.tl.fukuoka-u.ac.jp
server 127.127.1.0
fudge 127.127.0.1 stratum 5
restrict default ignore
restrict 127.0.0.0 mask 255.0.0.0
restrict 192.168.1.0 mask 255.255.255.0 noquery nopeer notrust
restrict 133.100.9.2 noquery
restrict 133.100.11.8 noquery
driftfile /etc/ntpd.drift
启动测试
# ntpd -p /var/run/ntpd.pid
# tail /var/log/messages
Oct 9 16:46:56 chiwawa ntpd[89409]: ntpd 4.1.0-a Thu Apr 3 08:26:24 GMT 2003 (1)
Oct 9 16:46:56 chiwawa ntpd[89409]: kernel time discipline status 2040
……
Oct 9 16:50:10 chiwawa ntpd[89409]: time set -0.189546 s
看到类似的结果就可以了。

运行测试
ntpd的运行用ntpq命令
# ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*clock.nc.fukuok .GPS. 1 u 43 64 37 19.067 -6.884 10.339
+clock.tl.fukuok .GPS. 1 u 36 64 35 19.670 -3.259 2.341
LOCAL(0) LOCAL(0) 5 l 45 64 37 0.000 0.000 0.001
启动后到时刻校正完成需要一点时间。*是第一候补,+是第二。
本地时刻校正完成以后就可以为其他PC提供时刻校正服务了。

自动启动的设定
完成以上设定,确认运行无误以后:
# grep ntpd /etc/defaults/rc.conf >>/etc/rc.conf
# vi /etc/rc.conf
xntpd_enable="YES" # Run ntpd Network Time Protocol (or NO).
xntpd_program="ntpd" # path to ntpd, if you want a different one.
xntpd_flags="-p /var/run/ntpd.pid" # Flags to ntpd (if enabled).

往rc.conf追加上面3行内容,并修改。
客户端PC设定:
UNIX OS
# vi /etc/ntp.conf
server [local ntp server IP] prefer
driftfile /etc/ntpd.drift
或者追加下面内容到crontab,这样,每过一个小时0分的时候就自动更新。
# vi /etc/crontab
0 * * * * root ntpdate [ntp server IP] >/dev/null 2>&1
当然,你的主机其实也是一个客户机,这些内容也可以用上。
Windows
精工的网站上有下载软件,不过是日语的
http://www.seiko-p.co.jp/systems/down/time.html
windows2000自带了sntp机能,请自己研究吧。

原文链接: http://www.bsdlover.cn/html/12/n-112.html

FreeBSD NTP服务器配置笔记

一组服务器里面配置一台NTP服务器也是必要的,可以让所有服务器的时间同步。

一、配置NTP服务器

vi /etc/rc.conf

ntpd_enable="YES"

vi /etc/ntp.conf

server www.freebsd.org prefer
server time.windows.com
server 127.127.1.0
fudge 127.127.0.1 stratum 5

restrict default ignore
restrict 127.0.0.0 mask 255.0.0.0
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap

driftfile /var/db/ntp.drift

启动NTP服务:

/etc/rc.d/ntpd start

二、客户端配置

vi /root/scripts/synctime.sh

#!/bin/sh
/usr/sbin/ntpdate 192.168.0.100 #内网NTP服务器地址

chmod +x /root/scripts/synctime.sh
crontab -e

*/30 * * * * cd /root/scripts;./synctime.sh

这样客户端服务器每半小时就会和NTP服务器同步一次。

FreeBSD NFS架设

FreeBSD下的NFS配置

服务                 描述
nfsd NFS,          为来自NFS客户端的 请求服务。
mountd NFS          挂载服务,处理nfsd(8)递交过来的请求。
rpcbind             此服务允许 NFS 客户程序查询正在被 NFS 服务使用的端口。

配置NFS
NFS的配置过程相对简单。这个过程只需要 对/etc/rc.conf文件作一些简单修改。

安装rpc  #cd /usr/ports/math/rpc  make install clean

在NFS服务器这端,确认/etc/rc.conf 文件里头以下开关都配上了:

nfs_server_enable=”YES”
nfs_server_flags=”-u -t -n 4″
rpc_statd_enable=”YES”
rpc_lockd_enable=”YES”
mountd_flags=”-r”

只要NFS服务被置为enable,mountd 就能自动运行。

在客户端一侧,确认下面这个开关出现在 /etc/rc.conf里头:

nfs_client_enable=”YES”
nfs_client_flags=”-n 4″
像nfsd,-n 4告诉nfsiod运行自己的4个拷贝。

二,设置

etc/exports文件指定了哪个文件系统 NFS应该输出(有时被称为“共享”)。 /etc/exports里面每行指定一个输出的文件系统和哪些机器可以访问该文件系统。在指定机器访问权限的同时,访问选项开关也可以被指定。

格式:

[共享的目录] [主机名1或IP1(参数1,参数2)] [主机名2或IP2(参数3,参数4)]

下面是一些NFS共享的常用参数:

ro                      只读访问
rw                      读写访问
sync                    所有数据在请求时写入共享
async                   NFS在写入数据前可以相应请求
secure                  NFS通过1024以下的安全TCP/IP端口发送
insecure                NFS通过1024以上的端口发送
wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)
no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
hide                    在NFS共享目录中不共享其子目录
no_hide                 共享NFS目录的子目录
subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
no_subtree_check        和上面相对,不检查父目录权限
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash           保留共享文件的UID和GID(默认)
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas           root用户具有根目录的完全管理访问权限
anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID
anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID

配置文件/etc/exports内容如下:

$ cat /etc/exports
/home/share 192.168.1.15(rw,sync) *(ro)
配置说明: 对192.168.1.15赋予读写权限,其他机器仅有只读权限。

四.客户端配置

1.查看NFS服务器的输出
#showmount -e 192.168.1.1
2.挂载NFS服务器中的共享目录到本地目录/mnt/下
#mount -t nfs 192.168.1.1:/home  /mnt/
3.卸载系统中已挂载的NFS共享目录
#umount /mnt/
4.修改fstab文件让系统启动时自动挂载NFS文件
#vi /etc/fstab
192.168.1.1:/home    /mnt    nfs     defaults    0 0

五、安全性
———
portmap: 111
NFS: 2049
防止使用IP欺骗和RPC重定向技术通过lo回环进行攻击以及限定授权主机:
iptables -A INPUT -p udp -d 127.0.0.1 –dport 111 -j DROP
iptables -A INPUT -p udp -d 127.0.0.1 –dport 2049 -j DROP
iptables -A INPUT -p udp -s 10.0.0.2 –dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.2 –dport 2049 -j ACCEPT

原文链接:http://blog.chinaunix.net/u/27383/showart_499159.html

FreeBSD 8.0 NFS服务器配置笔记

一组服务器系统里面必然存在一台NFS服务器,实现多服务器的文件共享。
NFS服务器:nfs_server
NFS客户端:host1,host2,host3
共享目录:/share

一、NFS服务器配置

vi /etc/rc.conf

rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"

二、客户端配置

vi /etc/rc.conf

nfs_client_enable="YES"

三、文件共享配置

vi /etc/exports

/share  -alldirs    host1 host2 host3

共享设置好了之后,重启NFS服务器以启动NFS服务。

四、客户端挂载NFS文件系统

mount nfs_server:/share /share

或者写进fstab让系统启动时自动挂载文件系统:
vi /etc/fstab

nfs_server:/share   /share  nfs rw  0   0

权限问题:最好让所有服务器上操作NFS共享文件的用户ID相同。

关于NFS的其他问题请参考FreeBSD手册。

原文链接: http://garey.bsdart.org/2010/11/freebsd-8-0-nfs%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%85%8D%E7%BD%AE%E7%AC%94%E8%AE%B0/

FreeBSD 7.0 全程图解安装手册

FreeBSD 7.0 全程图解安装手册

FreeBSD 是一种优秀的 Unix 类操作系统,它以卓越的稳定性、安全性和性能著称,是目前主流服务器操作系统之一。就在不久前,FreeBSD 发布了一个新的重大版本 FreeBSD 7.0,新版本增加了许多优秀特性。现在我们以标准PC机为例,开始介绍 FreeBSD 7.0 的安装过程。

首先,你需要拥有 FreeBSD 7.0 的安装光盘,你可以在官方网站 http://www.freebsd.org/ 中下载到安装镜像,刻录成 CD 后使用。如果你是在虚拟机中安装,直接下载镜像即可。FreeBSD 7.0 的安装光盘有3张,格式为ISO。第一张光盘 7.0-RELEASE-i386-disc1.iso 可以满足最小安装,如果你还需要安装其他组件,还需要下载剩余两张光盘。

将第一张光盘载入光驱,将计算机设置为使用光盘引导启动。然后开启计算机。

启动计算机后,经过一些加载过程后,将载入 FreeBSD 引导画面,如下图:


现在,按回车键或数字1键,选择第一项使用默认方式启动 FreeBSD 安装程序。如果您不进行选择,安装程序会在十秒后自动使用此方式启动。


经过一些加载过程后,开始进入安装向导。进入向导前,首先会要求你选择所在国家。按键盘方向键选择 45 China 中国,为我们的国家,回车键确定。

下一个画面,是要求你选择键盘类型。中国地区和欧美地区都是使用美式键盘,我们可以直接使用默认选项 USA ISO,回车确认进入下一步。


正式进入了安装向导,FreeBSD 7.0 的安装程序名叫 Sysinstall。现在你看到的就是 Sysinstall 的主菜单,其中有各种安装选项。使用方向键选择 Standard 项目,回车确认,进入标准安装。


首先会看到一个安装提示消息框,确认即可。


现在看到的是分区向导,这里会列出你的硬盘信息。一般情况下,我们按键盘A键,使用自动分区功能,或者手工创建分区。这里我们按A键,自动分区完毕。按键盘Q键,完成分区。


这里是询问你安装何种硬盘引导程序。第一项是使用 FreeBSD 的启动引导程序,第二项是标准引导,第三项是不安装引导程序。如果我们安装单操作系统,请选择第二项。如果有多个操作系统,请选择第一项。第三项是不安装,这指使用目前已经有的其他操作系统的引导程序。我们选择第二项,确认。


再确认,进入分区向导。要注意的是 FreeBSD 的磁盘分区与 Windows 的分区概念不一样,除了硬盘分区之外,还有一个 Label 分区。我们依然按A键,使用自动分区,软件会为我们分配合适的磁盘分区与虚拟内存,按Q键完成。


现在看到的,是比较重要的部分,选择软件安装包。我们只需要一个全新干净的 FreeBSD,这里我们选择倒数第二项 Minimal 最小安装模式,按空格键确认。这里要注意的是,FreeBSD 有一个很方便的软件包管理和安装器,名叫ports,类似 Ubunut 的 Apt-get,一般我们都是必须安装的。我们再选择菜单最后一项,进入详细软件包设置。


使用空格键勾选 ports,然后再选择第一项 Exit,回到前一个菜单。然后同样选择第一项 Exit,结束选择。


询问我们所使用的安装介质,这里我们选择 CD/DVD,确认。


警告我们即将开始安装,将正式对硬盘进行写入操作。选择 Yes 开始安装,选 No 可以回到之前的安装步骤。


分区操作结束后,开始复制文件,FreeBSD 7.0 正在安装。


稍等片刻,提示安装完成。确认进入接下来的设置过程。


设置网卡,确认。


选择首项,一般是你的第一块本地网卡。然后会询问你是否是 IPv6 网络,目前我们主流网络依然是 IPv4,选择否。询问你是否使用 DHCP 网络自动配置网络,如果您的网络路由器开启了此功能,请务必选择是,否则选择否。


设置网络参数,如果您使用 DHCP 设置,现在已经设置完毕。如果不是,请手工填写网络信息。依次需要填写的项目是 主机名称、域名、IP地址、DNS服务器地址、网关地址、子网掩码与附加参数。如果你不知道这些信息,请咨询网络管理员。按Tab键切换表格项目,填写完毕选择 OK 结束。然后会提示你是否现在启动网络与自动启动网络,一般均选择是。


配置系统服务,选择 Yes 进入配置,No 则不配置。配置画面是一个文本编辑器,里面有各种服务参数,设置完毕按 Esc 结束,如果你不知道这是什么,请先不要设置或直接结束。


是否开启 SHH 功能,这是远程终端连接服务,一般服务器均开启。系统额外设置,选择否。

是否开启匿名 FTP 服务,选择否。NFS 服务器 与 NFS 客户端,选择否。


是否设置时间,选择是。稍后会提示你是否使用 UTC 时间,还是本机 CMOS 时间,根据需要选择。如果选择否,接下来需要选择时区,我们选择亚洲 Asia 的中国标准时间。


是否需要安装 Linux 软件兼容程序,如果选择是,你的操作系统就可以使用 Linux 的软件。根据需要设置。

设置鼠标,根据需要选择。


是否安装一些安装光盘自带的软件包,我们选择否即可。


建立用户,我们选择是,然后选择 User 项,建立一个新用户。


需要填写的内容依次是:登录用户名、用户ID、用户组、密码、完整名称、主目录与默认命令行程序,一般我们这里只要填写用户名和密码即可,选择 OK 完成。然后回到前一画面,你可以选择再建立其他用户或选择 Exit 结束用户建立过程。


提示设置 root 密码,root 是 FreeBSD 的最高权限用户,密码关系整机安全,请务必认真对待。输入新密码,按回车确认,再输入一遍并确认。这里输入的密码不会回显。


安装已经完成,选择 No,回到 Sysinstall 的安装主菜单。这里你可以进行其它设置,或者选择 Exit Install 或直接手工重启计算机,完成安装。这里会提示你是否真的退出,选择 Yes。

FreeBSD 已经安装完成,现在请务必取出所有安装光盘,否则系统重启后会再次进入安装程序。现在我们的计算机开始正常重启,重启后经过一些载入操作,进入 FreeBSD 操作系统。


这是 FreeBSD 的命令行启动完毕的主界面,提示输入登录用户名,我们可以使用刚才建立的新用户或 root 用户登陆,依次输入用户名和密码登陆。


登陆成功后,正式进入 FreeBSD。你可以输入一条命令执行,比如查看进程的 ps 命令,回车即可。测试你的操作系统是否可以正常使用。

到这里,FreeBSD 7.0 的安装过程已经结束,您已经可以开始探索 FreeBSD 伟大魅力了。

这是糯米平方的第一篇“多学两招”内容,介绍了 FreeBSD 7.0 操作系统的详细安装过程,如果您需要更深层的学习和了解 FreeBSD,请登陆 FreeBSD 的中文官方手册

原文链接:http://www.ittang.com/2008/0309/4832.html

安装FreeBSD桌面-Xfce4

作者:zp阿土

最小化安装FreeBSD8.1(amd64)不make buildworld的话 别忘了安装man手册
如果不是第一次安装的化最好把/usr/ports/distfile 备份下,装好系统再拷贝回来。这会让你在安装的时候节省很多下载的时间。

安装系统前先看看硬件信息是个好习惯(别忘了看看FreeBSD的硬件兼容性列表确定下你的硬件是否被支持)。
另外用dmesg |grep attached 可以查看哪些设备没有被驱动,再用pciconf -lv看下具体信息。/var/run/dmesg.boot也是排错的参考之一。

网络校时

#ntpdate time.windows.com (time服务器地址time.nist.gov 、chime.utoronto.ca 、ntp.pipex.net 、time.windows.com)

安装、更新源代码

#csup -L 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/standard-supfile

安装、更新doc文档

#csup -L 2 -h cvsup.freebsdchina.org /usr/share/examples/cvsup/doc-sufile

安装、更新Ports Collection

#portsnap fetch extract

(以后更新执行portsnap fetch update就可以了。参见:http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/updating-upgrading-portsnap.html)

升级、编译、安装内核

(对于桌面用户我觉得用GENERIC内核就很好了,当然如果你想感受下定制内核那就另当别论了。)

参见/usr/src/Makefile文件。

或者http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/makeworld.html

给bsd打补丁(自动打补丁只能用于默认内核)

#freebsd-update #freebsd-install

设置本地化(中文)

登录分类法(管理员级设置)

在/etc/login.conf加入:

chinese:Chinese Users Account:\
:charset=UTF-8:\
:lang=zh_CN.UTF-8:\
:tc=default:

然后执行:

#cap_mkdb /etc/login.conf

然后:

#pw user mod 用户名 -L chinese

查看

#pw user show 用户名
XX:*:1001:1001:chinese:0:0:用户名:/home/用户名目录:/bin/sh
su -用户名
$ locale
LANG=zh_CN.UTF-8
LC_CTYPE=”zh_CN.UTF-8″
LC_COLLATE=”zh_CN.UTF-8″
LC_TIME=”zh_CN.UTF-8″
LC_NUMERIC=”zh_CN.UTF-8″
LC_MONETARY=”zh_CN.UTF-8″
LC_MESSAGES=”zh_CN.UTF-8″
LC_ALL=

设置成功

登录分类(用户级设置)

在用户根目录文件.login_conf加入:

me:\
:lang=zh_CN.UTF-8:\
:setenv=LC_ALL=zh_CN.UTF-8:\
:setenv=LC_CTYPE=zh_CN.UTF-8:\
:setenv=LC_COLLATE=zh_CN.UTF-8:\
:setenv=LC_TIME=zh_CN.UTF-8:\
:setenv=LC_NUMERIC=zh_CN.UTF-8:\
:setenv=LC_MONETARY=zh_CN.UTF-8:\
:setenv=LC_MESSAGES=zh_CN.UTF-8:\
:charset=UTF-8:\
: xmodifiers=”@im=SCIM”:

参考1:http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/using-localization.html

参考2:http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/locale.html

加载声卡驱动(我的声卡是板载alc883)

在/boot/loader.conf 加入 snd_hda_load=“YES”

#echo ‘snd_hda_load=”YES”‘>> /boot/loader.conf

(更详细的说明参见http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/sound-setup.html)

安装配置xorg

#cd /usr/ports/x11/xorg && make BATCH=YES install clean

生成xorg.conf.new配置文件并移动到/etc/X11/下

#Xorg -configure
#mv xorg.conf.new /etc/X11/xorg.conf

在/etc/rc.conf内加入hald_enable=“YES” 和 dbus_enable=“YES”

#echo ‘hald_enable=”YES”‘>> /etc/rc.conf
#echo ‘dbus_enable=”YES”‘>> /etc/rc.conf

详细说明参见HandBook 配置X11 地址:http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/x-config.html

安装文泉驿字库

#cd /usr/ports/x11-fonts/wqy &&make install clean

在/etc/X11/xorg.conf里面的Section “Files”小节加入:

FontPath    “/usr/ports/lib/X11/fonts/wqy”

安装Linux二进制兼容模式(安装nvidia显卡驱动所必须的)

#kldload linux
#cd /usr/ports/emulators/linux_base-f10 && make BATCH=YES install distclean

在/etc/rc.conf中增加 linux_enable=“YES”

#echo ‘linux_enable=”YES”‘>> /etc/rc.conf

参见http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/linuxemu-lbc-install.html

安装nvidia显卡驱动(我的是7600gs)

#cd /usr/ports/x11/nvidia-driver && make BATCH=YES install clean

在/boot/loader.conf中加入nvidia_load=“YES”

#echo ‘nvidia_load=”YES”‘>> /boot/loader.conf

安装nvidia显卡驱动自动配置工具

#cd /usr/ports/x11/nvidia-xconfig/ && make install clean

执行

#rehash
#nvidia-xconfig –add-argb-glx-visuals
#nvidia-xconfig –composite
#nvidia-xconfig –depth=24

上面三行是为了compiz-fusion所设置的,如果不装compiz-fusion执行nvidia-xconfig就可以了。 (会在/etc/X11下生成新的xorg.conf文件并把旧的xorg.conf备份为org.conf.backup)

安装xfce4

#cd /usr/ports/x11-wm/xfce4 && make BATCH=YES install clean

(如果需要GDM就不要加BATCH=YES这句,装的时候吧GDM前面的X打上就行了。) 如果你想允许用户关闭或重启(指在xfce4下)计算机那么在/usr/local/etc/PolicyKit/PolicyKit.conf中加入:

<match action=”org.freedesktop.hal.power-management.shutdown”>
<return result=”yes”/>
</match>
<match action=”org.freedesktop.hal.power-management.reboot”>
<return result=”yes”/>
</match>

注意:上面几行要加在<config>和</config>之间。 然后普通用户下执行

% echo “/usr/local/bin/startxfce4″ >> ~/.xinitrc

以后startx就可以进桌面了。如果需要开机直接进入桌面就吧GDM装上。

安装compiz-fusion(桌面3D效果)

# cd /usr/ports/x11-wm/compiz-fusion && make BATCH=YES install clean

在普通用户下创建个启动脚本start-compiz名并加入:

#! /bin/sh
compiz –replace –sm-disable –ignore-desktop-hints ccp &
emerald –replace &

给这个脚本执行权限

%chmod +x start-compiz

把这个脚本加入Session和启动以后进入Xfce4就自动启动compiz了。

简单设置 点开CompizConfig设置管理器>首选项>在后端选择GConf Configuration Backed (这样你以后选择的效果就可以即时生效了。) 另外在CompizConfig里吧 最小化效果、窗口装饰、震颤窗口、移动窗口、调整窗口大小、应用程序切换条都起用了,这样基本的3d桌面就好了。还有很多效果看自己喜好吧。

说明参见http://www.freebsd.org/doc/en/articles/compiz-fusion/article.html

常用软件

安装axel(多线程下载工具)

#cd /usr/ports/ftp/axel && make install clean

在/etc/make.conf中加入FETCH_CMD=axel -a -n 2

#echo ‘FETCH_CMD=axel -a -n 2

详细配置参见man手册 我只是在安装非常大的软件,像xorg、gnome、openoffice的时候才使用。(如果你用脚本自动安装最好还是用FreeBSD默认的fetch。)

安装scim 拼音输入法

#cd /usr/ports/chinese/scim-pinyin/ && make install clean

在.xinitrc里加入(我用的是sh)

%echo ‘export XMODIFIERS=’@im=SCIM”>> ~/.shrc
%echo ‘scim -d’>> ~/.xinitrc

安装firefox浏览器

#cd /usr/ports/www/firefox/
#make BATCH=YES install clean

在/boot/loader.conf中加入sem_load=“YES”

echo ‘sem_load=”YES”‘>> /boot/loader.conf

安装firefox中文包

#cd /usr/ports/www/firefox-i18n/
#make install clean

让firefox支持flash

=安装nspluginwrapper=

#cd /usr/ports/www/nspluginwrapper
#make install clean

=安装linux-f10-flashplugin10=

#cd /usr/ports/www/linux-f10-flashplugin10
#make install clean

建一个符号链接

#ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so /usr/local/lib/browser_plugins/

然后在用户下执行

%nspluginwrapper -v -a -i

如果希望播放 Flash 动画的话,Linux® 的进程文件系统, linprocfs(5) 必须挂载于 /usr/compat/linux/proc。可以通过以下的命令实现:

# mount -t linprocfs linproc /usr/compat/linux/proc

这也可以在机器启动时自动挂载, 把以下这行加入 /etc/fstab:

linproc    /usr/compat/linux/proc  linprocfs   rw  0   0

参见handbook:http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/desktop-browsers.html 如果平时不用flash还是建议不要装了。现在的这个版本占用资源还是有点高,有时候firefox会卡。

安装Thunderbird(邮件客户端)

#cd /usr/ports/mail/thunderbird
#make BATCH=YES install clean

安装Thunderbire语言包

#cd /usr/ports/mail/thunderbird-i18n
#make install clean

安装Ristretto

Xfce项目。一个轻巧的图像查看器。

#cd /usr/ports/graphics/ristretto
#make install clean

安装Xfburn

Xfce项目。Xfburn是一个使用cdrtools(cdrecord、cdrdao、mkisofs)来烧制CD和DVD的前端烧录程序。

#cd /usr/ports/sysutils/xfburn
#make install clean

确保在/etc/rc.conf中dbus_enable=“YES”和hald_enable=“YES”已经启动。(如果你是按着这篇简单教程安装到这里的那它们已经被启动了。) 内核中这些选项被打开。

device          scbus
device          cd
device          pass

如果你是用的是ATAPI CD/DVD驱动器还必须在内核中打开

device     atapicam

或者在/boot/loader.conf中加入

atapicam_load=”YES”

查看你正在使用的CD/DVD设备

#camcontrol devlist

我的显示结果是

<LITE-ON DVDRW SHW-1635S YS0W>     at scbus0 target 1 lun 0 (cd0,pass0)

然后在/etc/devfs.conf中加入:

perm    cd0     0666
perm    xpt0    0666
perm    pass0   0666

然后重新起动计算机就可以用Xfburn刻录了。

参考1:http://www.freebsd.org/gnome/docs/faq2.html#q15

参考2:http://forums.freebsd.org/showthread.php?t=1195

参考3:http://www.freebsd.org/doc/handbook/creating-cds.html

安装xfce4-media

Xfce项目。Xfmedia 是一个简单易用的媒体播放器,基于 xine 引擎。GTK+ GUI 旨在播放与管理音频文件,但是,由于它是基于 xine 的,所以同样支持视频文件。

#xfce4-media: /usr/ports/multimedia/xfce4-media
#make install clean

安装audacious

(音频播放器。如果你觉得xfce4-media不太适合你也可以装这个。)

#cd /usr/ports/multimedia/audacious
#make install clean

安装audacious-plugins

(音频播放器插件。必须安装)

#cd /usr/ports/multimedia/audacious-plugins
#make install clean

安装mplayer播放器

cd /usr/ports/multimedia/mplayer
make WITH_LANG=zh_CN install clean

(如果你喜欢看搞清电影并且你的显卡支持VDPAU别忘了吧这个点上。)

安装galculator(计算器)

#cd /usr/ports/math/galculator
#make install clean

安装MLDonkey(电驴、BT)

#cd /usr/ports/net-p2p/mldonkey
#make WITHOUT_GUI=yes WITHOUT_X11=”YES” WITHOUT_TK=”YES” install clean
%ln -s ~/.mldonkey/incoming ~

在/etc/rc.conf加入mlnet_enable=“YES” 和 mlnet_user=“用户名非root“

%/usr/local/etc/rc.d/mlnet start (注意是%)
1.%telnet 127.0.0.1 4000
2.>auth admin “”
3.>passwd 键入你想设置的密码
4.>set allowed_ips “127.0.0.1 192.168.0.0/24” (根据你自己的情况设置)
5.>save
6.>exit

(mldonkey需要一个非root用户来运行。我习惯在装系统的时候就建立一个wheel组的用户,所以这里我就不用在建立用户了。)

具体情况可以参考http://forums.freebsd.org/showthread.php?t=227

现在就可以在浏览器里输入:localhost:4080来设置和下载文件了。

默认mldonkey的文件夹是隐藏的,在用户目录下。找下载好的电影有点不方便,把incoming连接到你的用户目录下就好了。当然你也可以自己修改默认下载路径。

mldonkey简单设置:

enable_kademlia的选项为true――打开kad减少对服务器的依赖。
max_hard_upload_rate默认是10    (全局最大上传,根据自己情况设置)
max_hard_download_rate默认是50 (全局最大下载,根据自己情况设置)
mldonkey有两组两组带宽控制模式,通过点击Bandwidth toggle来更改带宽控制模式。

=添加服务器列表:=

先删除原先的服务器列表下载地址。点击Options>Web infos找到server.met行然后点击前面的Remove
然后点击Add Url输入“server.met http://ed2k.im/server.met”(不包括引号,放心都是安全服务器列表。)再点击前面的DL也就是DownLoad。

=添加kad节点信息=

点击Options>Web infos>Add Url输入nodes.gzip http://upd.emule-security.net/nodes.dat

=添加firefox for mldonkey插件=

下载地址:http://www.informatik.uni-oldenburg.de/~dyna/mldonkey/

安装OpenOffice.org

#cd /usr/ports/editors/openoffice.org-3 && make LOCALIZED_LANG=zh-CN install clean

注意:由于许可证的问题需要手工下载一些文件到/usr/ports/distfiles/下。

GIMP

专业的图像处理软件

#cd /usr/ports/graphics/gimp-help && make config (把除了中文以外的X全部去掉,保存。)
#cd /usr/ports/graphics/gimp && make BATCH=YES install clean

GIMP的手册

#cd /usr/ports/graphics/gimp-manual-pdf && make install clean

以下是简单的自动安装脚本

#!/bin/sh
#make BATCH=YES 这个命令的意思是 使用默认选项
#把用ports安装过的软件都打包到下面的目录
#mkdir -p /usr/ports/packages/All/
#make DEPENDS_TARGET=package package 这个命令的意思是 打包一个ports并将依赖也一起打包
#安装并打包
#make BATCH=YES DEPENDS_TARGET=package package install clean
#安装xorg
cd /usr/ports/x11/xorg &&make BATCH=YES install clean
echo ‘hald_enable=”YES”‘>> /etc/rc.conf
echo ‘dbus_enable=”YES”‘>> /etc/rc.conf
#安装wqy
cd /usr/ports/x11-fonts/wqy/ && make BATCH=YES install clean
#安装Linux二进制兼容模式
kldload linux
cd /usr/ports/emulators/linux_base-f10/ && make BATCH=YES install distclean
echo ‘linux_enable=”YES”‘>> /etc/rc.conf
#安装nvidia显卡驱动
cd /usr/ports/x11/nvidia-driver/ && make BATCH=YES install clean
echo ‘nvidia_load=”YES”‘>> /boot/loader.conf
#安装nvidia显卡自动配置工具
cd /usr/ports/x11/nvidia-xconfig/ && make install clean
#安装Xfce4
cd /usr/ports/x11-wm/xfce4/ && make BATCH=YES install clean
#安装scim
#cd /usr/ports/chinese/scim-pinyin/ && make BATCH=YES install clean
#安装firefox
cd /usr/ports/www/firefox/ && make BATCH=YES install clean
echo ‘sem_load=”YES”‘>> /boot/loader.conf
#安装firefox中文包
cd /usr/ports/www/firefox-i18n/ && make BATCH=YES install clean

原文链接:http://wiki.freebsdchina.org/doc/x/freebsd_desktop_xfce

FreeBSD最小化安装+diablo-jdk+Apache与Tomcat整合

这篇文章算是补交很久之前的一篇作业,也顺便平息坛子里面很多同学的疑问!
我先说明一下配置环境的大概情况:

FreeBSD 6.2-RELEASE
diablo-jdk-1.5.0.07.01
apache-2.2.3
tomcat-5.5.23

具体的版本信息显示如下:

[root@FreeBSD ~] $ pkg_info
apache-2.2.3        Version 2.2 of Apache web server with prefork MPM.
bash-3.1.17         The GNU Project’s Bourne Again SHell
cvsup-without-gui-16.1h_2 General network file distribution system optimized for CVS
diablo-jdk-1.5.0.07.01 Java Development Kit 1.5.0_07.01
expat-2.0.0_1       XML 1.0 parser written in C
fontconfig-2.3.2_6,1 An XML-based font configuration API for X Windows
freetype2-2.2.1_1   A free and portable TrueType font rendering engine
gettext-0.14.5_2    GNU gettext package
gmake-3.81_1        GNU version of ‘make’ utility
javavmwrapper-2.3   Wrapper script for various Java Virtual Machines
libdrm-2.0.2        Userspace interface to kernel Direct Rendering Module servi
libiconv-1.9.2_2    A character set conversion library
mod_jk-ap2-1.2.21,1 Apache JK module for connecting to Tomcat using AJP1X
perl-5.8.8          Practical Extraction and Report Language
pkg-config-0.21     A utility to retrieve information about installed libraries
tomcat-5.5.23       Open-source Java web server by Apache, 5.5.x branch
xorg-libraries-6.9.0 X11 libraries and headers from X.Org

好,来看看具体的做法吧!
第一步:安装FreeBSD,采取最小化安装的步骤。
这里没有什么特别的地方,只是提醒一下,安装完成后注意要更新到最新的ports tree !
由于是最小化安装,所以需要通过 sysinstall 去把下面几个package安装上(via CD-ROM) :

cvsup-without-gui
perl
gmake
bash

完成安装后,更新ports tree,我使用了cvsup.FreeBSDChina.org 作为镜像!
第二步:安装 JDK -FreeBSD 发布的 JDK 1.5 软件包
罗嗦一句,从源代码编译JDK的时代已经过去了,我是懒人,所以喜欢用pkg_add !
如果你想从ports来编译JDK,可以看看这里:FreeBSD中如何编译JDK,以FreeBSD 5.x/JDK 1.4.x为例!URL:http://www.freebsdchina.org/forum/viewtopic.php?t=30353

2.1 下载diablo-jdk的软件包:diablo-jdk-freebsd6.i386.1.5.0.07.01.tbz
2.2 查找diablo-jdk的依赖项:

[root@FreeBSD /usr/ports] $ make search name=diablo-jdk-1.5.0.07.01
Port:   diablo-jdk-1.5.0.07.01
Path:   /usr/ports/java/diablo-jdk15
Info:   Java Development Kit 1.5.0_07.01
Maint:  glewis@FreeBSD.org
B-deps: expat-2.0.0_1 fontconfig-2.3.2_6,1 freetype2-2.2.1_1 libdrm-2.0.2 pkg-config-0.21 xorg-libraries-6.9.0
R-deps: expat-2.0.0_1 fontconfig-2.3.2_6,1 freetype2-2.2.1_1 javavmwrapper-2.3 libdrm-2.0.2 pkg-config-0.21 xorg-libraries-6.9.0
WWW:    http://www.FreeBSDFoundation.org/downloads/java.shtml

可以看到有如下几个packages需要安装:

expat-2.0.0_1
fontconfig-2.3.2_6,1
freetype2-2.2.1_1
libdrm-2.0.2
pkg-config-0.21
xorg-libraries-6.9.0
javavmwrapper-2.3

2.3 从网络安装diablo-jdk所需要的软件包 (并非ports的编译安装方式)

[root@FreeBSD ~] $ setenv PACKAGESITE ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/
[root@FreeBSD ~] $ pkg_add -r expat
[root@FreeBSD ~] $ pkg_add -r freetype
[root@FreeBSD ~] $ pkg_add -r fontconfig
[root@FreeBSD ~] $ pkg_add -r … 省略 …
[root@FreeBSD ~] $ pkg_add -r xorg-libraries
[root@FreeBSD ~] $ pkg_add -r javavmwrapper

注意:这里用pkg_add的时候,不带软件包的版本号!
* 有没有Debian/Ubuntu中的apt-get的感觉呀? ^^!
2.4 安装diablo-jdk,直接找到我们下载的jdk软件包文件,用pkg_add添加:

[root@FreeBSD ~] $ pkg_add diablo-jdk-freebsd6.i386.1.5.0.07.01.tbz
[root@FreeBSD ~] $ /usr/local/diablo-jdk1.5.0/bin/java -version
java version “1.5.0”
Java(TM) 2 Runtime Environment, Standard Edition (build diablo-1.5.0-b01)
Java HotSpot(TM) Client VM (build diablo-1.5.0_07-b01, mixed mode)

提醒:

安装的时候,会出来SUN的许可协议,同意即可.
安装时会说javawmwrapper版本有点高,可以不用理会.

第三步:安装Tomcat
3.1 抓tomcat的档案下来:

[root@FreeBSD ~] $ cd /usr/ports/www/tomcat55
[root@FreeBSD tomcat55] $ make
===>  Vulnerability check disabled, database not found
=> apache-tomcat-5.5.23.tar.gz doesn’t seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://www.apache.org/dist/tomcat/tomcat-5/v5.5.23/bin/.
apache-tomcat-5.5.23.tar.gz                   100% of 5837 kB   16 kBps 00m00s
===>  Extracting for tomcat-5.5.23
=> MD5 Checksum OK for apache-tomcat-5.5.23.tar.gz.
=> SHA256 Checksum OK for apache-tomcat-5.5.23.tar.gz.
===>  Patching for tomcat-5.5.23
Installation settings:
Destination directory:    /usr/local/tomcat5.5
Location of JDK:          /usr/local/diablo-jdk1.5.0
Location of Java port:    java/diablo-jdk15
Running as (user/group):  www/www
HTTP port:                8180
Shutdown listener port:   8005
AJP 1.3 connector port:   8009
Logfile stdout:           /usr/local/tomcat5.5/logs/stdout.log
Logfile stderr:           /usr/local/tomcat5.5/logs/stderr.log
===>  Applying FreeBSD patches for tomcat-5.5.23
>> Removing unneeded files… [ DONE ]
>> Customizing server.xml… [ DONE ]
===>  Configuring for tomcat-5.5.23

3.2 安装tomcat

[root@FreeBSD tomcat55] $ make install
===>  Installing for tomcat-5.5.23
===>   tomcat-5.5.23 depends on file: /usr/local/diablo-jdk1.5.0/bin/java – found
===>   Generating temporary packing list
===>  Checking if www/tomcat55 already installed
>> Creating destination directory… [ DONE ]
>> Copying files to destination directory…
Installing local configuration file: /usr/local/tomcat5.5/conf/Catalina/localhost/host-manager.xml
Installing local configuration file: /usr/local/tomcat5.5/conf/Catalina/localhost/manager.xml
Installing local configuration file: /usr/local/tomcat5.5/conf/catalina.policy
Installing local configuration file: /usr/local/tomcat5.5/conf/catalina.properties
Installing local configuration file: /usr/local/tomcat5.5/conf/context.xml
Installing local configuration file: /usr/local/tomcat5.5/conf/logging.properties
Installing local configuration file: /usr/local/tomcat5.5/conf/server-minimal.xml
Installing local configuration file: /usr/local/tomcat5.5/conf/server.xml
Installing local configuration file: /usr/local/tomcat5.5/conf/tomcat-users.xml
Installing local configuration file: /usr/local/tomcat5.5/conf/web.xml
[ DONE ]
>> Creating log files… [ DONE ]
>> Creating symlink to tools.jar… [ DONE ]

第四步:安装Apache Web Server

[root@FreeBSD ~] $ pkg_add -r apache22
Fetching ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz…

第五步:Apache Web Server 与 Tomcat 的整合
5.1 必备的组件mod_jk的安装

[root@FreeBSD /usr/ports/www/mod_jk] $ make
===>  Vulnerability check disabled, database not found
=> tomcat-connectors-1.2.21-src.tar.gz doesn’t seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.21/.
=> Attempting to fetch from http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.21/.
tomcat-connectors-1.2.21-src.tar.gz           100% of 1303 kB   27 kBps 00m00s
===>  Extracting for mod_jk-ap2-1.2.21,1
=> MD5 Checksum OK for tomcat-connectors-1.2.21-src.tar.gz.
=> SHA256 Checksum OK for tomcat-connectors-1.2.21-src.tar.gz.
===>  Patching for mod_jk-ap2-1.2.21,1
===>  Applying FreeBSD patches for mod_jk-ap2-1.2.21,1
===>   mod_jk-ap2-1.2.21,1 depends on file: /usr/local/sbin/apxs – found
===>   mod_jk-ap2-1.2.21,1 depends on executable in : gmake – found
===>   mod_jk-ap2-1.2.21,1 depends on file: /usr/local/sbin/apxs – found
===>  Configuring for mod_jk-ap2-1.2.21,1
…省略 …
…省略 …
…省略 …
Making all in common
gmake[1]: Entering directory `/usr/ports/www/mod_jk/work/tomcat-connectors-1.2.21-src/native/common’
gmake[1]: Nothing to be done for `all’.
gmake[1]: Leaving directory `/usr/ports/www/mod_jk/work/tomcat-connectors-1.2.21-src/native/common’
Making all in apache-2.0
gmake[1]: Entering directory `/usr/ports/www/mod_jk/work/tomcat-connectors-1.2.21-src/native/apache-2.0′
gmake[1]: Nothing to be done for `all’.
gmake[1]: Leaving directory `/usr/ports/www/mod_jk/work/tomcat-connectors-1.2.21-src/native/apache-2.0′
[root@FreeBSD /usr/ports/www/mod_jk] $ make install

5.2 编辑 /usr/local/etc/apache22/httpd.conf 文件,添加如下内容:

LoadModule jk_module libexec/apache/mod_jk.so

5.3 建立文件 /usr/local/etc/apache22/Includes/tomcat-apache.conf ,内容如下:

[root@FreeBSD Includes] $ cat tomcat-apache.conf
JkWorkersFile /usr/local/tomcat5.5/conf/workers.properties
JkLogFile /var/log/mod_jk.log
JkLogLevel info
JkMount /*.jsp ajp13
JkMount /jsp-examples/* ajp13
JkMount /servlets-examples/* ajp13
JkMount /servlet/* ajp13

* JkMount 是把tomcat中的URI与Apache的URI做一个映射,也就是说:
Apache 中的:http://localhost/jsp-examples/some-jsp-file.js
<—- 对应 —>
Tomcat 中的:http://localhost:<port>/jsp-examples/some-jsp-file.jsp
5.4 创建 mod_jk 的日志文件,并设定其归属的用户和组:

[root@FreeBSD ~] $ touch /var/log/mod_jk.log
[root@FreeBSD ~] $ chown www:www /var/log/mod_jk.log

5.5 建立 /usr/local/tomcat5.5/conf/workers.properties 文件:

[root@FreeBSD ~] $ cat /usr/local/tomcat5.5/conf/workers.properties
workers.tomcat_home=/usr/local/tomcat5.5
workers.java_home=/usr/local/diablo-jdk1.5.0
ps=/
worker.list=ajp12, ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

5.5 更改 workers.properties 文件归属的用户和组:

[root@FreeBSD ~] $ chown www:www /usr/local/tomcat5.5/conf/workers.properties

5.6 确定 tomcat 配置文件 server.xml 中有开启AJP功能:

<!– Define an AJP 1.3 Connector —>
<Connector className=”org.apache.ajp.tomcat4.Ajp13Connector”
port=”8009″ minProcessors=”5″ maxProcessors=”75″
acceptCount=”10″ debug=”0″/>

* 这段不能被被注视掉!
第六步:进行测试
6.1 启动服务

[root@FreeBSD ~] $ /usr/local/etc/rc.d/tomcat55 onestart
Starting tomcat55.
[root@FreeBSD ~] $ /usr/local/etc/rc.d/apache22 onestart
Performing sanity check on apache22 configuration:
Syntax OK
Starting apache22.

6.2 测试
http://localhost/ —> 出现Apache的信息:It works!
http://localhost/index.jsp —> 出现Tomcat欢迎页面
这样就说明Apache将JSP的处理交给了Tomcat进行了!
原文请参考:http://blog.csdn.net/xport/archive/2007/05/02/1594517.aspx

原文链接:http://www.freebsdchina.org/forum/topic_30435.html