<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ubuntu,debian,redhat -linuxany.com &#187; ext3</title>
	<atom:link href="http://www.linuxany.com/archives/tag/ext3/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linuxany.com</link>
	<description>ubuntu,debian,redhat,fedora,centos</description>
	<lastBuildDate>Thu, 29 Jul 2010 13:01:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>无损转换ext3到ext4(UBUNTU)</title>
		<link>http://www.linuxany.com/archives/847.html</link>
		<comments>http://www.linuxany.com/archives/847.html#comments</comments>
		<pubDate>Fri, 02 Oct 2009 06:25:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[e2fsck]]></category>
		<category><![CDATA[ext3]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[tune2fs]]></category>

		<guid isPermaLink="false">http://www.linuxany.com/?p=847</guid>
		<description><![CDATA[Ubuntu Jaunty 9.04开始正式支持ext4文件系统，关于ext4，其优点应该早有听闻，对任何用户而言都具有难以拒绝的诱惑：对一般用户而言，有更好的磁盘性能，快速的预分配、删除，更可靠的日志，更迅速的磁盘检查（不会像ext3可能花几分钟来check，ext4经常是瞬间完成的）……更专业的描述可以看看IBM文库的这篇《Migrating to ext4》。
从Ubuntu 8.10升级到9.04，一定程度上是看上其对ext4的支持，不过如果为此重新格式化分区重装系统，对于使用积累较多的系统来说代价太高了点（PT现在用的系统是去年的8.04，后来升级8.10，再到现在的9.04……），不过根据《Migrating to ext4》的说法，从ext3到ext4的无损转换是可能的，而且并不耗时间，就如Kernel Wiki里面的Ext4 Howto提到转换所用的命令，其实也很简单：

tune2fs -O extents,uninit_bg,dir_index /dev/DEVe2fsck -fD /dev/DEV
查了下tune2fs的man页，uninit_bg是支持快速check的特性，dir_index则是创建二叉树散列的目录查找，至于extents在man页没提到，Kernel Wiki里面说是ext4专有的特性，完成后用e2fsck check一次，这样就完成ext4的转换了，整个过程的耗时并不多。
不过这样转换出来的分区有点不完美的地方是，原本存放在分区内的文件结构还是ext3的结构，由ext4的机制透明兼容，以后存放的文件才是ext4的格式。本来影响不大的，不过相信会影响众多完美主义者的精神状态，所以很多人宁愿把文件全复制出来，格式化了分区再复回去。
IBM的文章内提到，因为ext4支持了在线的碎片整理，对于转换的ext4，使用e4defrag整理一遍，就是纯种的ext4了，不过到目前为之，e4defrag并未完全可用。不过相信不久的将来，转换到纯种ext4完全可以一气呵成。
最近有谣言说/boot不能是ext4，不然grub引导不了。事实上Ubuntu 9.04已经完全支持ext4，不然此前怎么会有ext4系统的9.04 21秒引导系统的新闻？不过对于升级过来的9.04，安装在/boot/grub里面的程序还是旧版的，没有自动升级，因此可能出现引导问题，相信这也是谣言的出处，所以升级过来的同学要注意了。可以使用grub-install来重新安装一次grub的文件，就如《Upgrade Ubuntu 8.10 to Ubuntu 9.04 and ext3 to ext4 in 10 Minutes》那样。不过grub-install有点要注意，grub-install复制的文件是以/为起始位置的（特别是使用了&#8211;root-directory=DIR参数的），如果boot单独分区，同时在livecd里面单独挂载了出来，很可能新复制过去的文件会多了一层boot目录，变成新旧版的引导文件共存以致没法引导grub……(我也感觉我说得一塌糊涂了……总之boot独立分区的同学使用grub-install注意它安装到什么地方去了就好)。
对于从ext3升级到ext4的系统，还有重要的一点就是fstab，完成上述的操作后，先运行blkid查看分区的新UUID，用编辑器打开/etc/fstab，替换转换了的分区的UUID，当然还有挂载类型改成ext4。
您还可能感兴趣的内容linux目录数和文件数限制(目录下最大文件数)如何恢复 Linux 上删除的文件，第 3 部分如何恢复 Linux 上删除的文件，第 2 部分如何恢复 Linux 上删除的文件，第 1 部分]]></description>
		<wfw:commentRss>http://www.linuxany.com/archives/847.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何恢复 Linux 上删除的文件，第 3 部分</title>
		<link>http://www.linuxany.com/archives/141.html</link>
		<comments>http://www.linuxany.com/archives/141.html#comments</comments>
		<pubDate>Mon, 14 Jan 2008 04:39:11 +0000</pubDate>
		<dc:creator>x72</dc:creator>
				<category><![CDATA[1.Application]]></category>
		<category><![CDATA[e2undel]]></category>
		<category><![CDATA[ext2]]></category>
		<category><![CDATA[ext3]]></category>

		<guid isPermaLink="false">http://www.linuxplay.cn/index.php/archives/141</guid>
		<description><![CDATA[恢复系统中删除的文件是一个非常繁琐的过程，而 e2undel 这个工具可以用来方便地恢复文件系统中已删除的文件。本文将首先讨论 e2undel 的工作原理和用法，并对之进行一些改进。然后讨论了文件系统故障、文件系统重建、磁盘物理损坏等情况下应该如何恢复数据。
在本系列文章的前两部分中，我们介绍了 ext2 文件系统中各种文件在磁盘上的存储结构，以及如何利用 debugfs 工具的辅助，手工恢复这些文件的详细过程。
通过这两部分的学习，我们可以看出恢复系统中删除的文件是一个非常繁琐的过程，需要非常仔细地考虑各种情况，并且要保持足够的细心，才可能把数据准确无误地恢复出来。稍有差错，就会造成数据丢失的情况。聪明的读者肯定会想，如果有一些好工具来自动或辅助完成数据的恢复过程，那简直就太好了。
幸运的是，已经有人开发了这样一些工具，来简化用户的数据恢复工作，e2undel 就是其中功能最为强大的一个。
自动恢复工具 e2undel
回想一下，在 ext2 文件系统中删除一个文件时，该文件本身的数据并没有被真正删除，实际执行的操作如下：

在块位图中将该文件所占用的数据块标识为可用状态。
在索引节点位图中将该文件所占用的索引节点标识为可用状态。
将该文件索引节点中的硬链接数目设置为 0。
将该文件索引节点中的删除时间设置为当前时间。
将父目录项中该文件对应项中的索引节点号设置为 0，并扩展前一项，使其包含该项所占用的空间。

而索引节点中的一些关键信息（或称为元数据，包括文件属主、访问权限、文件大小、该文件所占用的数据块等）都并没有发生任何变化。因此只要知道了索引节点号，就完全可以用本系列文章介绍的技术将文件完整地从磁盘上恢复出来了，这正是 e2undel 之类的工具赖以生存的基础。
然而，由于所删除的文件在目录项中对应的项中的索引节点号被清空了，因此我们就无法从索引节点中获得文件名的信息了。不过，由于文件大小、属主和删除时间信息依然能反映文件的原始信息，因此我们可以通过这些信息来帮助判断所删除的文件是哪个。
e2undel 是由Oliver Diedrich 开发的一个用来恢复 ext2 文件系统中已删除文件的工具，它会遍历所检测的文件系统的索引节点表，从中找出所有被标记为删除的索引节点，并按照属主和删除时间列出这些文件。另外，e2undel 还提供了文件大小信息，并试图按照 file 命令的方式来确定文件类型。如果您使用 rm –rf * 之类的命令一次删除了很多文件，这种信息就可以用来非常方便地帮助确定希望恢复的是哪些文件。在选择要恢复的文件之后，e2undel 会从磁盘上读取该文件占用的数据块（这些数据块的信息全部保存在索引节点中），并将其写入到一个新文件中。下面我们来看一下 e2undel 这个工具的详细用法。
首先请从 e2undel 的主页（http://e2undel.sourceforge.net/）上下载最新的源码包（截止到撰写本文为止，最新的版本是 0.82），并将其保存到本地文件系统中。不过这个源码包在最新的 Fedora Core 8 上编译时可能会有些问题，这是由于 ext2 文件系统内部实现中一些数据结构的变化引起来的，读者可以下载本文“下载”部分给出的补丁来修正这个问题（请下载这个补丁文件 e2undel-0.82.patch，并将其保存到与源码包相同的目录中）。要想编译 e2undel，系统中还必须安装 e2fsprogs 和 e2fsprogs-devel 这两个包，其中有编译 e2undel 所需要的一些头文件。Fedora Core 8 中自带的这两个包的版本号是 1.39-7：
清单1. 确认系统中已经安装了 e2fsprogs [...]]]></description>
		<wfw:commentRss>http://www.linuxany.com/archives/141.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何恢复 Linux 上删除的文件，第 2 部分</title>
		<link>http://www.linuxany.com/archives/140.html</link>
		<comments>http://www.linuxany.com/archives/140.html#comments</comments>
		<pubDate>Mon, 14 Jan 2008 04:34:02 +0000</pubDate>
		<dc:creator>x72</dc:creator>
				<category><![CDATA[1.Application]]></category>
		<category><![CDATA[e2undel]]></category>
		<category><![CDATA[ext2]]></category>
		<category><![CDATA[ext3]]></category>

		<guid isPermaLink="false">http://www.linuxplay.cn/index.php/archives/140</guid>
		<description><![CDATA[除了普通文件之外，UNIX/Linux 中还存在一些特殊的文件，包括目录、字符设备、块设备、命名管道、socket 以及链接；另外还存在一些带有文件洞的文件，这些特殊文件的恢复是和其存储机制紧密联系在一起的，本文将从这些特殊文件的存储原理和机制入手，逐步介绍这些特殊文件的恢复方法。
在本系列文章的第一部分中，我们介绍了 ext2 文件系统中的一些基本概念和重要数据结构，并通过几个实例学习了如何恢复已经删除的文件，最后通过修改 2.6 版本内核中 ext2 文件系统的实现，解决了大文件无法正常恢复的问题。
通过第一部分的介绍，我们已经知道如何恢复系统中删除的普通文件了，但是系统中还存在一些特殊的文件，比如我们熟悉的符号链接等。回想一下在本系列文章的第一部分中，目录项是使用一个名为 ext2_dir_entry_2 的结构来表示的，该结构定义如下：
清单1. ext2_dir_entry_2 结构定义



                 struct ext2_dir_entry_2 {         __le32  inode;             [...]]]></description>
		<wfw:commentRss>http://www.linuxany.com/archives/140.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何恢复 Linux 上删除的文件，第 1 部分</title>
		<link>http://www.linuxany.com/archives/139.html</link>
		<comments>http://www.linuxany.com/archives/139.html#comments</comments>
		<pubDate>Mon, 14 Jan 2008 04:32:37 +0000</pubDate>
		<dc:creator>x72</dc:creator>
				<category><![CDATA[1.Application]]></category>
		<category><![CDATA[e2undel]]></category>
		<category><![CDATA[ext2]]></category>
		<category><![CDATA[ext3]]></category>

		<guid isPermaLink="false">http://www.linuxplay.cn/index.php/archives/139</guid>
		<description><![CDATA[要想恢复误删除的文件，必须清楚数据在磁盘上究竟是如何存储的，以及如何定位并恢复数据。本文从数据恢复的角度，着重介绍了 ext2 文件系统中使用的一些基本概念和重要数据结构，并通过几个实例介绍了如何手工恢复已经删除的文件。最后针对 ext2 现有实现存在的大文件无法正常恢复的问题，通过修改内核中的实现，给出了一种解决方案。
对于很多 Linux 的用户来说，可能有一个问题一直都非常头疼：对于那些不小心删除的数据来说，怎样才能恢复出来呢？大家知道，在 Windows 系统上，回收站中保存了最近使用资源管理器时删除的文件。即便是对于那些在命令行中删除的文件来说，也有很多工具（例如recover4all，FinalData Recovery）可以把这些已经删除的文件恢复出来。在Linux 下这一切是否可能呢？
实际上，为了方便用户的使用，现在 Linux 上流行的桌面管理工具（例如gnome和KDE）中都已经集成了回收站的功能。其基本思想是在桌面管理工具中捕获对文件的删除操作，将要删除的文件移动到用户根目录下的 .Trash 文件夹中，但却并不真正删除该文件。当然，像在 Windows 上一样，如果用户在删除文件的同时，按下了 Shift 键并确认删除该文件，那么这个文件就不会被移动到 .Trash 文件夹中，也就无从恢复了。此时，习惯了使用 Windows 上各种恢复工具的人就会顿足捶胸，抱怨 Linux 上工具的缺乏了。但是请稍等一下，难道按照这种方式删除的文件就真的无从恢复了么？或者换一个角度来看，使用 rm 命令删除的文件是否还有办法能够恢复出来呢？
背景知识
在开始真正进行实践之前，让我们首先来了解一下在 Linux 系统中，文件是如何进行存储和定位的，这对于理解如何恢复文件来说非常重要。我们知道，数据最终以数据块的形式保存在磁盘上，而操作系统是通过文件系统来管理这些数据的。ext2/ext3 是 Linux 上应用最为广泛的文件系统，本文将以 ext2 文件系统为例展开介绍。
我们知道，在操作系统中，文件系统是采用一种层次化的形式表示的，通常可以表示成一棵倒置的树。所有的文件和子目录都是通过查找其父目录项来定位的，目录项中通过匹配文件名可以找到对应的索引节点号（inode），通过查找索引节点表（inode table）就可以找到文件在磁盘上的位置，整个过程如图1所示。
图 1. 文件数据定位过程

对于 ext2 类型的文件系统来说，目录项是使用一个名为 ext2_dir_entry_2 的结构来表示的，该结构定义如下所示：
清单 1. ext2_dir_entry_2 结构定义



            [...]]]></description>
		<wfw:commentRss>http://www.linuxany.com/archives/139.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
