Wednesday, October 21. 2009

RHEL、APACHE、403、SELINUX

我让selinux害惨了。折腾了半天,apache总是说403,后来搜了一下有人说可能是selinux导致,一查,果然是。我Linux水平有点菜。关于selinux的文章也转一篇,详入内。
更多内容…

Sunday, September 27. 2009

通过 PXE 安装 FreeBSD (zt)

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 /mnt3、把 pxeboot(8) 放到 /tftpboot:

cp /mnt/boot/pxeboot /tftpboot4、在 S 上启动 tftpd, dhcpd 和 nfsd:

/etc/rc.d/inetd forcestart
/etc/rc.d/nfsd forcestart
/usr/local/etc/rc.d/isc-dhcpd forcestart5、由于我们已经使用直连网线将 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 了。

Saturday, September 12. 2009

高版本客户端exp导出Oracle数据报错ORA-00904及EXP-00008

Cause
This is an expected behaviour.

The version of the Export utility must be equal to the earliest version of the source or target database. Here, the source database is based on release 10.2.0.3.0 and hence the export client has to be a version 10.2.0.3.0.

An export client of a later release cannot be used for the following reasons:

The export utility is continuously accessing dictionary objects such as SYS.EXU9LOB.
Starting with release 10.2.0.4.0 we introduced additional columns such as 'IFREEPOOL'. This column is not available in 10.2.0.3.0 and hence the client cannot handle this and ORA-00904/EXP-00008 appears.

Client 10.2.0.4.0 is not supported to export from 10.2.0.3.0 database.

FIX

The version of the Export utility must be equal to the earliest version of the source or target database.

我译成中文了。想看中文点进去。
更多内容…

Monday, July 13. 2009

FreeBSD7下安装php5-oci8

FreeBSD

过程还算顺利,参考了一篇文章,详见内文。

主要步骤:
1、安装jdk以及javavmwrapper等一堆依赖的包,没什么特别的,就是啰嗦一些
2、安装instantclient-basic以及instantclient-sdk,见内文
3、编辑安装php5-oci8,用ports安装,没什么特别的

更多内容…

Sunday, May 10. 2009

使用SecureCRT连接RHEL中文乱码的解决

我在winxp下用SecureCRT连接RHEL。RHEL默认为utf8编码,所以在客户端中,Options->Session Options->Terminal->Appearance->Fonts->Character encoding改为UTF-8即可解决问题。
(Page 1 of 25, totalling 124 entries) » next page

Categories

All categories

Calendar

« 2010 年 March
Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Archives

Quicksearch

友情链接

Syndicate This Blog

XML RSS 1.0 feed
XML RSS 2.0 feed

Blog Administration

Open login screen

访问统计

Locations of visitors to this page
The articles in this sites are copyrighted, except those marked as reshipped
MII Record: 05029638