为FreeBSD UFS2 文件系统恢复受损的主超级块

2009-05-13 11:52:23来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


HOWTO: Recover damaged
[url=javascript:;]FreeBSD[/url]
UFS2 file systems with damaged master super-block
Copyright © Xin LI, 2006.
All Rights Reserved.
Redistribution
and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS
SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY
EXPRESS or IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR or CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, or CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS or SERVICES; LOSS OF USE,
DATA, or PROFITS; or BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, or TORT
(INCLUDING NEGLIGENCE or OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

意:本文介绍的方法部分,假定读者对UFS文件系统,以及FreeBSD的日常操作相当熟悉;请勿轻易执行本文介绍的操作,本文中的操作,可能导致
fsck_ffs(8)无法修正的严重问题。由于在此本人已明确告知读者这一风险,据此,对于由于执行这些操作导致的任何数据损失,本人明示不承担任何责
任。
FreeBSD的UFS文件系统的布局结构,在设计时已经考虑到了磁盘立体结构上发生各种损坏的可能性。UFS考虑到了磁盘可能发生单轨、整柱面或整面磁盘的数据发生损毁的可能性。

般而言,文件系统都需要保存带有“索引”或“描述”性质的关键数据,通常这种数据也称为“元数据”(metadata)。在UFS和UFS2文件系统中,
这些元数据包括了超级块(super-block)、柱面组记帐信息等。在UFS2文件系统中的每个超级块大约需要占用3个扇区,它包含了对整个文件系统
的描述性信息,因此对于文件系统而言,超级块是非常重要的。在最初的FFS(Berkeley Fast File
System,FreeBSD的UFS和UFS2文件系统,事实上是FFS的演化版本)设计中,为了使文件系统在遭到毁灭性打击,如硬盘发生整轨、整面或
全柱面损毁时能够得以恢复,在文件系统初始化时,会将超级块复制到整个磁盘的多个位置,以便在发生硬件损坏时能够读取。
有时,由于软件或临时性的硬件信号干扰,也会导致超级块损坏。在文件系统挂载时,系统只会读取主超级块的内容;此处也会保存一些记帐信息。主超级块在文件系统的生命周期内,会不断地发生修改,以反映文件系统目前的状态。为了确保备份的
[url=javascript:;]安全[/url]
,备份超级块不会跟进这些变动。在必要时,fsck_ffs(8)程序能够根据磁盘上的其它元数据,重新计算应该应用到超级块上的变动。
在FreeBSD
中,对于损毁严重的主超级块,系统会给出超级块不正确的提示而拒绝挂载;fsck_ffs(8)在不指定使用备份超级块时,也会出现类似的问题(我认为这

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:获取同一网段下所有机器MAC地址的办法

下一篇:ext3 文件系统超级块损坏的修复