VHDX 虚拟磁盘格式结构

Windows 8中支持的VHDX虚拟磁盘格式,以下是虚拟磁盘结构代码。

 

ReFS文件系统结构

        ReFS文件系统是微软为新的服务器版本准备的文件系统,具体介绍可以参阅“ReFS文件系统介绍”,里面介绍的非常详细,目前还没有发现针对ReFS文件系统研究的资料,以下是我自己摸索出来的,仅供参考。
        ReFS文件系统使用的分区类型描述依然是07,与NTFS一样,DBR部分如下所示,把我做的WinHex模板贴出来。

 

/*------------------------------------------------------------------------------------------*/

template "Boot Sector ReFS"
description "Boot sector of an ReFS partition"
applies_to disk
sector-aligned

requires 0x03 "52 65 46 53" // ID must be "ReFS"

begin
 move 3
 char[4]    "File system ID"
 move 9
 char[4]    "FSRS"
 uint16    "Bytes per sector ?"
 hex 2     "Unknown"
 int64     "Total sectors"
 uint32    "Bytes per sector ?"
 uint32    "Sectors per cluster"
 hex 8     "01 01 00 00 00 00 00 00"
 move 8
 hex 4     "32-bit serial number (hex)"
 move -4
 hex 8     "64-bit serial number (hex)"
end

/*------------------------------------------------------------------------------------------*/

 

httpd.ini 伪静态设置

什么是网页的伪静态技术?

使用ISAPI Rewrite与Apache Rewrite是有区别的,主要是URL重写规则细节上,ISAPI[一般是windows系统]重写需要使用httpd.ini文件,而Apache[一般是unix系统]则使用.htaccess文件,通过对URL重写实例谈谈使用httpd.ini文件基于ISAPI Rewrite重写URL路径。目前使用的是wordpress程序,虽然前台已经全部重新架构,但URL路径还是使用原有简单的URL,如一篇文章的URL路径:http://www.adminjet.com/?p=1119,分类使用?cat=162等。

本文以httpd.ini重写文章URL路径为例,其它URL重写原理一样。

重写前URL路径:http://www.adminjet.com/p1119.html[这是需要实现的URL地址]
重写后URL路径:http://www.adminjet.com/?p=1119[这也是当前的URL地址]

一,新建httpd.ini文件

二,打开httpd.ini文件并增加如下重写规则

  1. [ISAPI_Rewrite]
  2. RewriteRule ^/p([0-9]+)\.html /index\.php\?p=$1 [L]

注意其中的一些细节,反斜杠\部分,这个非常重要[或许你会漏掉这句话,但如果你看到了将会省很多的调试时间],对于特殊字符要使用反斜杠\。

  1. RewriteRule ^/p([0-9]+)\.html /index\.php\?p=$1 [L]

其规则为匹配使有p开头的字符,其中参数部分$1只能是数字[0-9],并以.html结束,如p1119.html,就会匹配为index.php?p=1119,这样程序就能正常的读取ID为1119的文章。

三,上传到你空间的根目录

四,开始调试,调试过程可多刷新页面

同样的URL重写,如果是在apache下的.htaccess则使用如下语句:

  1. RewriteEngine on
  2. RewriteRule ^p([0-9]*).html$ index.php?p=$1 [L]

现在来对比这两者的区别:

  1. ISAPI Rewrite:
  2. RewriteRule ^/p([0-9]+)\.html /index\.php\?p=$1 [L]
  1. Apache Rewrite:
  2. RewriteRule ^p([0-9]*).html$ index.php?p=$1 [L]

区别就是一些反斜杠,这对于调试非常重要,其它具体的知识大家可参考相应的文档,简单实现你的ISAPI Rewrite重写URL路径。

ASP网站程序在国内运用很广,但是类似于im286.asp?id=20050307213811这样的URL有点不利于搜索引擎的收录,也就是说不符合友好URL(URLs-Friendly)的标准,那么我们用ISAPI_Rewrite打造一个Clean URL,

1.下载ISAPI_Rewrite.ISAPI_Rewrite分精简(Lite)和完全(Full)版.精简版不支持对每个虚拟主机站点进行重写,只能进行全局处理.不过对于有服务器的朋友,精简版也就够啦.精简版下载地址:http://www.helicontech.com /download/,就是那Lite Version (free)啦.

2.安装.msi的文件,和装一般程序一样装就可以了,俺就装在D:\ISAPI_Rewrite.

3.接下来一步比较重要哦,看仔细喽.打开Internet 信息服务,右键,web站点属性,电ISAPI筛选器选项卡.添加筛选器,名称自己填,路径自己指定ISAPI_Rewrite.dll,然后确定.

 

 

4.来测试一下.新建一个1ting.asp,里面写上

   <%=request.querystring("inso")%>
 

,效果就是执行的时候1ting.asp?inso=*浏览器显示*.

5.这一步很重要哦,开始添加rewrite规则.正则,好头痛,幸亏这个例子比较简单.
找到ISAPI_Rewrite目录,把httpd.ini的只读属性去掉,打开编辑.我们要把1ting.asp?inso=im286映射成为1ting-im286.html这样的类型,需要在httpd.ini里加上这么一行:
   
RewriteRule /1ting-([0-9,a-z]*).html /1ting.asp\?inso=$1

,保存.

6.来来来,到浏览器里查看一下效果吧.输入http://127.0.0.1/1ting.asp?inso=im286http://127.0.0.1/1ting-im286.html,显示的内容是不是都是im286?这就证明成功啦!

嘿嘿,1ting-im286.html这样的页面要比1ting.asp?inso=im286容易收入,所以现在还在用动态方式的朋友可以尝试一下这样的静态映射效果. IIS Rewrite也可以实现这样的功能。

------------------------------------------------------

ASP之URL重写

下载ISAPI_Rewrite解压到任意文件夹安装,给IIS用户读取权限,在IIS右键点击一个站点,属性,ISAPI筛选器,添加,筛选器名称一定得叫 re,可执行文件就点浏览找到你解压的目录Rewrite.dll加上即可。

  重启IIS后应该就能支持URL重写规则了。

  需要修改解压目录中的httpd.ini这个文件

RewriteRule /info_(\d+)\.htm /info\.asp\?id=$1 [N,I]

这句话就可以把提交的地址http://www.xxx.com/info_122.htm映射到真正的地址 http://www.xxx.com/info.asp?id=122

如果你在处理数据翻页,那么写法是:

More_<%=Page%>_<%=type%>.html (注:page是翻页页数,type是数据类型)
表现形式:More_1_95.html

如果翻下一页,则为:More_2_95.html,继续下一页的循环,则是:
More_3_95.html,以此类推。

不过你需要在httpd.ini文件中增加以下代码:
RewriteRule /More_(\d+)_(\d+)\.html /jsp/more\.jsp\?page=$1&type=$2 [N,I]

如果你的动态程序有多个参数需要传递,那么就增加多个(\d+)即可,如下:

RewriteRule /More_(\d+)_(\d+)_(\d+)\.html /jsp/more\.jsp\?page=$1&type=$2&type2=$3 [N,I]

翻页处理表现形式是:More_1_95.html

如果想把http://www.xxx.com/info.asp?id=50#abc 转换成静态的网页
因为#abc是程序处理了ID=50这个变量生成静态页面之后按锚点又做了一次页内链接,所以应该这么做映射
http://www.xxx.com/info.asp?id=50#abc69

换成http://www.xxx.com/info_50.htm#abc,重写规则如下:
RewriteRule /info_(\d+)\.htm#(\d+) /info\.asp\?id=$1#$2 [N,I]

注意:以前在Window 2000 IIS5.0一直使用ISAPI_Rewrite进行动态链接重写HTML静态网址,

硬盘变小恢复方法

我的硬盘的容量莫名其妙的减小了!怎样可以恢复它的原始容量?

有下面几种原因会导致你的硬盘丢失数M甚至数G的空间:

  • 你的操作系统不支持LBA48位寻址模式
  • 你混淆了二进制和十进制的表示方法
  • 你的电脑主板在你的硬盘上创建了一个隐藏的区域用来备份二进制代码
  • 你的电脑/笔记本电脑生产商在你的硬盘上创建了一个隐藏的区域来备份操作系统的安装文件(系统自动恢复)
  • 你使用了某种软件设置了HPA(Host Protected Area,主机保护区),破坏了DCO(Device Configuration Overlay,设备配置代码),或者关闭了LBA48的支持
  • 跳线设置错误
  • 硬盘的故障

现在我将逐条的进行详细分析。

  • 操作系统不支持LBA-48位寻址模式

Windows 95,Windows98和Windows ME即使安装了所有的补丁也不能支持大硬盘(>137GB)。虽然有方法可以解决这个问题,但是由于现在很少使用这些系统了,所有就没有必要再啰嗦了。

Windows 2000,2003,和XP默认设置是不支持大硬盘的;你必须安装最新的补丁包来支持大硬盘。Windows XP SP2版可以完美的支持大硬盘;

Windows 2000必须安装补丁文件。

Windows Vista可以完美的支持大硬盘。

  • 二进制和十进制的表示方法

硬盘生产商使用十进制来表示,而操作系统使用二进制来表示。十进制的G表示1,000,000,000个字节(1000 x 1000 x 1000),而二进制的G表示1,073,741,824字节(1024 x 1024 x 1024)--相差7%!所以,你的300GB的硬盘在Windows系统中会显示为279GB。

  • 主板创建了HPA

主板再硬盘上创建了一个主机保护区来存储数据。通常这个区域不会大于10M,所以不用为此担心。

  • 电脑/笔记本生产商创建了HPA

电脑生产商在你的硬盘商创建了一个主机保护区来存储操作系统和程序的镜像。当进行系统恢复时就会用到这个区域中的护具。通常这个区域比较大(8-20GB)。

在这种情况下,使用一些专业的工具,如HDD Capacity Restore或MHDD可以恢复硬盘的原始容量。要进行此操作,需要将硬盘从原来的主机上拆卸下来安装到其它主机上因为原来的主机为了防止破坏隐藏区域,可能会禁用HPA/DCO指令。

  • 可以设置HPA和DCO的软件

例如,MHDD。MHDD可以在硬盘上设置HPA,因此硬盘的容量无论在BIOS中还是在操作系统中都会减小。MHDD还可以访问DCO(设备配置码),它不但可以更改硬盘的容量,还可以设置硬盘的功能,例如LBA48支持,加密指令等。

有些生产商(如Dell和HP)由于市场的原因人为使用DCO来减小硬盘容量。例如:他们要生产1,000,000台配置40GB硬盘的计算机,但是他们的仓库里只有80GB的硬盘。他们就会使用他们自己的DCO工具来将硬盘的容量锁定为40GB。

  • 跳线设置硬盘的容量

大部分硬盘都有一个特别的跳线设置方法来将硬盘的容量限制为32GB或128(137)GB。

  • 硬盘故障

例如硬盘固件缺陷(这种现象是非常多的)。

另外,有时候MBR主引导区损坏也可能或导致BIOS或操作系统不能检测到正确的硬盘容量。在这种情况下需要使用清零工具来将MBR清零。

有时候,一个严重损坏的硬盘也可能会显示错误的容量。在这种情况下你无法修复它。

  • 解决方法:恢复硬盘容量

1、检查跳线。一般在硬盘的表面都有跳线设置说明,按照说明正确设置跳线。

2、检查你的操作系统,是否安装了所有的升级补丁?

3、检查硬盘分区。运行Windows磁盘管理器,查看是否有未分区的空间。

4、如果以上方法都没有解决问题,那么可以使用下面这个工具来分析你的硬盘的LBA48,HPA和DCO状态并将其恢复为原始设置。

HDD Capacity Restore程序

HDD Capacity Restore程序

你所需要做的即使运行它并点击Restore Capacity。然后此程序就会完成所有的工作。

强烈建议你在运行此程序之前先关闭计算机断电再启动。

如果此程序没有成功恢复硬盘空间,那么很可能是你的电脑主板阻止了HPA和DCO命令。你可以在BIOS设置中查看是否有DCO或HPA字样。如果还不行,就换一台电脑。如果你足够勇敢,你也可以这样做:运行程序,选择你的硬盘,然后当你看到Restore Capacity按钮时,关闭硬盘的电源然后再加电。注意:你要自己承担所有的后果!

当程序运行完毕后(3-20秒),你需要关闭你的电脑的电源,等待10-20秒钟再打开。

 

提供恢复:http://www.datarelab.com/blog/DataRecoveryServer.html

ReFS文件系统介绍

  随着Windows 8 Beta版发布的临近,Windows 8的消息也越来越多。近日,Windows 8官方博客公开了将在Windows 8上运用的ReFS文件系统,全新的ReFS文件系统能够处理大量文件,检测损坏文件,并实现跨级存储共享。

  据Windows 8官方博客介绍,微软开发的全新ReFS文件系统旨在满足Windows系统当前和今后的存储需求。

  ReFS在NTFS的基础上保持了良好的兼容性,且只需像目前存在的文件系统一样插入存储栈即可。ReFS目前只会提供给Windows Server 8,因此大部分Windows 8用户将无法在ReFS发布之初体验其性能改进。微软计划在Windows8客户端安装该文件系统前进行全面测试。一旦测试完成,ReFS将与 Windows 8的新功能“Storage Spaces(存储空间)”结合,使得Windows 8的存储性能更加完整。

存储能力更强!微软出Win8新文件系统ReFS
ReFS在NTFS的基础上保持了良好的兼容性

  相比之前的文件系统,ReFS文件系统最大的优点便是:够使Windows 8检测各种磁盘损坏,支持数据分段,以及分配写时复制模式(COW)。

存储能力更强!微软出Win8新文件系统ReFS
ReFS文件系统1

存储能力更强!微软出Win8新文件系统ReFS
ReFS文件系统2

  尽管ReFS的存储能力很强,但其还是存在一定限制性,如在系统内存量、各种系统组件、以及数据处理和备份时间等。

存储能力更强!微软出Win8新文件系统ReFS
ReFS文件系统的限制