⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logfile.html

📁 中文的NTFS文件系统结构说明文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//ZH_CN">
<!-- http://linux-ntfs.sourceforge.net/ntfs/files/attrdef.html -->

<html lang="ZH_CN">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="description" content="NTFS Documentation">
    <link rel="stylesheet" type="text/css" href="../style/ntfsdoc.css">
    <link rel="start" type="text/html" href="../index.html" title="NTFS Documentation">
    <title>$LogFile (2) - File - NTFS Documentation</title>
  </head>

  <body>
    <table border="0" class="toolbar" summary="" cellspacing="0">
      <tr>
        <td class="toolbar"><div class="toolbar"><a accesskey="1" class="toolbar" href="../index.html">主页</a></div></td>        <td class="toolbar"><div class="toolbar"><a accesskey="2" class="toolbar" href="../files/index.html">文件</a></div></td>        <td class="toolbar"><div class="toolbar"><a accesskey="3" class="toolbar" href="../attributes/index.html">属性</a></div></td>        <td class="toolbar"><div class="toolbar"><a accesskey="4" class="toolbar" href="../concepts/index.html">概念</a></div></td>        <td class="toolbar"><a accesskey="5" class="toolbar" href="../help/glossary.html">词汇</a></td>
      </tr>
    </table>

    <h1>文件 - $LogFile (2)</h1>                               
    <a class="prevnext" accesskey="," href="mftmirr.html">前一页</a>
    <a class="prevnext" accesskey="." href="volume.html">后一页</a>                               

    <h2>概述</h2>

    <h2><a class="heading" href="../attributes/index.html">属性</a></h2>

    <table border="1" summary="" cellspacing="0">
      <tr>
        <th class="numeric">类型</th>
        <th>描述</th>
        <th>名称</th>
      </tr>
      <tr>
        <td class="numeric"><a class="numeric" href="../attributes/standard_information.html">0x10</a></td>
        <td><a href="../attributes/standard_information.html">标准信息文件 ($STANDARD_INFORMATION)</a></td>                             
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td class="numeric"><a class="numeric" href="../attributes/file_name.html">0x30</a></td>
        <td><a href="../attributes/file_name.html">文件名文件 ($FILE_NAME)</a></td>                             
        <td>$LogFile</td>
      </tr>
      <tr>
        <td class="numeric"><a class="numeric" href="../attributes/data.html">0x80</a></td>
        <td><a href="../attributes/data.html">数据文件 ($DATA)</a></td>                             
        <td>[未命名]</td>
      </tr>
    </table>

    <h2>文件结构</h2>
    <h3>未命名数据流</h3>

    <p>
    对日志文件了解很少
    </p>

    <!--
    <table border="1" summary="" cellspacing="0">
      <tr>
        <th></th>
      </tr>
      <tr>
        <td></td>
      </tr>
    </table>
    -->

    <h2>注意</h2>

    <h3>其他信息</h3>

    <p>
    日志区域是由一个4KB的日志记录序列组成的,每个日志记录结构如下:    </p>

    <pre>
    偏移(长度)        内容
    0(4)             幻数 'RCRD'
    1E(12)           修正或固定
    </pre>

    <p>
    按照推测,日志记录包含一序列不同大小的记录,它们的结构不清楚。文件2是$LogFile,它包含处理事务的                           
    记录以保证在系统瘫痪的时候数据的完整性。如37页提到的,它由2个重新启动区的拷贝和无限的日志区组成。 
    </p>

    <p>如果要把一个文件写到一个存储单元上,你必须修正这个文件本身以添加此文件系统的一些表格(例如文件
    数据)。在此,你要经过两个操作步骤(修正文件自身,修正文件数据)。</p>

    <p>如果此项任务完成,可以确认文件被写到存储单元上,并且文件系统处于定义的状态。</p>

    <p>如果不能完成此项任务(例如如果系统瘫痪或日常的系统故障),则文件系统处于未定义状态。把它恢复到                           
    定义(规定)状态的唯一途径(此操作称为“击退”)是把它放进一个特殊文件里,日志文件,那么就成功完成了                           
    对此项任务的操作。</p>

    <p>在系统故障后第一次进入磁盘时,系统读取日志文件并“击退”最近一项任务开端的所有操作。</p>

    <ul>
      <li>当系统写向日志文件时,此项操作必须是自动且立即的。</li>

      <li>
        你可以在很短的时间内把卷恢复回规定状态,恢复时间与磁盘大小无关,只与失败任务的复杂程度有关。<p>
        
        注意:此项操作不是由WINDOWS NT的chkdsk执行的,而是由系统执行的:此项标准可靠的操作功能是NTFS的特点。</p>                          
      </li>

      <li>如果你的硬件可靠,因为它的存在可确保你进入卷的所有文件的权限。但是不能恢复最终的数据丢失。</li>
    </ul>

    <pre>
    日志文件结构:
    两个重新启动区分布在最初的两页(重新启动页),如果卷没有被布置过,它们是一致的。
    
    然后是日志记录。它以一个记录标题开头,接着是日志文件大小。当卷被第一次格式化时不
    是所有的页面都包含日志记录,而是卷龄,所有的记录都会在用。当日志文件填充满时,处
    于开始位置的记录就会被清除(大概是通过修改the oldest_lsn),并且在文件开端开始写
    入。从而,此日志文件看起来象是一个循环体。
    
    日志文件的重新启动页标题(开始重新启动区)
    
    struct {
            NTFS_RECORD;                特征码是“RSTR” 
            __u64 chkdsk_lsn;           对于此重新启动页的检测磁盘的日志文序列号 。
                                        只有当特征码转到&quot;CHKD&quot;. = 0时才用到它。   
                                        
            __u32 system_page_size;     统页的比特大小,必须 &gt;= 512,而且是2的n次幂。
                                        可以用它来计算需要用的空间大小,并把它加到
                                        NTFS的ntfs.usa_offset里。然后验证结果
                                        小于restart_offset. = 0x1000。
                                       
            __u32 log_page_size;        志文件记录的大小,必须&gt;= 512,并且是2的n次幂。
                                        = 0x1000
            
            __u16 restart_offset;       从记录开始到重新启动记录的偏移比特。
                                        此值必须被排列为8比特边界 = 0x30
                                                                                
            __s16 minor_ver;            日志文件的低版本,如果低版本是1,只能检测。
                                        (&gt;=1同样对待,&lt;=0也行)
                                         
            __u16 major_ver;            日志文件的主流版本(=1但是=0是好的)
                  
    }  RESTART_PAGE_HEADER;

    日志文件重新启动区记录。把RESTART_PAGE_HEADER的偏移(位置)和restart偏移(位置)相加即可得
    到此记录的偏移值(位置)。   
     
    struct {
            __u64 current_lsn;          日志文件记录。= 0x700000, 0x700808
            
            __u16 log_clients;          紧跟在重新启动区后面的日志客户记录号=1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -