这几天都没有写Blog,今天终于找到电脑来写一下了,呵呵。这几天不知道为什么,用手机的Wap总是不能顺利登陆后天,所以也就发不了Blog了。

现在来稍微总结一下说说…具体的回到昆明再具体写

目前游览的路线是:上海-西塘-乌镇-苏州-杭州-黄山-杭州-上海。不过我觉得游览的话,走这个线路实在太绕了。应该是上海-苏州-乌镇-西塘-杭州-黄山-杭州-上海,这样就差不多了。就不会走重复路线了。不过我们这一路真是历尽各种波折……

明天就要出发去上海了,今天在杭州还走了12个小时,真是太挣扎了。从上午9:30就出发开始走,绕着西湖逆时针方向游览,走通了苏堤、荷塘观鱼、雷峰塔等等景点,一直走了12个小时,走到断桥,实在是走不动了。就打车回到浙大了。想想明天就要开始爬黄山了,挣扎啊!

今天就先写到这了,明天就要开始爬黄山了,等还要看看为什么手机不能发Blog。对了,现在旅游期间的照片数量保持在每天最少320张左右……恐怖的数字,等回去的时候就可以刻一张DVD了,呵呵!

晚上6点整,我走出了家门,正式开始了行程。今天昆明下着阵雨,我匆忙打辆车到机场。因为我定的是网上支付的电子客票,所以在前台出示了身份证和定单号就拿到了飞机票(还真先进,不过早该这样了,呵呵)。在通过安检后我才想起来,我把相机的脚架给完全忘记了!可惜啊!没脚架的话怎么拍上海夜景啊…郁闷!我走出家门的时候还特地想了一下有没有忘记什么东西。唉!只有到时候看了,实在不行的话看看有没有卖的啊等等…今天飞机还晚点,本来7:50的飞机,最后到了9:15了才起飞。不过还好,在12:30的时候到了上海。到了马上赶到HP处…赶上了世界杯开幕赛的最后,德国4:2战胜了哥斯达尼加…

这两天都很少有时间来管Blog,在计划着沪苏杭一行。期待了好久的旅途,终于要在明天开始了。忍不住心中的兴奋,呵呵。

自助游还真是锻炼人,还好我买了一本《中国自助游》,上面对全国各个景区的介绍都比较详细。我就照上面的提示来操作了。按照今天晚上定下来的计划,我们的行程是 上海 - 苏州 - 杭州 - 黄山。当然,这是大体的行程。具体的行程的话,可能会在这个大的行程上自由安排。可以看看哪里比较值得玩一点,就去玩一下。这就是自助游,不跟团的好处了,呵呵。今天还仔细的研究了一下上海地图,在GPS的帮助下的话,在上海应该不会迷路了。但是我对于上海四通八达的地铁等等还不是很熟,先规划着看吧。对了,为了这次旅行,我专门从网上找了最新的MapKing 7的上海地图,感觉非常好用。还有另外就是Lingtu 3.05.10的绿色版,还有OZI格式的上海、杭州、苏州地图。由GPS全副武装!

本来计划在上海住同学那的,可惜……同学的爸爸和哥哥也刚好旅游到那,然后在那住,晕倒啊。没办法,只有自己找房子了。我在Ctrip上搜了半天,也没找到个非常满意的宾馆。不是太贵就是位置不好,价格实惠、位置又好的酒店条件有太差。麻烦!还好,在浙大同学的帮助下,可以入住浙大的上海分区宾馆。位置还不错,在四川中路上,靠朝苏州河这边。据说步行10分钟就可以到外滩。不过,具体是什么情况,要到了那里才知道了。

祝我一路顺风吧,我在行程中会不时的用手机补充Blog的,呵呵。等回来贴好片子到网上。:-D

Godspeed!

  与好友在网络上相互传输资料时,有时先要知道对方计算机的IP地址,才能与对方建立信息传输通道。

  那么对方的IP地址该如何搜查得到呢?这样的问题你也许会嗤之以鼻,的确,查询对方计算机的IP地址,实在简单得不值得一提;可是,要让你列举出多种IP地址搜查方法时,你可能就感到勉为其难了。下面,本文就对如何快速、准确地搜查出对方好友的计算机IP地址,提出如下几种方法,相信能对大家有所帮助!

  1、邮件查询法

  使用这种方法查询对方计算机的IP地址时,首先要求对方先给你发一封电子邮件,然后你可以通过查看该邮件属性的方法,来获得邮件发送者所在计算机的IP地址;下面就是该方法的具体实施步骤:

  首先运行OutLook express程序,并单击工具栏中的“接受全部邮件”按钮,将朋友发送的邮件接受下来,再打开收件箱页面,找到朋友发送过来的邮件,并用鼠标右键单击之,从弹出的右键菜单中,执行“属性”命令;

  在其后打开的属性设置窗口中,单击“详细资料”标签,并在打开的标签页面中,你将看到“Received: from xiecaiwen (unknown [11.111.45.25])”这样的信息,其中的“11.111.45.25”就是对方好友的IP地址;当然,要是对方好友通过Internet中的WEB信箱给你发送电子邮件的话,那么你在这里看到的IP地址其实并不是他所在工作站的真实IP地址,而是WEB信箱所在网站的IP地址。

  当然,如果你使用的是其他邮件客户端程序的话,查看发件人IP地址的方法可能与上面不一样;例如要是你使用foxmail来接受好友邮件的话,那么你可以在收件箱中,选中目标邮件,再单击菜单栏中的“邮件”选项,从弹出的下拉菜单中选中“原始信息”命令,就能在其后的界面中看到对方好友的IP地址了。

  2、日志查询法

  这种方法是通过防火墙来对QQ聊天记录进行实时监控,然后打开防火墙的日志记录,找到对方好友的IP地址。为方便叙述,本文就以KV2004防火墙为例,来向大家介绍一下如何搜查对方好友的IP地址:

  考虑到与好友进行QQ聊天是通过UDP协议进行的,因此你首先要设置好KV防火墙,让其自动监控UDP端口,一旦发现有数据从UDP端口进入的话,就将它自动记录下来。在设置KV2004防火墙时,先单击防火墙界面中的“规则设置”按钮,然后单击“新建规则”按钮,弹出设置窗口;

  在该窗口的“名称”文本框中输入“搜查IP地址”,在“说明”文本框中也输入“搜查IP地址”;再在“网络条件”设置项处,选中“接受数据包”复选框,同时将“对方IP地址”设置为“任何地址”,而在“本地IP地址”设置项处不需要进行任何设置;

  下面再单击“UDP”标签,并在该标签页面下的“本地端口”设置项处,选中“端口范围”选项,然后在起始框中输入“0”,在结束框中输入“65535”;同样地,在“对方端口”设置项处,也选中“端口范围”选项,然后在起始框中输入“0”,在结束框中输入“65535”。

  接着在“当所有条件满足时”设置项处,选中“通行”选项,同时将“其他处理”处的“记录”选项选中,而“规则对象”设置项不需要进行任何设置;完成了上面的所有设置后,单击“确定”按钮,返回到防火墙的主界面;再在主界面中选中刚刚创建好的“搜查IP地址”规则,同时单击“保存”按钮,将前面的设置保存下来。

  完成好上面的设置后,KV防火墙将自动对QQ聊天记录进行全程监控,一旦对方好友给你发来QQ信息时,那么对方好友的IP地址信息就会自动出现在防火墙的日志文件中,此时你可以进入到KV防火墙的安装目录中,找到并打开“kvfwlog”文件,就能搜查到对方好友的IP地址。

    3、工具查询法

  这种方法是通过专业的IP地址查询工具,来快速搜查到对方计算机的IP地址。例如,借助一款名为WhereIsIP的搜查工具,你可以轻松根据对方好友的Web网站地址,搜查得到对方好友的IP地址,甚至还能搜查到对方好友所在的物理位置。在用WhereIsIP程序搜查对方IP地址时,首先启动该程序打开搜查界面,然后单击该界面的“Web site”按钮,在其后的窗口中输入对方好友的Web地址,再单击“next”按钮,这样该程序就能自动与Internet中的Domain Name Whois数据库联系,然后从该数据库中搜查到与该Web网站地址对应的IP地址了。当然,除了可以知道IP地址外,你还能知道对方好友所在的具体物理位置。

  倘若要想查看局域网中某个工作站的IP地址时,可以使用“网络刺客II”之类的工具来帮忙;只要你运行该工具进入到它的主界面,然后执行工具栏中的“IP地址<->主机名”命令,在其后打开的对话框中,输入对方好友的计算机名称,再单击“转换成IP”按钮,就能获得对方好友所在计算机的IP地址了。

  如果你使用Oicqsniffer工具的话,那么查询QQ好友的IP地址就更简单了。只要你单击该程序界面中的“追踪”按钮,然后向对方好友发送一条QQ消息,那么Oicqsniffer工具就会自动将对方好友的IP地址以及端口号显示出来了。除此之外,还有许多可以查找IP地址的专业工具可以选择,例如IPsniper软件。

  4、命令查询法

  这种方法是通过Windows系统内置的网络命令“netstat”,来查出对方好友的IP地址,不过该方法需要你先想办法将对方好友邀请到QQ的“二人世界”中说上几句话才可以。下面就是该方法的具体实现步骤:

  首先单击“开始”/“运行”命令,在弹出的系统运行对话框中,输入“cmd”命令,单击“确定”按钮后,将屏幕切换到MS-DOS工作状态;然后在DOS命令行中执行“netstat -n”命令,在弹出的界面中,你就能看到当前究竟有哪些地址已经和你的计算机建立了连接(如果对应某个连接的状态为“Established”,就表明你的计算机和对方计算机之间的连接是成功的);

  其次打开QQ程序,邀请对方好友加入“二人世界”,并在其中与朋友聊上几句,这样你的计算机就会与对方好友的计算机之间建立好了TCP连接;此时,再在DOS命令行中执行“netstat -n”命令,看看现在又增加了哪个tcp连接,那个新增加的连接其实就是对方好友与你之间的UDP连接,查看对应连接中的“Foreign Address”就能知道对方好友的IP地址了。

  5、ping检查法

  这种方法就是利用“ping”命令,来检查当前计算机是否能与对方好友的网站连通,在检查的过程中该地址能自动获得对方网站的IP地址。比方说,要是你想搜查天极网站的IP地址时,可以先打开系统的运行对话框,然后在其中输入“ping www.pconline.com.cn”字符串命令,再单击“确定”按钮,在弹出的窗口中,就能知道网站的IP地址了。同样地,你也可以搜查其他网站的IP地址。

  好了,上面就是查询好友计算机IP地址的几种常用方法;要是你还有其他更好方法的话,恳请不断补充完善!

    在Linux下如何使用vsftpd构建FTP服务器,构建后的FTP服务器有哪些特点?本文将作详细介绍。

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

    本文以RedHat Linux 9.0为例介绍一下如何安装和配置vsftpd服务器。

    安装服务器程序

    程序下载地址:ftp://vsftpd.beasts.org/users/cevans/,目前最新版本为2.0.3,源程序文件名为vsftpd-2.0.3.tar.gz。

    1.安装之前的准备:

    安装之前我们应该看看用户“nobody”和目录“/usr/share/empty”是否存在,如果不存在需要新建这个用户和目录。

  [root@localhost root]# useradd nobody

  [root@localhost root]# mkdir /usr/share/empty

    如果要允许匿名访问,还需要创建ftp用户,并将其主目录设置为/var/ftp。在RedHat Linux 9.0中这些都已默认设置好了,只需要创建一个/var/ftp目录即可。

    [root@localhost root]# mkdir /var/ftp

    为了安全,目录“/var/ftp”不应该属于用户“ftp”,也不应该有写权限。在此,我们做如下设置:

    [root@localhost root]# chown root.root /var/ftp

    [root@localhost root]# chmod 755 /var/ftp

    2.开始安装:

    以管理员身份登录Linux系统,将vsftpd-2.0.3.tar.gz复制到/root目录下。

    [root@localhost root]# tar xzvf vsftpd-2.0.3.tar.gz

    [root@localhost root]# cd vsftpd-2.0.3

    [root@localhost vsftpd-2.0.3]# make

    [root@localhost vsftpd-2.0.3]# make install

    3.安装后续工作

    由于采用源代码方式安装,很多必要的配置文件没有复制到系统中,需要手动复制。

    复制配置文件:

    [root@localhost vsftpd-2.0.3]# cp vsftpd.conf /etc
    复制pam验证文件:(多数使用vsftpd的用户在用源代码安装后都会遇到这样的问题:匿名用户可以登录,而本地用户无论怎样设置都无法登录,原因就在于vsftpd采用了PAM验证的方式,需要复制一个验证文件本地用户才能访问。)

    [root@localhost vsftpd-2.0.3]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
vsftpd的配置

    vsftpd服务器的配置文件为/etc/vsftpd.conf,其配置选项比较多,在此我只选择几个常用的配置选项介绍。

    1.禁止匿名用户访问。

    anonymous_enable=NO

    2.允许本地用户登录并允许其上传文件。

    local_enable=YES

    write_enable=YES

    要使上述选项生效,必须复制一个pam验证文件到/etc/pam.d,并改名为ftp。当然也可以改为其他名称,但必须修改pam_service_name的值,默认为ftp。

    3.将本地用户锁定在主目录中,不允许切换到上一级目录中。

    chroot_local_user=YES

    4.禁止某些用户通过ftp登录服务器。

  如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。

    在vsftpd.conf中有三个选项控制:

    userlist_deny=YES/NO

    userlist_enalbe=YES

    userlist_file=/etc/vsftpd.user_list

    如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。

    我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户占一行。

    5.禁止用户通过FTP修改文件或文件夹的权限。

    chmod_enable=NO(默认值为YES)

    6.设置本地用户上传的文件或文件夹的umask值。

    local_umask=022(默认值为077)

    umask的值设为022表示,上传的如果是文件将权限改为644,如果是文件夹将权限改为755。在上传网页时,如果设置为077,就会出现用户没有权限(Permission denied)访问网页的问题,所以建议将umask的值设为022。

    7.添加一个只能从ftp登录服务器,而不能从本地登录的用户。以下创建一个用户ftpuser,不允许从本地登录,并创建该用户的密码。

    [root@localhost root]# useradd –g ftp –s /sbin/nologin ftpuser

    [root@localhost root]# passwd ftpuser

    Changing password for user ftpuser.

    New password:

    Retype new password:

    passwd: all authentication tokens updated successfully.

    8.让vsftp服务器限制总的连接数以及每个IP最大的连接数。

    #最多同时允许100个客户连接

  max_clients=100

    #每个ip地址最多允许开3个线程

  max_per_ip=3

  vsftpd的配置文件中有很多选项,但个人认为,如果是架设一个简单的ftp服务器,以上选项就足够了。

  一、安装PHP4

  我们需要安装的是win32版本,下载当然也是win32版本 php4.3.0-win32.zip 

  1.下载后,解压到c:php目录下。 

  2. 把c:php目录下的php4ts.dll php4ts.lib文件都拷贝到c:winntsystem32目录下(即window 2000系统目录下的system32目录)。 

  3. 修改php.ini文件 重启完后,把c:php目录下的php.ini-dist文件改名为php.ini 用记事本或其它可编辑文本的软件把它打开。 

  3.1找到register_globals = Off 改为register_globals = On这一步是为了使部分旧的PHP程序能正常运行; 

  3.2找到 extension_dir = ./ 把它改为extension_dir = c:phpextensions刚刚的修改是指定php4扩展dll文件存放的路径 由于php4默认所带的php.ini-dist中,是关掉了所以的扩展dll的功能( Windows Extensions)

  ;extension=php_bz2.dll

  ;extension=php_cpdf.dll

  ;extension=php_crack.dll

  ;extension=php_curl.dll …..

  要做的就是把extension前面的分号去掉就行了,当然这样是不够的。因为有些extension在我们的系统是不能使用的,比如系统中没有安装 sql server的话,那么extension=php_mssql.dll就要用;(分号)把它注释掉;

  其中,PHP4带了两个GD扩展,请选用一个,另一个先用分号注释掉,以免出现函数无法注册的错误;

  如下面

  extension=php_gd.dll

  ;extension=php_gd2.dll 

  3.3 找到session.save_path,把这一项改为 session.save_path = c: mp并在C盘建立一个TMP目录

  3.4把所有的extension=php_xxxx.dll前面的分号都去掉后。记得要保存刚刚的修改 并把php.ini文件放置在c:winnt目录下。

  二、安装MySql

  安装MySql 当然,我在MySql.com 下载的MySql是一个压缩包,要先解压出来;再点setup.exe安装;

  按默认安装,即安装在c:MySql下,安装完后,按“开始”菜单中的“运行”打进cmd进入dos窗口,进到c:MySqlin 目录;

  运行mysqld-nt –install (将会出现一个Dos窗口,随即自动关闭!如果没有出任何信息,即安装到service成功!)

  从“开始”菜单“程序”=》“管理工具”=》“服务”,打开后,将会找到MySql,点击mouse右键 选择启动 回到刚刚的Dos窗口

  即c:MySqlin目录下 运行mysqladmin -u root password 123 即把root用户的密码设置为123 这一步,如果没有出错,说明初始化root密码成功;

  当然从本机进入MySql是不需要用户名和密码,但用php 程序或是其它程序连接MySql时就要用到;

  测试进入 第一种方法:直接动行MySql进入MySql 的dos管理状态;

  第二种方法:运行MySql -uroot -p MySql将会提示让您输入密码,密码当然就是刚刚设置的123(当然,得按设置的密码喽,不一定得设置是123)

  出现: C:MySqlin>MySql -uroot -p Enter password: ********** Welcome to the MySql monitor. Commands end with ; or g. Your MySQL connection id is 4 to server version: 3.27.44-nt Type ‘help;‘ or ‘h‘ for help. Type ‘c‘ to clear the buffer. mysql>

  即安装MySql成功。

  三、安装Apache 1.3.x 及 PHP运行设置

  1.首先下载Apache,Apache软件一般叫作apache_1_3_x.win32.exe。运行它。它会问你将Apache安装到什么地方,为他系统安全及操作容易,我们不要使用默认路径,你可以设为c:Apache或C:,因为马上你就要修改它的配置文件。

  如果安装没出什么错的话,Apache就可以用了。有很多readme文件可供参考,但仅有一个文件是讲Win32平台的,包括Window 9x和Windows NT。

  有两种方式使 PHP 工作于 Windows 下的 Apache 1.3.x。一种是 CGI 方式(php.exe),另一种是使用 Apache 模块 DLL。不管哪种方式都需要停止 Apache,编辑 httpd.conf 来配置 Apache 以加入PHP支持。

  值得在这里指出现在 Windows 下的 SAPI 模块更加稳定了,我们推荐使用模块方式,因为更加透明和安全。

  尽管有几种不同方法在 Apache 下配置 PHP,但是对新手来说还是非常简单易用的。有关更多的 httpd.conf 配置指令请参考 Apache 文档。

  如果你按照手工安装步骤一节中的说明把 PHP 解压缩到了 c:php 目录下,那么需要加入以下三行到 Apache 配置文件中以 CGI 方式安装:

  ScriptAlias /php/ "c:/php/"

  AddType application/x-httpd-php .php .phtml

  Action application/x-httpd-php "/php/php.exe"

  注意上面的第二行在原来的 httpd.conf 中就有的,不过被注释了。还有记住用你自己放置 PHP 的路径替换 c:/php/。

  警告

  在 CGI 方式下,你的服务器可能会受到几种攻击的影响。请学习如何防止攻击。

  如果你想在 Apache 中用模块方式使用 PHP,确认把 php4ts.dll 拷贝到 windows/system(Windows 9x/Me)或者 winnt/system32(Windows NT/2000)或者 windows/system32(Windows XP)目录下,覆盖原来的文件。然后在 Apache 配置文件 httpd.conf 中加入以下两行:

  用自己喜爱的编辑器打开 httpd.conf,找到 LoadModule 指令的部分,在其列表的最后部分加上如下一行,

  对 PHP 4:

  LoadModule php4_module c:/php/sapi/php4apache.dll

  对 PHP 5:

  LoadModule php5_module "c:/php/sapi/php5apache.dll"

  你可能发现在用 Windows Installer 安装了 Apache 之后需要为用 AddModule 指令定义 mod_php4.c。尤其是在定义了 ClearModuleList 指令时格外重要,向下滚动几行可以找到该指令。你将会看到 AddModule 项目的列表,在列表的最后加上这一行:

  AddModule mod_php4.c

  对于 PHP 5 则为:

  AddModule mod_php5.c

  搜索类似 # AddType allows you to tweak mime.types 的短语,你会找到一些 AddType 的项目,并且在列表的最后有这一行: AddType application/x-httpd-php .php。你可以在这里选择任何想用 PHP 解析的后缀。.php 只是所建议的一个。甚至可以包括 .html,也可以加上 .php3 来向下兼容。

  修改了配置文件之后记住重新启动 Apache,例如如果你的 Apache 是作为 Windows 的服务安装的,NET STOP APACHE 后面接上 NET START APACHE。或者用你通常使用的快捷方式。

  有两种方式使用源程序语法彩色显示特色,但是取决于你的安装方法。如果你配置了 Apache 的 SAPI 模块方式使用 PHP,那么在 httpd.conf 中(和插入 AddType application/x-httpd-php .php 是同一个位置)加入下面一行就可以使用本特色:AddType application/x-httpd-php-source .phps。

  如果你用 CGI 方式使用 PHP,那你需要用 show_source() 函数。建立一个 PHP 文件,加入以下代码:。用你想要显示源代码的文件名替换掉 original_php_script.php。

  注: 在 Windows-Apache 组合中,所有路径中的反斜线例如 "c:directoryfile.ext" 都必须转换成斜线,如 "c:/directory/file.ext"。

  四、实现Apache虚拟主机的两种方案

  简介:这里说的虚拟主机是指在一台机器上仅运行一个httpd后台程序 支持多个Apache服务器,如在公司财务部门有一台web服务器,名为 account.yourdomain.com,同时又想为sales部门建立网站,网站内容也 放在该机器上,通过sales.yourdomain.com访问,这就要用到虚拟主机设置。

  设置Apache虚拟主机通常有两种方案

  1.基于IP的虚拟主机

  这种方式需要在机器上设置IP别名,象上面的例子,在一台机器的 网卡上绑定多个IP地址去服务多个虚拟主机。 若该机器的IP地址为192.168.0.1(account.yourdomain.com),首先 你要设置IP别名(假设用192.168.0.2作为其别名IP)。加下面的行到 /etc/rc.d/rc.local,确保每次启动后自动运行。

  #/sbin/ifconfig eth0:0 192.168.0.2 netmask 255.255.255.0 broadcast

  192.168.0.255 up

  #/sbin/route add -host 192.168.0.2 eth0:0

  然后你需要设置/etd/httpd/conf/httpd.conf文件:

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/sales.yourdomain.com

  ServerName sales.yourdomain.com

  ErrorLog /var/log/httpd/sales.yourdomain.com/error_log

  TransferLog /var/log/httpd/sales.yourdomain.com/access_log

  然后分别创建目录

  /home/httpd/sales.yourdomain.com,

  /var/log/httpd/sales.yourdomain.com

  放相应的网站内容到目录/home/httpd/sales.yourdomain.com下即可,并确保 你内部的DNS指定sales.yourdomain.com的A记录到IP地址192.168.0.2 。

  注:这种基于IP的虚拟主机有一个缺点,就是你需要更多的IP地址去服务各自的虚拟主机,如果你仅仅有一个IP地址,那么你将可以考虑用基于名字的虚拟主机方案。

  2.基于名字的虚拟主机:

  它的优势就是不需要更多的IP地址,容易配置,不需要其它软硬件,现代的浏览器大多都支持这种方式。与基于IP的虚拟主机一样,你需要编辑文件

  /etc/httpd/conf/httpd.conf

  NameVirtualHost 192.168.0.1

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/sales.yourdomain.com

  ServerName sales.yourdomain.com

  ErrorLog /var/log/httpd/sales.yourdomain.com/error_log

  TransferLog /var/log/httpd/sales.yourdomain.com/access_log

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/hr.yourdomain.com

  ServerName hr.yourdomain.com

  ErrorLog /var/log/httpd/hr.yourdomain.com/error_log

  TransferLog /var/log/hr.yourdomain.com/access_log

  注: 你需要加NameVirtualHost 指示在最前面,下面依次为各个虚拟主机,为了让它工作,你需要把sales.yourdomain.com, hr.yourdomain.com的DNS 都指向IP地址192.168.0.1

  上面的两种都将工作,如果是在外部网段,在互联网上提供WWW服务,你可能 没有足够的真实IP地址来支持多个虚拟主机,便可用基于名字的虚拟主机方案, 若是在内部网段上,你有较多的内部保留IP地址,将没有太大的区别。

  本文介绍的Java规则的说明分为5个级别,级别1是最基本也是最重要的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码有更好的可读性等。

  (1) 避免使用NEW关键字来创建String对象

  把一个String常量copy到String 对象中通常是多余、浪费时间的。

Public class test{
 Public void method(){
  System.out.print (str);
 }
 private String str = new String ("1"); //这里新建对象是完全没有必要的
 private String str2=”2” //正确的应该如此
}

  (2) 避免使用不必要的嵌套

  过多的嵌套会使你的代码复杂化,减弱可读性。

Public class test {
 String add (){
  Int c=(a=a+b)+b; //过于复杂
  Return c
 }
}

  (3) 避免在同一行声明不同类型的多个变量

  这样可以使程序更加清晰,避免混乱

private int index, index1[];

  正确的应该如此:

private int index;
private int index1[];

  (4) 在每一行里写一条语句

  这条规则不包括for语句:比如:‘for (int i = 0; i < 10; i++) x–;’可以增加代码的可读性。

public class OSPL {
 int method (int a, int b) {
  int i = a + b; return i; // 可读性不强
 }

  正确的:

public class OSPLFixed {
 int method (int a, int b) {
  int i = a + b;
  return i;
 }
}

  (5)经常从finalize ()中调用super.finalize ()

  这里的finalize ()是java在进行垃圾收集的时候调用的,和finally不一样。如果你的父类没有定义finally()的话,你也应该调用。这里有两个原因:(1)在不改变代码的情况下能够将父类的finally方法加到你的类中。 (2)以后你会养成习惯调用父类的finally方法,即使父类没有定义finally方法的时候。

  正确的方法应该如此:

public class parentFinalize {
 protected void finalize () throws Throwable {
  super.finalize(); // FIXED
 }

  (6) 不要在finalize ()中注销listeners

  不要再finalize ()方法中中注销listeners,finalize ()只有再没有对象引用的时候调用,如果listeners从finalize()方法中去除了,被finalize的对象将不会在垃圾收集中去除。

public void finalize () throws Throwable {
 bButton.removeActionListener (act);
}

  (7) 不要显式的调用finalize ()方法

  虽然显式的调用这个方法可以使你确保你的调用,但是当这个方法收集了以后垃圾收集会再收集一次。

public class T7 {
 public void finalize() throws Throwable {
  close_resources ();
  super.finalize ();
 }
 public void close_resources() {}
}
class Test {
 void cleanup () throws Throwable {
  t71.finalize(); // 调用
  t71 = null;
 }
 private t71 = new T7 ();
}

  对于这样的调用我们应该自己创建一个释放的方法,做最初finalize ()所作的事情,当你每次想显式的调用finalize ()的时候实际上调用了释放方法。然后再使用一个判断字段来确保这个方法只执行一次,以后再调用就没关系了。

public class T7 {
 public synchronized void release () throws Throwable{
  if (!_released) {
   close_resources (); // do what the old ‘finalize ()‘
   did _released = true;
  }
 }
 public void finalize () throws Throwable {
  release ();
  super.finalize ();
 }
 public void close_resources() {}
 private boolean _released = false;
}
class TestFixed {
 void closeTest () throws Throwable {
  t71 .release (); // FIXED
  t71 = null;
 }
 private T7 t71 = new T7 ();
}

  (8)不要使用不推荐的API

  尽量使用JDK1.3推荐的API。在类和方法或者java组件里有很多方法是陈旧的或者是可以选择的。有一些方法SUN用了"deprecated“标记。最好不要使用例如:

private List t_list = new List ();
t_list.addItem (str);

  如果查一下javadoc的话,会发现建议用add()来代替addItem()。

  (9)为所有序列化的类创建一个‘serialVersionUID‘

  可以避免从你各种不同的类破坏序列的兼容性。如果你不特别制订一个UID的话,那么系统为自动产生一个UID(根据类的内容)。如果UID在你新版本的类中改变了,即使那个被序列化的类没改变,你也不能反序列化老的版本了。

public class DUID implements java.io.Serializable { public void method () {}}

  在里面加一个UID,当这个类的序列化形式改变的时候,你也改变这个UID就可以了。

public class DUIDFixed implements java.io.Serializable {
 public void method () {}
 private static final long serialVersionUID = 1;
}

  (10)对于private常量的定义

  比较好的做法是对于这样的常量,加上final标记,这样的常量从初始化到最后结束值都不会改变。

private int size = 5;

  改变后的做法是:

private final int size = 5;

  (11)避免把方法本地变量和参数定义成和类变量相同的名字

  这样容易引起混扰,建议把任何的变量字都定义成唯一的。这样看来,SCJP里的那些题目在现实中就用不到了:)

public void method (int j) { final int i = 5; // VIOLATION } private int j = 2;

  建议:

public void method (int j1) { final int i = 5; // VIOLATION } private int j = 2;

  近期,一些朋友总提出内存不能为“read”或者“written”的问题,鉴于产生这些问题的原因多样复杂,判断和处理这些问题比较麻烦,现在将网上找到的这篇较为全面的资料,加上自己收集到的部分例子奉上,供大家共享。

  问题

  运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。

  “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。

  “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。

  一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。

  故障分析

  硬件方面:

  一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。

  假如是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,就要检查是不是内存出问题了或者和其它硬件不兼容。

  软件方面:

  先简单说说原理:内存有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。举个例子:一个桶子只能将一斤的水,当放入两斤的水进入时,就会溢出来。而系统则是在屏幕上表现出来。这个问题,经常出现在windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法操作,系统为保持稳定,就会出现上述情况。另外也可能是硬件设备之间的兼容性不好造成的。

  几个典型故障例子及解决办法

  例一:打开IE浏览器或者没过几分钟就会出现"0x70dcf39f"指令引用的"0x00000000"内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。

  解决方法:修复或升级IE浏览器,同时打上补丁。看过其中一个修复方法是,Win2000自升级,也就是Win2000升级到Win2000,其实这种方法也就是把系统还原到系统初始的状态下。比如你的IE升级到了6.0,自升级后,会被IE5.0代替。

  例二:在windows xp下双击光盘里面的“AutoRun.exe”文件,显示“0x77f745cc”指令引用的“0x00000078”内存。该内存不能为“written”,要终止程序,请单击“确定”,而在Windows 98里运行却正常。

  解决方法:这可能是系统的兼容性问题,WinXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:winntapppatchslayerui.dll。右键,属性,也会出现兼容性的选项。

  例三:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为“read” 的提示。

  解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。

  例四:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“Ox060692f6”(每次变化)指令引用的“Oxff000011”内存不能为“read”,终止程序请按确定。

  解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好换就用别的播放器试试了。

  例五:双击一个游戏的快捷方式,“Ox77f5cdO”指令引用“Oxffffffff”内存,该内存不能为“read” ,并且提示Client.dat程序错误。

  解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX9.0。

  例六:一个朋友发信息过来,我的电脑便出现了错误信息:“0*772b548f”指令引用的“0*00303033”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。

  解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了。

  例七:我的笔记本电脑用的XP系统,有时关闭网页时会弹出tbrowser.exe遇到问题需要关闭,然后有弹出0x03e7c738指令引用的0x03e7c738内存,该内存不能为read,请问是怎么回事?

  解决方法:先查杀一下病毒,另外如果你安装了浏览增强之类的软件,请卸掉。

  例八:从桌面或开始菜单中打开任何一个程序, 出现错误提示:"0x…….."指令引用的"0x00000000"内存,该内存不能为"read"。省略号代表可变值。而从运行中打开程序没问题。

  解决方法:运行regedit进入注册表, 在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShellExecuteHooks下,应该只有一个正常的键值"{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 将其他的删除(默认键值当然不要删除)。这一条很常见。

  例九:我三个月前配了台机子。系统比较不稳定,三个月内已经重装过多次系统,四五天前刚装过系统,可是经常随机地出现Explorer-应用程序错误,“0x4a01259d“指令引用的“0x00000000"内存。该内存不能为“read"。要终止程序,请单击“确定“。要调试程序,请单击“取消”。如果点确定,windows桌面就不见了。这种问题在之前的系统也出现过,不知道是不是硬件的问题?

  解决方法:内存的兼容性问题!遇到这类问题,用户可以自行打开机器把内存的位置调动一下,看问题是否可以解决,如果问题依旧,可与你的朋友调换内存使用。

  通过上面的几个例子,可以看到,出现故障的原因有好多种,下面列出已经提到和有可能发生的原因,方便查阅。

问题产生原因

解决方法

内存条坏了

更换内存条

双内存不兼容

使用同品牌的内存或只用一条内存

内存质量问题

更换内存条

散热问题

加强机箱内部的散热

内存和主板没插好或和其它硬件不兼容等

重插内存或换个插糟

硬盘有问题

更换硬盘

驱动问题

重装驱动。如果是新系统,要先安装主板驱动

软件损坏

重装软件

软件有BUG

打补丁或用最新的版本

软件和系统不兼容

给软件打上补丁或者试试系统的兼容模式

软件和软件之间有冲突

如果最近安装了什么新软件,卸载了试试

软件要使用到其它相关的软件有问题

重装相关软件。比如播放某一格式的文件时出错,可能是这个文件的解码器有问题

病毒问题

杀毒

杀毒软件与系统或软件冲突

由于杀毒软件是进入底层监控系统的,可能与一些软件冲突,卸载了试试

系统本身有问题

有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序,像SP的补丁,最好要打上。如果还不行重装系统或更换其它版本的系统了

  Windows系统出现内存错误

  使用Windows操作系统的人有时会遇到这样的错误信息:“0X????????指令引用的0x00000000内存,该内存不能written”,然后应用程序被关闭。如果去请教一些“高手”,得到的回答往往是“Windows就是这样不稳定”之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的常见原因。

  一、应用程序没有检查内存分配失败

  程序需要一块内存用以保存数据时,就需要调用操作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。

  内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的“健壮性”。

  若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。

  内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。

  二、应用程序由于自身BUG引用了不正常的内存指针

  在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向操作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写操作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被操作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!

  像这样的情况都属于程序自身的BUG,你往往可在特定的操作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。

  如果系统经常有所提到的错误提示,下面的建议可能会有帮助:

  1.查看系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致操作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。

  2.更新操作系统,让操作系统的安装程序重新拷贝正确版本的系统文件、修正系统参数。有时候操作系统本身也会有BUG,要注意安装官方发行的升级程序。

  3.试用新版本的应用程序。

今天终于把350D搞到手了,呵呵。这台机器总体说来感觉还不错,但标配的镜头就寒酸了点。是18-55的,一般用用还行。如果要好一点的,就必须去买Canon的其它镜头了。17-85的头就比较不错了,但是价格呢,呵呵呵呵。

就先熟悉熟悉下机器看看吧,功能到是蛮多的,说明书都是厚厚的一本。慢慢研究了~白天试拍了几张,感觉还不错。呵呵

漫谈硬盘彻底损坏后的数据抢救
作者:52硬件

  伴随着科技的发展,80G、120G的硬盘在普通用户中都已经屡见不鲜了。但是,在长时间的使用硬盘过程中,我们也在承受着硬盘随时也会出错的风险,轻则硬盘的数据丢失,重则整个硬盘报废,造成不可预料的严重后果。采用什么办法,才能解决常见的硬盘数据丢失故障,成为用户十分关注的问题。

一、硬盘的分区
  对于你手中硬盘来说,首先要做的事情就是分区了。硬盘分区是否合理直接影响到以后工作的便利性和数据的安全性。我们最常见到的分区表错误也是硬盘的最严重错误,不同错误的程度会造成不同的损失。如果是没有活动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过fdisk重置活动分区可进行修复。如果是某一分区类型错误,会造成某一分区的丢失。

  在一般情况下完成硬盘分区之后,会形成3种形式的分区状态;即主分区、扩展分区和非DOS分区。在硬盘中非DOS分区(Non-DOS Partition)是一种特殊的分区形式,它是将硬盘中的一块区域单独划分出来供另一个操作系统使用,对主分区的操作系统来讲,是一块被划分出去的存储空间。只有非DOS分区内的操作系统才能管理和使用这块存储区域,非DOS分区之外的系统一般不能对该分区内的数据进行访问。

  主分区则是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软区或光区之后可对硬盘进行读写。

  而扩展分区的概念是比较复杂的,极容易造成硬盘分区与逻辑磁盘混淆;分区表的第四个字节为分区类型值,正常的可引导的大于32mb的基本DOS分区值为06,扩展的DOS分区值是05。如果把基本DOS分区类型改为05则无法启动系统 ,并且不能读写其中的数据。如果把06改为DOS不识别的类型如efh,则DOS认为改分区不是DOS分区,当然无法读写。很多人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正常。分区表中还有其他数据用于纪录分区的起蓟蛑罩沟刂贰U庑┦莸乃鸹到斐筛梅智幕炻一蚨В话阄薹ń惺止せ指?,唯一的方法是用备份的分区表数据重新写回,或者从其他的相同类型的并且分区状况相同的硬盘上获取分区表数据,否则将导致其他的数据永久的丢失。由于微机操作系统仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,所以操作系统只允许存储4个分区的数据,实际使用中4个逻辑磁盘往往不能满足需求;我们常说的硬盘扩展分区,它只是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。所以一旦单向链表发生问题,将会导致逻辑磁盘的丢失。

二、硬盘的数据恢复

1、误格式化硬盘数据的恢复
  在DOS高版本状态下,格式化操作format在缺省状态下都建立了用于恢复格式化的磁盘信息,实际上是把磁盘的DOS引导扇区,fat分区表及目录表的所有内容复制到了磁盘的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变 。我们都知道在DOS时代有一个非常不错的工具UnFormat,它可以恢复由Format命令清除的磁盘。如果用户是在DOS下使用Format命令误格式化了某个分区的话,可以使用该命令试试。不过UnFormat只能恢复本地硬盘和软件驱动器,而不能恢复网络驱动器。UnFormat命令除了上面的反格式化功能,它还能重新修复和建立硬盘驱动器上的损坏分区表。

  但目前UnFormat已经显得有点“力不从心”了,再使用它来恢复格式化后分区的方法已经有点过时了,我们可以使用多种恢复软件来进行数据恢复,比如使用Easyrecovery 6.0和Finaldata2.0等恢复软件均可以方便的进行数据恢复工作。另外DOS还提供了一个miror命令用于纪录当前的磁盘的信息 ,供格式化或删除之后的恢复使用,此方法也比较有效。

2、零磁道损坏时的数据恢复
  硬盘的主引导记录区(MBR)在零磁道上。MBR位于硬盘的0磁道0柱面1扇区,其中存放着硬盘主引导程序和硬盘分区表。在总共512字节的硬盘主引导记录扇区中,446字节属于硬盘主引导程序,64字节属于硬盘分区表(DPT),两个字节(55 AA)属于分区结束标志。零磁道一旦受损,将使硬盘的主引导程序和分区表信息将遭到严重破坏,从而导致硬盘无法引导。0磁道损坏判断:系统自检能通过,但启动时,分区丢失或者C盘目录丢失,硬盘出现有规律的“咯吱……咯吱”的寻道声,运行SCANDISK扫描C盘,在第一簇出现一个红色的“B”,或者Fdisk找不到硬盘、DM死在0磁道上,此种情况即为零磁道损坏!

  零磁道损坏属于硬盘坏道之一,只不过它的位置相当重要,因而一旦遭到破坏,就会产生严重的后果。如果0磁道损坏,按照目前的普通方法是无法使数据完整恢复的,通常0磁道损坏的硬盘,可以通过PCTOOLS的DE磁盘编辑器(或者DiskMan)来使0磁道偏转一个扇区,使用1磁道来作为0磁道来进行使用。而数据可以通过Easyrecovery来按照簇进行恢复,但数据无法保证得到完全恢复。

3、分区表损坏时的数据修复
  硬盘主引导记录(MBR)所在的扇区也是病毒重点攻击的地方,通过破坏主引导扇区中的DPT(分区表),就可以轻易地损毁硬盘分区信息,达到对资料的破坏目的。分区表的损坏是分区数据被破坏而使记录被破坏的。所以,我们可以使用软件来进行修复。

  一般情况下,硬盘分区之后,要备份一份分区表至软盘、光盘或者移动存储活动盘上。在这方面,国内著名的杀毒软件KV3000系列和瑞星都提供了完整的解决方案。但是,对于没有备份分区表的硬盘来说,虽然KV3000也提供了相应的修复方法,不过成功率相对就要低很多了。在恢复分区上,诺顿磁盘医生NDD是绝对强劲的工具,可以自动修复分区丢失等情况,可以抢救软盘坏区中的数据,强制读出后搬移到其它空白扇区。在硬盘崩溃或异常的情况下,它可能带给用户一线希望。在出现问题后,用启动盘启动,运行NDD,选择Diagnose进行诊断。NDD会对硬盘进行全面扫描,如果有错误的话,它会向你提示,然后只要根据软件的提示选择修复项目即可,而且这些问题它都能轻轻松松地解决。

  另外,大家非常熟悉的中文磁盘工具DiskMan,在重建分区表方面具有非常实用的功能,用于修复分区表的损坏是最合适不过了。如果硬盘分区表被分区调整软件(或病毒)严重破坏,必将引起硬盘和系统瘫痪的严重后果,而DiskMan可通过未被破坏的分区引导记录信息重新建立分区表。只要在菜单的工具栏中选择“重建分表”,DiskMan即开始搜索并重建分区。使用过程之中,DiskMan将首先搜索0柱面0磁头从2扇区开始的隐含扇区,寻找被病毒挪动过的分区表。紧接着要搜索每个磁头的第一个扇区。整个搜索过程是采用“自动”或“交互”两种方式进行。自动方式保留发现的每一个分区,适用于大多数情况。交互方式对发现的每一个分区都会给出提示,由用户选择是否保留。当采用自动方式重建的分区表一旦出现不正确的故障时,我们可以采用交互方式重新进行搜索。

  但是,重建分区表功能也不能保证做到百分之百的修复好硬盘分区表。所以要记住“求谁也不如求自己”还是保护好自己的硬盘吧!尽量避免硬件损伤以及病毒的侵扰,一定要做好分区表的备份工作;如果没有做备份的话,请下载一个DISKGEN软件,然后在工具选项中,选备份分区表,一般默认是备份到软驱上面的,如果你没有软驱,就要改一下路经,输出到硬盘目录里。然后你应该把这个备份文件刻录到光盘或者是拷贝到U盘里,千万不要放到硬盘里哦,那样就与没有备份的效果一个样了!

4、误删除之后的数据恢复
  在计算机使用过程中我们最常见的数据恢复就是误删除之后的数据恢复了,但是在这个时候一定要记住,千万不要再向该分区或者磁盘写入信息,因为刚被删除的文件被恢复的可能性最大。实际上当用fdisk删除了硬盘分区之后,表面现象是硬盘中的数据已经完全消失,在未格式化时进入硬盘会显示无效驱动器。如果了解fdisk的工作原理,就会知道,fdisk只是重新改写了硬盘的主引导扇区(0面0道1扇区)中的内容 。具体说就是删除了硬盘分区表信息,而硬盘中的任何分区的数据均没有改变。由于删除与格式化操作对于文件的数据部分实质上丝毫未动,这样,就给文件恢复提供了可能性。我们只要利用一些反删除软件(它的工作原理是通过对照分区表来恢复文件的),用户可以轻松地实现文件恢复的目的。同时误格式化同误删除的恢复方法在使用上基本上没有大的区别,只要没有用Fdisk命令打乱分区的硬盘(利用FDISK命令对于40G以内的硬盘进行分区,还是很方便实用的,所有启动盘上都有,主板支持也没有任何问题),要恢复的文件所占用的簇不被其他文件占用,这样,格式化前的大部分数据仍是可以被恢复的。而且如果你的Windows系统还可以正常使用的话,那么最简单的恢复方法就是用Windows版EasyRecovery软件,它恢复硬盘数据的功能十分强大,不仅能恢复被从回收站清除的文件,而且还能恢复被格式化的FAT16、FAT32或NTFS分区中的文件。

  该软件的使用方法十分简单,解压缩安装以后,运行EasyRecovery,出现主界面。左侧4个功能的按钮以及2个软件支持按钮,磁盘诊断可以帮助我们测试潜在硬件故障、监视并报告潜在驱动器故障、查看驱动器空间使用详细资料、IDE硬盘跳线设置、以及分析文件结构和创建可引导的诊断磁盘。而且6个功能按钮提供的数据恢复选项功能,对于我们需要的硬盘资料恢复来说至关重要,EasyRecovery Professional提供了多种数据恢复选项。其中包括:使用高级选项自定义数据恢复功能、查找并恢复已删除文件、从一个已格式化的卷中恢复文件、不以来任何文件系统结构信息进行恢复此软件还可以保存恢复数据进度以及创建可引导的紧急引导软盘。

  实际操作中,我们将选择高级选项自定义数据恢复功能来进行数据恢复操作,经过扫描系统会显示磁盘驱动器信息,在这里我们选择了恢复资料的硬盘分区C盘,按照提示要求,点击“下一步”后软件EasyRecovery Professional将自动扫描分区,之后会把所有详细文件信息显示出来,其中包括目前还存在的和已经被删除的文件。紧接着要选中你想恢复的文件,选择“下一步”进入到选择目标位置屏幕,过一会后EasyRecovery成功的找回了丢失的文件,这时选择“取消”退出该工具即可。

  以上是当我们遇到硬盘数据丢失后如何进行数据恢复的几种方法,相信这些对于电脑高手的朋友们来说真的不算什么,但还有不少初学电脑的朋友在为硬盘数据的丢失而苦恼啊!通过今天简单介绍的几种方法,衷心希望能对大家有点帮助。