博文

目前显示的是 十一月, 2005的博文

[Debian] Raid1 + LVM + xfs

Debian/testing kernel: 2.6.12-1-686 mdadm: 1.12.0-1 lvm2: 2.01.04-5 系统中两块硬盘,分区 hdb1 和 hdc1 做的raid1,其上做的lvm,由于年深日久,当年又未曾留下文字记录,所以忘了怎么做的了 :-) 凑巧的是,这个lvm的磁盘空间眼看就要用完,而hdb 和 hdc 恰好又还有剩余的空间。干脆将剩余空间再做成raid1,然后加到先前的lvm里面,顺便在此留下文字记录。 分区,将两块磁盘上为利用的空间分区,因为是raid1的关系,两个分区大小要一致。分区之后,reboot。 创建raid1 mdadm --create /dev/md1 --level=1 --raid-disks=2 /dev/hdb8 /dev/hdc8 如果提示没有 /dev/md1 这个文件(因为使用了udev),需要自己手动创建一个 mkmod /dev/md1 b 9 1 将新创建的raid1加入到原先的lvm中去(以下三个命令,都有-t:供测试的参数,建议先加一个-t测试一下)。 将新建的 /dev/md1 用pvcreate命令格式化一下 pvcreate /dev/md1 用vgextend命令将 /dev/md1 加入到原先的 vg0 中 vgextend -Ay vg0 /dev/md1 扩展lv,命令是 lvextend lvextend -Ay -L +36G /dev/vg0/lv0 /dev/md1 扩展文件系统,我使用的是xfs. 首先是将文件系统挂载(mount) 扩展文件系统,使用xfs_growfs,man里头说就是为了配合 lvm 使用的 :-) xfs_growfs mount_point 稳妥起见,还是运行一下磁盘检查程序 umount mount_point xfs_check /dev/vg0/lv0 大功告成!! 参考文章: Convert Root System to Bootable Software RAID1 (Debian):http://alioth.debian.org/projects/rootraiddoc 以上所用命令的手册页(man)

[Debian] 解决DMA无法启用一例

系统(Debian/sid)原来运行的内核是2.4.27,现在升级到2.6.14,其中遇到的问题: 在2.4.27的系统下无法完成2.6.14-2-686的安装,主要是无法生成initrd文件,在Debian-user的邮件列表上有人问过这个问题,需要安装 initramfs-tools, 这样可以解决 2.6.14 的安装问题。 系统启动之后,发现DMA无法启用: # hdparm -d 1 /dev/hda /dev/hda: setting using_dma to 1 (on) HDIO_SET_DMA failed: Operation not permitted using_dma = 0 (off) 在google搜索了一下,找到了这个地址:http://seclists.org/lists/linux-kernel/2002/Oct/0162.html: looks like you forgot to enable via support 正好我的也是via的主板: $ lspci|grep -i ide 0000:00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06) 查看了下initrd里面的文件,确实没有via的IDE驱动模块,于是修改了一下yaird的配置文件(/etc/yaird/Default.cfg),加入了via模块的支持: OPTIONAL MODULE via82cxxx 然后重新配置下2.6的内核 dpkg-reconfigure linux-image-2.6.14-2-686 完成之后,重新启动,OK,问题解决了。

[python] 我的第一个python脚本

很丑陋,但是是我写的第一个Python程序。     想学习下python,于是将python.cn上的邮件列表存档下载下来,想用zcat将它们合并成一个文件,以便用mutt来观看存档,结果发现文件名是类似于2004-September.txt.gz这种结构,如果强行将它们合并的话,时间顺序就会不正确,应为这种文件名不会按照正确的时间来排序。     于是想到将月份由名称改成数字,这样可以解决文件名排序问题,昨天才看python,但是正好动一下手,解决这个"实际"问题 :-)     再次申明:很丑陋,但是完成了我的"实际需求" #!/usr/bin/python # coding: utf-8 # filename name_convert.py import sys, os, string, re def monthConvert (name): """ monthConvert:Convert full month name to number. Return a month as a decimal number if Param is not a full month name, then return None """ month = { " January " : " 01 " , \ " February " : " 02 " , \ " March " : " 03 " , \ " April " : " 04 " , \ " May " : " 05 " , \ " June " : " 06 " , \ " July " : " 07 " , \

iptables的几个概念

前两天玩emule,因为在内网,需要端口转发,顺便再了解了一下iptables的一些规则。 以前对filter中的INPUT链和nat中的PREROUTING有些搞不清,例如,如果INPUT的规则是DROP,那么对PREROUTING会有怎样的影响或是冲突。 通过实验,应当是这样的,nat的PREROUTING链应当在filter之前,INPUT对PREROUTING的影响只是在于,如果PREROUTING修改过得目的地址如果仍然是本机的话,那么INPUT链将起作用,但如果PREROUTING修改的目的地址不是本机的话,那么就该是FORWARD链的规则控制了。 做端口转发,应当注意链路的完整性,进得来的要出得去。以amule为例,外部对4662端口的访问如下: 进入:外部->proxy:4662->PREROUTING修改目的地址->FORWARD转发->amule:4662 回应:amule:4662->proxy->POSTROUTING修改源地址->FORWARD转发->外部 这儿应当注意的是,不管POSTROUTING和PREROUTING怎么设置,如果没有FORWARD链,内部和外部是不可能连通的。 iptables的LOG命令是一个相当有用的东西,尤其是在调试iptables的规则的时候,可以用LOG来查看包是否依据规则流动。

apache 对.svn目录的保护

为了图方便,我是在apache的目录下面直接修改文件的,用的是subversion做的版本控制,为了保护.svn目录,需要在apache的配置文件里面加上一节 禁止对.svn目录的访问 <Directory ~ "/\.svn">         Order allow,deny         Deny from all  </Directory> 额外的,想禁止对所有以.开头的文件的访问: <Files ~ "^\.">         Order allow,deny         Deny from all   </Files>