Posted in NetBSD, Unix,Linux,BSD, 生活 on August 19th, 2008 No Comments »
最近整理了一下在NetBSD下建立Raid1的过程,当时建立bsdchina.org服务器的时候由于时间仓促没有将整个的制作过程记录下来,前两天抽时间在虚机中重新做了这个过程,跟大家分享。
起因:现在一些SATA的主板上自带的Raid控制器并不能被NetBSD识别,因此如何将双硬盘制作为Raid1从而提高数据安全性成为一个比较头疼的问题,最终在bsdchina.org服务器上,采用了软件模拟Raid控制器的方式来实现Raid1。使用的软件是NetBSD标准安装中自带的RaidFrame软件。
过程:
1 在VMware中建立虚拟机,两块硬盘大小10G。
2 安装NetBSD4.0系统至disk0。
3 启动系统后,dmesg|grep -i raid 检查内核是否支持RaidFrame,如果输出类似下面的格式则表示内核有RaidFrame支持。
# dmesg|grep -i raid
Kernelized RAIDframe activated
4 如果没有RaidFrame支持,请先编译内核使其支持RaidFrame。
5 执行df,查看硬盘使用情况。
disklabel -r wd0
# fdisk /dev/rwd0d
通过上面的一些命令,可以帮助我了解目前虚机中第一块硬盘的情况,接下来要在第二块硬盘上做一些准备工作,核心的操作就是将第二块硬盘wd1中的全部扇区用0填充,命令如下:
# dd if=/dev/zero of=/dev/rwd1d bs=8k count=1
执行完毕后,通过如下的命令来确认第二块硬盘上的mbr和全部的数据已经被清空。
# disklabel -r wd1
观察上面的信息,offset都为0证明全部分区没有数据占用。由此可以确定硬盘上既没有数据也没有mbr引导记录。
接下来,我将第一块硬盘上的mbr中的引导记录传送至第二块硬盘。在此之前,先将第二块硬盘wd1设置为可启动。
# fdisk -0ua /dev/rwd1d
按照如下的内容进行回答。
fdisk: primary partition table invalid, no magic in sector 0
Disk: /dev/rwd1d
NetBSD disklabel disk geometry:
cylinders: 19386, heads: 16, sectors/track: 63 (1008 sectors/cylinder)
total sectors: 19541088BIOS disk geometry:
cylinders: 1023, heads: [...]
Posted in NetBSD, 学习 on January 7th, 2008 No Comments »
About two weeks ago, the NetBSD Official annouced that NetBSD4.0 had released, so I decided to update the kernel of the server of NetBSD&OpenBSD Chinese User Group from 3.1 to 4.0. I know this is not the adjacent version updating. So I foresee that there may be a version confict problem after updating. I’ve descripted [...]
Posted in NetBSD, Unix,Linux,BSD, 学习 on December 30th, 2007 No Comments »
NetBSD下一般使用vi或者vim进行程序开发,我之前喜欢使用vi,但是由于程序代码逐渐庞大复杂,有些怀念在IDE环境中程序开发的便利性。于是对NetBSD下的程序开发环境进行了简单的设置。
系统环境:
NetBSD 4.0 Release
软件需求:
VIM(VI Improvement),ctags,exctags。
步骤:
1 首先通过pkg_add或者pkgsrc方式安装VIM。我的环境中安装的是VIM7.1。
2 接下来通过pkg_add或者pkgsrc方式安装exctags。
3 将/usr/pkg/share/vim/vim71/vimrc_example.vim复制到~/下,并且改名为.vimrc。
4 通过export TERM=xterm方式修改NetBSD下的SH的终端方式,我的NetBSD默认的终端方式是vt100。如果不想每次都要执行export命令,那么可以在/etc/profile下添加这句命令。
5 接下来进入/usr/pkg/share/vim/vim71/目录下,执行wget http://www.vim.org/scripts/download_script.php?src_id=7701去下载最新的taglist包。然后unzip下载下来的文件。
6 此时vim已经可以彩色显示c,c++的关键字,函数名等单词了。
7 NetBSD下的ctags还不能满足vim中的Tlist命令的要求,因此我们还需要安装exctags,通过pkg_add或者Pkgsrc方式都可以。
8 在工程的根目录里(我由于要查看src源代码,因此在/usr/src下执行exctags -R *),他会生成一个tags目录。
9 接下来在vim的命令状态下,执行:Tlist,便可以看到类似IDE的开发环境了。 在某个函数调用上按ctrl+]便可以看到函数的实现,然后ctrl+T可以切换回来。ctrl+W可以在各个窗口切换。
附:如果希望查看某个函数在什么地方被调用(常用作大型项目代码的阅读),可以为vim安装cscope支持。在NetBSD4.0下,pkg_add安装的VIM7.1是不带cscope支持的,需要通过Pkgsrc或者源代码的方式进行安装,在configure的时候要加上–enable-cscope的选项,然后进入vim输入命令:version,观察是否启用了cscope支持(启用的话在cscope旁边会有一个+)。然后再通过pkg_add或者pkgsrc方式安装cscope,最后再工程目录下执行 cscope -Rbkq,这样可以生成标志库文件,第一次比较慢,以后便是增量添加,不会这么慢了。生成标志库以后,进入vim通过命令:cs add cscope.out便可以将标志库attache到vim环境中,然后通过cs find s便可以找到所有的调用点。
-R: 在生成索引文件时,搜索子目录树中的代码
-b: 只生成索引文件,不进入cscope的界面
-k: 在生成索引文件时,不搜索/usr/include目录
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度