寻觅生命中的那一片浅草......

每月存档 九月, 2010

彩影ARP防火墙(Antiarp)导致虚拟机无法上网

最近从host登录到vm非常慢,经常无法连接,登录进去也无法ping通网关,折腾大半天,发现是彩影ARP防火墙惹的祸,把它关了就一了百了
但又不能关,尝试了下修改配置,竟然可以了
右键托盘上彩影ARP防火墙的图标,选择基本配置,将“拦截本机对外ARP攻击”和“拦截本机对外伪造IP攻击(伪造源IP)”前面的勾去掉,点击确定,虚拟机上网就一溜一溜的了。

Win 7下的蓝牙鼠标无响应

最近买了个蓝牙鼠标,动不动就无响应,非常不爽,
右键我的电脑–管理–Bluetooth无线电收发器,右键你的蓝牙设备,选择属性,再点电源管理,把允许计算机关闭此设备以节约电源前的勾去掉

Win 7,到处都是省电的配置,低碳?

也有人说是驱动问题:
去下个这个驱动应该可以解决 IVT_BlueSoleil_5.0_for_32bit_OS
我用的是32位的。如果你是64位就不知道下64位能解不了…….

参考文章
http://bbs.pcbeta.com/archiver/tid-580570.html

定制的CentOS,提示无法挂载根分区

定制的CentOS5.4系统无法启动,应该是去到挂载磁盘的时候,提示
VFS:Cannot open root device “sda2” or unknown block(0,0);
Please append a correct “root=” boot option
kernel panic -not syncing:VFS:Unable to mount root fs on unknown block(0,0)

网上查资料说是因为编译内核的时候,没有把scsi的驱动编译进内核,但用的内核是CentOS5.4自带的,如果用完整光盘安装,则不会有错
初步怀疑安装过程出错,用光盘启动进入修复模式
光盘启动后输入
linux rescue
然后按2次确定吧,系统挂载到/mnt/sysimage
chroot /mnt/sysimage,这时就进入到硬盘上的系统了
首先看下grub.conf
cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/1

再找台可以正常启动的机器看下
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-164.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/1
initrd /initrd-2.6.18-164.el5.img

现在看到前面有问题的系统,配置文件里少了一行关于initrd的配置
本来想手动加上去,但
ls /boot/
发现根本没有initrd-2.6.18-164.el5.img
记得上次看刘天斯的<<编译内核及制作RPM包>>
文件见
http://blog.liuts.com/post/180/

里面说到initrd-2.6.18-164.el5.img不是包含在rpm包里的,而是要在安装过程生成的

想到要看下/root目录下的install.log,看安装过程出了什么问题
vi /root/install.log

关键错误
/sbin/mkinitrd:line 1367:mktemp:command not found
Error creating temporaries. Try again
mkinitrd failed

去到正常的系统里
which mktemp
输出:/bin/mktemp
rpm -qf /bin/mktemp
输出:
mktemp-1.5-23.2.2

把mktemp-1.5-23.2.2复制到目录,然后重新生成ISO文件,再安装系统,启动就正常了

需要注意的是,再看下/root/install.log,看报什么错,如果是关键错误,要看如何修复

############################延伸阅读######################
内核引导文件initrd.img简介

http://netbay.bokee.com/3353657.html
作者:coolq 更新日期:2005-08-22
来源:linuxforum.net

什么是initrd?
initrd = init ramdisk,是一个启动时存在于内存的文件系统。 initrd的最初的目的是为了把kernel的启动分成两个阶段:在kernel中保留最少最基本的启动代码,然后把对各种各样硬件设备的支持以模块的 方式放在 initrd中,这样就在启动过程中可以从initrd所mount的根文件系统中装载需要的模块。这样的一个好处就是在保持kernel不变的情况下, 通过修改initrd中的内容就可以灵活的支持不同的硬件。在启动完成的最后阶段,根文件系统可以重新mount到其他设备上。

Linux启动一定要用initrd么?
不必,如果把需要的功能全都编译到内核中(非模块方式),只需要一个内核文件即可,initrd能够减小启动内核的体积并增加灵活性。如果你的内核以模块 方式支持某种文件系统(例如ext3, UFS),而启动阶段的驱动模块(如jbd)放在这些文件系统上,内核是无法读取文件系统的,从而只能通过initrd的虚拟文件系统来装载这些模块。这 里有些人会问: 既然内核此时不能读取文件系统,那内核的文件是怎么装入内存中的呢?答案很简单,Grub是file-system sensitive的,能够识别常见的文件系统。

initrd文件是怎么生成的?
使用mkinitrd命令,这个命令其实是一个Bash脚本
#file `which mkinitrd`
/sbin/mkinitrd: Bourne-Again shell script text executable
该脚本先建立一个8M的空文件,并在此上建立一个文件系统,并拷贝相应的的文件。

查看initrd里面的文件
mkdir /root/initrd
cd /root/initrd
cp /boot/initrd-2.6.18-164.el5.img .
mv initrd-2.6.18-164.el5.img initrd-2.6.18-164.el5.img.gz
gunzip initrd-2.6.18-164.el5.img.gz
file initrd-2.6.18-164.el5.img
输出:initrd-2.6.18-164.el5.img: ASCII cpio archive (SVR4 with no CRC)
cpio -idmv < initrd-2.6.18-164.el5.img
ls
可以看到以下目录和文件
bin dev etc init lib proc sbin sys sysroot

关于Shell的补零,用printf来格式化数字列。

解答论坛一个朋友关于获取01、02…10,而非1、2….10。
因为需要用flashget下载这样一些列的文件。自己了解这个应用,但是以前也没有处理过。还是有需要的。经过g后,测试得到。

[root@kook tmp]# cat for.sh
for ((a=1; a<=10 ; a++))
do
printf “%02d\n” $a
done
[root@kook tmp]# ./for.sh
01
02
03
04
05
06
07
08
09
10

这么写,也可以。

[root@kook tmp]# cat for.sh
for ((a=1; a<=10 ; a++))
do
printf “%.2d\n” $a
done

继续测试。

[root@kook tmp]# printf “%04d\n” -3
-003
[root@kook tmp]# printf “%.4d\n” -3
-0003

转载自:http://cnc.52zhe.cn/read.php/165.htm

Linux下删除特殊名字的文件

http://www.52zhe.cn/r以前曾写过删除以”-“开头的文件,链接在这里http://www.52zhe.cn/read.php/153.htm,最近又碰到乱码的文件,这次用i节点来删除,无论什么文件都可以用这种方式删除,当然也包括文件夹。

先用ls -i *获取那个文件的i节点,然后用find命令加管道删除即可。假设那个文件i节点为25000,进入那个文件所在目录下面,如下操作:

方法1:
find ./ -inum 25000 | xargs rm -rf
方法2:
find ./ -inum 25000 -exec rm {} -rf \;

转载自:http://cnc.52zhe.cn/read.php/223.htm

2010年九月
« 8月   10月 »
 12345
6789101112
13141516171819
20212223242526
27282930