十二月, 2007


10
十二 07

特殊的目录\文件名"-"

建立:mkdir -

删除:rmdir -   / rm -rf -

进入目录:-

cd ./-


10
十二 07

特殊的目录\文件名”-”

建立:mkdir -

删除:rmdir -   / rm -rf -

进入目录:-

cd ./-


6
十二 07

MySql数据库的字段类型

MySQL数据库的表是一个二维表,由一个或多个数据列构成。
每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。
MySQL中的列类型有三种:数值类、字符串类和日期/时间类。
从大类来看列类型和数值类型一样,都是只有三种。但每种列类型都还可细分。
下面对各种列类型进行详细介绍。

数值类的数据列类型
数值型的列类型包括整型和浮点型两大类。

TINYINT:1字节 非常小的正整数,带符号:-128~127,不带符号:0~255
SMALLINT:2字节 小整数,带符号:-32768~32767,不带符号:0~65535
MEDIUMINT:3字节 中等大小的整数,带符号:-8388608~8388607,不带符号:0~16777215
INT:4字节 标准整数,带符号:-2147483648~2147483647,不带符号:0~4294967295
BIGINT:8字节 大整数,带符号:-9223372036854775808~9233372036854775807,不带符号:0~18446744073709551615
FLOAT:4字节 单精度浮点数,最小非零值:+-1.175494351E-38,最大非零值:+-3.402823466E+38
DOUBLE:8字节 双精度浮点数,最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308
DECIMAL:M+2字节 以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。

整型数据列类型

MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。它们之间的区别是取值范围不同,存储空间也各不相同。
在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。

声明整型数据列时,我们可以为它指定个显示宽度M(1~255),如INT(5),指定显示宽度为5个字符,如果没有给它指定显示宽度,MySQL会为它指定一个默认值。显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是 INT整型所允许的最大值。

浮点型数据列类型

MySQL有三种浮点型数据列类型,分别是:FLOAT,DOUBLE和DECIMAL。
浮点类数据类型有一个最大可表示值和一个最小非零可表示值,最小非零可表示值决定了该类型的精确度。

MySQL 4.0.2版之后,FLOAT和DOUBLE都可以指定UNSIGNED属性。当指定该属性时,取值范围不平移到正数区间,而只是简单地把浮点类型的负数部份去掉。

浮点类型也有M(1~255)和D(1~30,且不能大于M-2)。分别表示显示宽度和小数位数。M和D在FLOAT和DOUBLE中是可选的,默认,当 MySQL版本大于3.23.6时,FLOAT和DOUBLE类型将被保存为硬件所支持的最大精度。DECIMAL的M和D值在MySQL3.23.6后可选,默认D值为0,M值为10。

如何选择数值类数据列类型?

为了节省存储空间和提高数据库处理效率,我们应根据应用数据的取值范围来选择一个最适合的数据列类型。如果把一个超出数据列取值范围的数存入该列,则 MySQL就会截短该值,如:我们把99999存入SMALLINT(3)数据列里,因为SMALLINT(3)的取值范围是-32768~32767,所以就会被截短成32767存储。显示宽度3不会影响数值的存储。只影响显示。

对于浮点数据列,存入的数值会被该列定义的小数位进行四舍五入。如把一个1.234存入FLOAT(6.1)数据列中,结果是1.2。

DECIMAL与FLOAT和DOUBLE的区别是:DECIMAL类型的值是以字符串的形式被储存起来的,它的小数位数是固定的。它的优点是,不会象 FLOAT和DOUBLE类型数据列那样进行四舍五入而产生误差,所以很适合用于财务计算;而它的缺点是:由于它的存储格式不同,CPU不能对它进行直接运算,从而影响运算效率。DECIMAL(M,D)总共要占用M+2个字节。

数值类数据列的属性

ZEROFILL属性适用于所有数值类数据列类型,作用是,如果数值的宽度小于定义的显示宽度,则在数值前填充0。
UNSIGNED属性不允许数据列出现负数。
AUTO_INCREMENT属性可生成独一无二的数字序列。只对整数类的数据列有效。
NULL和NOT NULL属性设置数据列是否可为空。
DEFAULT属性可为数据列指定默认值。

//////////////////////////////////////////////////////

字符串类数据列类型

字符串可以用来表示任何一种值,所以它是最基本的类型之一。
我们可以用字符串类型来存储图象或声音之类的二进制数据,也可存储用gzip压缩的数据。
下表介绍了各种字符串类型:

CHAR[(M)] M字节 M字节
VARCHAR[(M)] M字节 L+1字节
TINYBLOD,TINYTEXT 2^8-1字节 L+1字节
BLOB,TEXT 2^16-1字节 L+2
MEDIUMBLOB,MEDIUMTEXT 2^24-1字节 L+3
LONGBLOB,LONGTEXT 2^32-1字节 L+4
ENUM(‘value1′,’value2′,…) 65535个成员 1或2字节
SET(‘value1′,’value2′,…) 64个成员 1,2,3,4或8字节

L+1、L+2是表示数据列是可变长度的,它占用的空间会根据数据行的增减面则改变。数据行的总长度取决于存放在这些数据列里的数据值的长度。L+1或L +2里多出来的字节是用来保存数据值的长度的。在对长度可变的数据进行处理时,MySQL要把数据内容和数据长度都保存起来。

如果把超出字符串最大长度的数据放到字符类数据列中,MySQL会自动进行截短处理。

ENUM和SET类型的数据列定义里有一个列表,列表里的元素就是该数据列的合法取值。如果试图把一个没有在列表里的值放到数据列里,它会被转换为空字符串(“”)。

字符串类型的值被保存为一组连续的字节序列,并会根据它们容纳的是二进制字符串还是非二进制字符而被区别对待为字节或者字符:

二进制字符串被视为一个连续的字节序列,与字符集无关。MySQL把BLOB数据列和带BINARY属性的CHAR和VARCHAR数据列里的数据当作二进制值。

非二进制字符串被视为一个连续排列的字符序列。与字符集有关。MySQL把TEXT列与不带BINARY属性的CHAR和VARCHAR数据列里的数据当作二进制值对待。

在MySQL4.1以后的版本中,不同的数据列可以使用不同的字符集。在MySQL4.1版本以前,MySQL用服务器的字符集作为默认字符集。

非二进制字符串,即我们通常所说的字符串,是按字符在字符集中先后次序进行比较和排序的。而二进制字符串因为与字符集无关,所以不以字符顺序排序,而是以字节的二进制值作为比较和排序的依据。下面介绍两种字符串的比较方式:

二进制字符串的比较方式是一个字节一个字节进行的,比较的依据是两个字节的二进制值。也就是说它是区分大小写的,因为同一个字母的大小写的数值编码是不一样的。

非二进制字符串的比较方式是一个字符一个字符进行的,比较的依据是两个字符在字符集中的先后顺序。在大多数字符集中,同一个字母的大小写往往有着相同的先后顺序,所以它不区分大小写。

二进制字符串与字符集无关,所以无论按字符计算还是按字节计算,二进制字符串的长度都是一样的。所以VARCHAR(20)并不表示它最多能容纳20个字符,而是表示它最多只能容纳可以用20个字节表示出来的字符。对于单字节字符集,每个字符只占用一个字节,所以这两者的长度是一样的,但对于多字节字符集,它能容纳的字符个数肯定少于20个。

CHAR和VARCHAR

CHAR和VARCHAR是最常用的两种字符串类型,它们之间的区别是:

CHAR是固定长度的,每个值占用相同的字节,不够的位数MySQL会在它的右边用空格字符补足。

VARCHAR是一种可变长度的类型,每个值占用其刚好的字节数再加上一个用来记录其长度的字节即L+1字节。

CHAR(0)和VARCHAR(0)都是合法的。VARCHAR(0)是从MySQL4.0.2版开始的。它们的作用是作为占位符或用来表示各种on/off开关值。

如何选择CHAR和VARCHAR,这里给出两个原则:

如果数据都有相同的长度,选用VARCHAR会多占用空间,因为有一位用来存储其长度。如果数据长短不一,选用VARCHAR能节省存储空间。而CHAR不论字符长短都需占用相同的空间,即使是空值也不例外。

如果长度出入不大,而且是使用MyISAM或ISAM类型的表,则用CHAR会比VARCHAR好,因为MyISAM和ISAM类型的表对处理固定长度的行的效率高。

在一个数据表里,只要有一个数据列的长度是可变的,则所有数据列的长度将是可变的。MySQL会进行自动地转换。一个例外,CHAR长度小于4的不会进行自动转换,因为MySQL会认为这样做没必要,节省不了多少空间。反而MySQL会把大量长度小的VARCHAR转换成CHAR,以减少空间占用量。

BLOB和TEXT

BLOB是二进制字符串,TEXT是非二进制字符串。两者都可存放大容量的信息。

有关BLOB和TEXT索引的建立:

BDB表类型和MySQL3.23.2以上版本的MyISAM表类型允许在BLOB和TEXT数据列上建立索引。

ISAM、HEAP和InnoDB表不支持大对象列的索引。

使用BLOB和TEXT应注意的问题:

由于这两个列类型所存储的数据量大,所以删除和修改操作容易在数据表里产生大量的碎片,需定期运行OPTIMIZE TABLE以减少碎片和提高性能。

如果使用的值非常巨大,就需对服务器进行相应的优化调整,增加max_allowed_packet参数的值。对那些可会用到变些巨大数据的客户程序,也需加大它们的数据包大小。

ENUM和SET

ENUM和SET都是比较特殊的字符串数据列类型,它们的取值范围是一个预先定义好的列表。ENUM或SET数据列的取值只能从这个列表中进行选择。ENUM和SET的主要区别是:

ENUM只能取单值,它的数据列表是一个枚举集合。它的合法取值列表最多允许有65535个成员。例如:ENUM(“N”,”Y”)表示,该数据列的取值要么是”Y”,要么就是”N”。

SET可取多值。它的合法取值列表最多允许有64个成员。空字符串也是一个合法的SET值。

ENUM和SET的值是以字符串形式出现的,但在内部,MySQL以数值的形式存储它们。

ENUM的合法取值列表中的字符串被按声明定义的顺序被编号,从1开始。

SET的编号不是按顺序进行编号的,SET中每一个合法取值都对应着SET值里的一个位。第一个合法取值对应0位,第二个合法取值对应1位,以此类推,如果数值形式的SET值等于0,则说明它是一个空字符串,如果某个合法的取值出现在SET数据列里,与之对应的位就会被置位;如果某个合法的取值没有出现在 SET数据列里,与之对应的位就会被清零。正因为SET值与位有这样的对应关系,所以SET数据列的多个合法取值才能同时出现并构成SET值。

字符串类型数据列的字符集属性

在MySQL 4.1以前的版本,字符串数据列的字符集由服务器的字符决定,MySQL 4.1版以后的版本可对每个字符串数据列指定不同的字符串。如果按默认方式设置,可按数据列、数据表、数据库、服务器的顺序关联字符串的字符集,直到找一个明确定义的字符集。

/////////////////////////////////////////////////////////

日期,时间型数据列类型

DATE 1000-01-01~9999-12-31 3字节(MySQL3.23版以前是4字节 ) 0000-00-00
TIME -838:59:59~838:59:59 3字节 00:00:00
DATETIME 1000-01-01 00:00:00~9999-12-31 23:59:59 8字节 0000-00-00 00:00:00
TIMESTAMP 19700101000000~2037年的某个时刻 4字节 00000000000000
YEAR YEAR(4):1901~2155 YEAR(2):1970~2069 1字节 0000

MySQL总是把日期和日期里的年份放在最前面,按年月日的顺序显示。

DATE、TIME、DATATIME数据列类型

DATE、TIME和DATATIME类型分别存放日期值、时间值、日期和时间值的组合。它们的格式分别是“CCYY-MM-DD”、“hh:mm:ss”、“CCYY-MM-DD hh:mm:ss”。

DATATIME里的时间值和TIME值是有区别的,DATATIME里的时间值代表的是几点几分,TIME值代表的是所花费的时间。当向TIME数据列插值时,需用时间的完整写法,如12分30秒要写成“00:12:30”。

TIMESTAMP数据列类型

TIMESTAMP数据列的格式是CCYYMMDDhhmmss,取值范围从19700101000000开始,即1970年1月1号,最大到2037年。它的特点是能把数据行的创建或修改时间记录下来:

如果把一个NULL值插入TIMESTAMP列,这个数据列就将自动取值为当前的日期和时间。

在创建和修改数据行时,如果没有明确对TIMESTAMP数据列进行赋值,则它就会自动取值为当前的日期和时间。如果行中有多个TIMESTAMP列,只有第一个会自动取值。

如果对TIMESTAMP设置一个确定的日期和时间值,则会使TIMESTAMP的自动取值功能失效。

TIMESTAMP默认的列宽是14,可指定列宽,以改变显示效果。但不论你指定的列宽如何,MySQL都是以4字节来存储TIMESTAMP值,也总是以14位精度来计算。

如果需要把创建时间和最近一次修改时间同时记录下来,可以用两个时间戳来记录,一个记录创建时间,一个记录修改时间。不过需记住两件事,一是要把记录修改时间的TIMESTAMP数据列放在最前面,这样才会自动取值;二是创建一条新记录时,要用now()函数来初始化创建时间TIMESTAMP数据列,这样,该TIMESTAMP数据列就不会再变化。

YEAR

YEAR是一种单字节的数据列类型,YEAR(4)的取值范围是1901~2155,YEAR(2)的取值范围是1970~2069,但只显示最后两位数。MySQL能自动把两位数字年份转换成四位数字的年份,如97和14分被转换成1997和2014。转换规则是这样的:

年份值00~69将被转换成2000~2069;

年份值70~99将被转换成1970~1999。

00被转换成0000,而不是2000。因为数值00也就是0,而0值是YEAR的一个合法取值。


6
十二 07

产生唯一的文件名

mktemp

该工具是一个软件包,名字为:mktemp

Debian GNU/Linux :

apt-get install mktemp

CentOS GNU/Linux:

yum install mktemp


6
十二 07

Shell产生随机数

BASH Shell中有一个用于生成随机数的变量:RANDOM

这个变量的值是不断变化的,每次echo $RANDOM都会得到不同的值,在shell角本中可以做为随机数使用。

从别人的脚本里得到的一个获得随机数的方法:
rand() {
dd if=/dev/urandom bs=1 count=4 2>/dev/null | od -t u4 | awk ‘NR=1{print $2}’
}


6
十二 07

加密shell脚本

shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.

用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.

但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.

同样,在shell脚本运行时会也泄露敏感信息.

shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件.

这就很好的解决了上述问题.

shc的下载地址:

http://www.anyside.com/linux/shc-3.8.tgz

http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.tgz

安装:

tar zxvf shc-3.8.tgz
cd shc-3.8
make test
make
make test
make strings
make install 这一步需要root权限

使用方法:

shc -r -f script-name 注意:要有-r选项, -f 后跟要加密的脚本名.

运行后会生成两个文件,script-name.x 和 script-name.x.c

script-name.x是加密后的可执行的二进制文件.

./script-name 即可运行.

script-name.x.c是生成script-name.x的原文件(c语言)

设定期限:

首先使用shc转化为二进制,并加上过期时间,如

./shc -e 12/06/2006 -m “please contact jdaoyou@sohu.com” -r -f flushvpn.sh

我一般在程序中加入自动更新系统时间的命令,防止用户更改系统时间。

注:在使用的过程中遇到不少问题,运行并不是直分理想。


5
十二 07

LVS实施笔记

在RS中建立一个lo:0接口,设置ip为vip地址,注意掩码要使用255.255.255.255。

当使用arping vip时,会有多个MAC地址回应,这是因为RS也响应了VS的arp查询。

sysctl -e net.ipv4.conf.all.arp_ignore=1

此时,RS即不再影响RS关于vip的ARP MAC查询了。

假如两台VS之间使用的互备关系,那么当一台VS接管LVS服务时,可能会网络不通,这时因为路由器的MAC缓存表里关于vip这个地址的MAC地址还是被替换的VS的MAC,有两种解决方法,一种是修改新VS的MAC地址,另一种是使用send_arp 命令(piranha软件包里带的一个小工具),格式如下:

send_arp send_arp [-i dev] src_ip_addr src_hw_addr targ_ip_addr tar_hw_addr

这个命令不一定非要在VS上执行,只要在同一VLAN即可。

12-17:

今天对RS ARP MAC查询有了新的认识,网上大多数的文章都提到要用四个参数来关闭arp查询响应请求:

echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

我的RS最近的流量也频繁出现“异常”,经分析是因为arp的问题,rs有时会夺取VS的ip援用权。使用以上四条之后,VS立刻有了流量。


4
十二 07

X60/T60的SATA硬盘如何安装xp

X60/T60的SATA硬盘如何安装xp!(转自51bbnet)

http://www-307.ibm.com/pc/support/site.wss/MIGR-62909.html

X60/T60安装OS指导!!

本来安装OS是件简单事儿,但因为X60/T60的硬盘是SATA的,所以又不太简单!不想用随机盘恢复的本友请详见下述:

1、问题产生的根源:
WinXp虽然主流,但也是几年前的产物了,相对于SATA这个新生事物,有点欺生:)。打个比方,就好比要往SCSi硬盘上装WinXP,需要在第一屏“使用第三方SCSI驱动,请按F6”时,按F6,然后用SCSI厂商提供的软盘安装驱动,然后继续安装。然而,很显然,有SATA盘的本本都没有软驱。

2、下面说解决方案:
a)有USB软驱,没说的,下载附件中的驱动,解压后,拷到软盘里,在安装时F6装上,剩下的和正常安装同样。

b)也是大家常见的情况:没有软驱,步骤如下:

i)在启动时F1进Bios-〉Serial ATA-〉将硬盘模式从AHCI(高级接口模式,支持SATA的150M传输率)改为:Compatibility(兼容模式,模拟传统的IDE硬盘)
ii)用Xp安装盘正常安装,完成安装后,请先使用附件驱动安装SATA的驱动。把驱动解压到c:\drv\sata下,在c:\drv\sata\PREPARE下执行install.cmd,系统安装完后自动重启。
iii)重启后进Bios,将Serial ATA模式改回AHCI,正常进系统,会报告发现新硬件,不使用自动安装,手工把搜索路径指向c:\drv\sata,系统会自动完成安装,正确安装后,SATA在设备管理器中将显示为:Intel(R) 82801 GBM SATA AHCI Controller (Mobile ICH7M),至此,WinXP就可以正常用SATA告诉模式启动了
iiii)对于X60,因为没有光驱,强烈建议先用工具盘引导用PQ把分区做好,并把安装文件拷到硬盘下,然后用98盘引导,进入Win的目录,执行XX\i386\winnt,剩下的过程同T60
iiiii)强烈建议做好干净的OS后留一个Ghost备份!

最后,转一下帖子,关于T60的驱动问题。

a、由于T60使用了HD Audio声卡,看起来能够使音质得到一个提升的东西(好像用那两个小喇叭听确实说得过去)。但是在安装过程中,总会遇到报错:“需要 HD Audio总线驱动程序,但是没有找到”; 这里需要一个Windows的系统补丁KB888111,在安装声卡驱动之前,先打上相应的补丁(2000、XP SP1、XP SP2、2003均不同),然后系统会告诉你发现新硬件,这里还可以附带安装Modem的驱动,它好像也要HD Audio的总线驱动才能安装。

b、安装显卡驱动之前要装好Microsoft .NET Framework 2.0,否则显卡驱动安装不正常。表现在看起来装好了,但是重新启动之后就会报错:“.cli.exe 应用程序错误”。如果在MSConfig中取消它的启动,只能从表面解决问题。关键是要安装Microsoft .NET Framework 2.0后再安装显卡驱动。—-这是因为Ati的控制中心要求的要.net估计是IBM的驱动没有像Ati那样集成进去。

附件: ibm-sata.rar (2006-7-24 18:18, 180.8 K)

补充一点,关于IBM T60 X60的系统安装指南

联想在新一代的Thinkpad 6系列中采用的SATA硬盘,并在bios里面将sata的模式默认设置为AHCI,导致用户自行安装操作系统的时候出现硬件无响应,蓝屏,安装失败,但我们并不是没有办法给自己的本本重新安装操作系统,以下文字摘自IBM官方网站的文档,本人加以翻译,不对产生的任何问题负责
------------------------------------
从说明文档里我们能看到两种安装方式:

第一种是clean install,
1. Attach a diskette drive to your computer.
1,将一张软盘插入系统软驱(可以用双起U盘实现)
2. Download Intel Matrix Storage Manager Driver from the Web site and extract the driver to C:\DRIVERS\WIN\SATA and copy the driver to a diskette.
2,下载Intel Matrix Storage Manager Driver并把其解压到 C:\DRIVERS\WIN\SATA (其实任意地方都行),然后把它拷贝到软盘里。
3. To make sure that SATA AHCI is enabled, start the BIOS Setup Utility menu.
4. Select “Config”.
5. Select “Serial ATA (SATA)”.
6. Select “AHCI”.
3、4、5、6是告诉大家如何把SATA设置成AHCI模式,这个机器默认就是这样的,基本可以跳过
7. Change the startup sequence of your computer. Following the instructions on the Startup menu in the BIOS Setup Utility, set the CD-ROM drive to start first.
7,改变启动顺序,光驱第一(这么做的目的是为了从光盘装系统,如果是从硬盘装就不用了)
8. Insert the CD for Windows XP into the CD or DVD drive, and restart the computer.
8,插入Xp安装盘并重启
9. To install a third-party SCSI or RAID driver first, press F6.
9,“安装第三方SCSI或RAID驱动,请按F6
10. When prompted, select S for Specify Additional Device.
10,当安装界面出现,选S表示Specify Additional Device
11. When prompted, insert the diskette that you created in step 2, and press Enter.
11,然后插入你刚才拷贝了驱动程序的软盘
12. Select “Intel(R) 82801 GBM SATA AHCI Controller (Mobile ICH7M)”, and press Enter.
12,选择Intel(R) 82801 GBM SATA AHCI Controller (Mobile ICH7M,按enter
13. To continue the installation, press Enter again. Leave the diskette in the drive until the next reboot; the software may need to be copied from the diskette again when the files are copied during setup.
13,再按一次enter进行继续安装,不要拿出软盘
14. Follow the instruction to complete the OS installation.
14,继续正常安装操作系统

第二种方法是针对没有软盘驱动器的用户,官方文档说明如下
If you do not have a diskette drive, you can install Intel Matrix Storage Manager Driver by the following alternative procedure:
如果你没有软驱,你可以按照下面的方法安装 Intel Matrix Storage Manager Driver
Note: If you select AHCI for Serial ATA (SATA) in the BIOS Setup Utility before installing Intel Matrix Storage Manager Driver, your computer will not respond; it will only display a blue screen.
注意:如果你把SATA选成了AHCI模式,那么当你安装 Intel Matrix Storage Manager Driver 之前系统会没有反应,蓝屏
1. Start the BIOS Setup Utility menu.
2. Select “Config”.
3. Select “Serial ATA (SATA)”.
4. Select “Compatibility”.
1~4,就是开机,按F1进bios,然后把SATA选成compatibility模式。
5. Install Windows XP and Service Pack 2.
5,正常安装windows xp
6. Download Intel Matrix Storage Manager Driver from the Web site and extract the driver to C:\DRIVERS\WIN\SATA.
6,下载 Intel Matrix Storage Manager Driver 并解压到C:\DRIVERS\WIN\SATA
7. Run Intel Matrix Storage Manager Driver. To do this, go to C:\DRIVERS\WIN\SATA\PREPARE, and double-click install.cmd.
7,运行C:\DRIVERS\WIN\SATA\PREPARE中的install.cmd,安装Intel Matrix Storage Manager Driver
8. Turn the computer off and then on again.
8,重启
9. Start the BIOS Setup Utility menu.
10. Select “Config”.
11. Select “Serial ATA (SATA)”.
12. Select “AHCI”.
9~12,进入bios把sata模式改回AHCI
13. Start Windows XP. The Welcome to the Found New Hardware Wizard appears.
14. Click “No, not this time”, and then click “Next”.
15. Select Install from a list or specific location (Advanced), and then click Next.
16. Select “Search for the best driver in these locations”. Then select “Include this location in the search:”, specify the path, C:\DRIVERS\WIN\SATA, and click “Next”. The Completing the Found New Hardware Wizard appears.
17. Click “Finish”.
18. When the System Settings Change window appears, click “Yes”. The computer restarts.
13~18,进入操作系统,发现新硬件,指向C:\DRIVERS\WIN\SATA完成驱动程序的安装


4
十二 07

我的FireFox常用插件

主题:

Noia 2.0 (lite)

扩展:

Web Developer 1.1.4

Firebug 1.05

yslow

Wizz RSS News Reader 2.1.9.8

Search Status

Google Notebook插件

Nagios Checker

TamperData

scribefire

ReminderFox

showip

lori

Hide Menubar

Adblock Plus

字体:

微软雅黑字体

抓屏展示:

我的FireFox抓屏


2
十二 07

lvcreate -s

Create a snapshot logical volume (or snapshot) for an  existing, so  called  original logical volume (or origin).  Snapshots provide a ‘frozen image’ of the contents of the  origin  while  the origin  can still be updated. They enable consistent backups and online recovery of removed/overwritten data/files. The  snapshot does  not  need  the same amount of storage the origin has. In a typical scenario, 15-20% might be enough. In case  the  snapshot runs  out  of  storage,  use lvextend(8) to grow it. Shrinking a snapshot is supported by lvreduce(8) as well.  Run  lvdisplay(8) on  the snapshot in order to check how much data is allocated to it.