e2image

e2Image程序将位于设备上的ext2、ext3或ext4文件系统元数据保存到由图像文件指定的文件中。通过对这些程序使用-i选项,image文件可以由dupe2fs和调试器来检查。这可以帮助专家恢复严重损坏的文件系统。

如果image文件是”-“,那么e2image的输出将被发送到标准输出,以便输出可以管道到另一个程序,如gzip(1)。(请注意,目前只有在使用-r选项创建原始image文件时才支持这一点,因为创建普通image文件或QCOW 2映像的过程目前需要对文件进行随机访问,这不能使用管道进行。)

最好为系统上的所有文件系统创建映像文件,并定期保存分区布局(可以使用fdisk-l命令生成)。image文件应该存储在它所包含的数据的文件系统以外的其他文件系统上,以确保在文件系统严重损坏的情况下可以访问这些数据。

为了节省磁盘空间,e2Image将image文件创建为稀疏文件,或以QCOW2格式创建。因此,如果需要将稀疏image文件复制到另一个位置,则应该首先对其进行压缩,或者使用GNU版本的cp ” sparse=always”选项。这不适用于QCOW2映像,它并不稀疏。

ext2映像文件的大小主要取决于文件系统的大小和正在使用的inode数量。对于一个典型的10GB文件系统,120万个节点中有20万个节点在使用,image文件将大约为35兆字节;在55万个节点中使用15000个节点的4G文件系统将产生一个3MB的image文件。image文件通常是可压缩的;占用磁盘上32 MB空间的image文件通常会压缩到3或4MB。

此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法

     e2image [ -rsI ] device image-file

 

2、选项列表

选项

说明

-I

将文件中的元数据恢复到分区

-r

创建raw格式的image

-Q

创建QCOW2格式的image

 

3、说明

1)“-I”选项

“-I”选项将导致e2Image将存储在映像文件中的元数据重新安装到设备上。它可用于在紧急情况下将文件系统元数据还原回设备。只有当其他选择失败时,才应该使用”-I”选项作为一种绝望措施。如果文件系统在创建image文件后发生了更改,数据将丢失。通常,您应该首先对文件系统进行完整的映像备份,以便以后尝试其他恢复策略。

2)“-r”选项

“-r”选项将创建一个原始image文件,而不是普通的image文件。原始image文件与普通image文件有两种不同之处。首先,将文件系统元数据放置在适当的位置,以便e2fsck、dupe2fs、调试器等。可以直接在原始image文件上运行。为了尽量减少原始映像文件占用的磁盘空间,将该文件创建为稀疏文件。(请注意使用不了解如何创建稀疏文件的实用程序复制或压缩/解压缩该文件;该文件将与文件系统本身一样大!)其次,原始image文件还包括标准image文件没有的间接块和目录块,尽管这在将来可能会发生变化。

当将文件系统作为bug报告的一部分发送给维护人员时,有时会使用原始映像文件到e2fsprogs。当以这种方式使用时,建议的命令如下(用适当的设备替换hda1):“e2image  -r  /dev/hda1  -  |  bzip2  > hda1.e2i.bz2”。这将只发送元数据信息,没有任何数据块。但是,目录块中的文件名仍然可以显示关于文件系统内容的信息,bug报告人员可能希望将这些信息保密。要解决此问题,可以指定“-s”选项。这将导致e2Image对目录条目进行置乱,并在写入image文件之前将目录块中任何未使用的部分清零。但是,“-s”选项将防止分析与散列树索引目录相关的问题

请注意,即使您将“/dev/hda 1”替换为另一个原始磁盘映像或先前由e2Image创建的QCOW2映像,这也是可行的。

3)“-Q”选项

“-Q”选项将创建一个QCOW2 image文件,而不是普通的或原始的image文件。QCOW2 image包含原始image所做的所有信息,但是与原始image不同的是,它并不稀疏。QCOW 2映像通过将数据以特殊格式存储,并将数据紧密地打包在一起,从而将磁盘空间的数量降到最低,从而避免了漏洞,同时仍然最小化了大小。

为了将文件系统作为bug报告的一部分发送给维护人员到e2fsprogs,请使用以下命令:“e2image  -Q  /dev/hda1  hda1.qcow2“、”bzip2  -z  hda1.qcow2”。这将只发送元数据信息,没有任何数据块。但是,目录块中的文件名仍然可以显示关于文件系统内容的信息,bug报告人员可能希望将这些信息保密。要解决此问题,可以指定“-s”选项。这将导致e2Image对目录条目进行置乱,并在写入image文件之前将目录块中任何未使用的部分清零。但是,“-s”选项将防止分析与哈希树索引目录相关的问题.

请注意,e2Image创建的qcow2映像是规则的qcow2映像,可以通过知道qcow2格式的工具进行处理,例如qemu-img。

4、实例

保存sdb4元数据

[root@localhost ~]# e2image /dev/sdb4 sdb4

e2image 1.41.12 (17-May-2010)

[root@localhost ~]# file sdb4

sdb4: Linux rev 1.0 ext2 filesystem data

Linux基础命令---e2image的更多相关文章

  1. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  2. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  3. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  4. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  5. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  6. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  7. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  8. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

  9. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

随机推荐

  1. python操作数据库PostgreSQL

    1.简述 python可以操作多种数据库,诸如SQLite.MySql.PostgreSQL等,这里不对所有的数据库操作方法进行赘述,只针对目前项目中用到的PostgreSQL做一下简单介绍,主要包括 ...

  2. 牛客网多校赛第9场 E-Music Game【概率期望】【逆元】

    链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...

  3. HDU 4848 - Wow! Such Conquering!

    Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descriptio ...

  4. POJ_3349_Snowflake Snow Snowflakes

    Snowflake Snow Snowflakes Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 43504   Accep ...

  5. android bluetooth

    Android bluetooth介绍(一):基本概念及硬件接口 BlueZ为调试和与蓝牙子系统通信提供很多设置命令行工具,包含下面这些: hciconfig hcitool hcidump sdpt ...

  6. requests库的小技巧

    #coding:utf-8 import requests # url = 'http://www.baidu.com' # response = requests.get(url) # print ...

  7. sql server递归日期

    在做项目任务时,需要将一个日期范围转换为日期表. 例如:日期范围(2017年01月21日~2017年02月20日).转换成一日为单位的日期表,如下. 2017-01-21 2017-01-22 201 ...

  8. mysql python pymysql模块 获取插入的最后一条数据的自增ID lastrowid()方法

    调用游标下的lastrowid 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-- ...

  9. 万恶之源 - Python初识函数

    什么是函数 我们目前为止,已经可以完成一些软件的基本功能了,那么我们来完成这样一个功能:约x pint("拿出手机") print("打开陌陌") print( ...

  10. SparkSQL UDF两种注册方式:udf() 和 register()

    调用sqlContext.udf.register() 此时注册的方法 只能在sql()中可见,对DataFrame API不可见 用法:sqlContext.udf.register("m ...