一次Linux下testdisk+gdisk恢复XFS文件系统及数据的经历
- 格式:pdf
- 大小:761.70 KB
- 文档页数:11
使用Linux终端进行系统恢复和修复Linux终端是一种强大的工具,可以用于系统恢复和修复。
无论您的Linux系统遇到了什么问题,都可以通过终端来解决。
本文将介绍如何使用Linux终端来进行系统恢复和修复。
1. 准备工作在开始之前,您需要准备一些工作。
首先,您需要熟悉Linux终端的基本命令。
这包括cd(用于切换目录)、ls(用于列出目录内容)、cp(用于复制文件)、mv(用于移动文件)、rm(用于删除文件)等基本命令。
另外,您还需要有一个可启动的Linux安装介质,比如Ubuntu安装盘或者Live CD。
这将作为我们进行系统恢复和修复的工具。
2. 进入恢复模式首先,插入Linux安装介质并重启计算机。
在启动过程中,按照屏幕上的提示进入BIOS设置或者启动菜单。
选择从安装介质启动,并进入恢复模式。
3. 挂载系统分区一旦进入恢复模式,我们需要挂载系统分区,以便能够对其进行修复。
使用命令fdisk -l来查看系统中的分区情况,并找到包含操作系统的分区。
假设您的操作系统位于/dev/sda1上。
使用命令mount /dev/sda1 /mnt来将该分区挂载到/mnt目录下。
现在,您可以通过cd /mnt来进入该分区。
4. 修复引导程序如果您的系统无法启动,可能是由于引导程序的问题。
通过终端,您可以修复引导程序并使系统恢复正常。
首先,使用命令chroot /mnt来进入被挂载的分区。
然后,使用命令grub-install /dev/sda来重新安装GRUB引导程序。
这将重新安装引导程序并恢复系统启动。
5. 修复文件系统如果您的文件系统损坏或者出现错误,您可以通过终端进行修复。
首先,使用命令fsck -y /dev/sda1来检查并修复/dev/sda1分区上的文件系统。
这个命令会扫描文件系统并修复任何错误。
如果您使用的是其他文件系统,比如ext3或者ext4,您可以将命令中的sda1替换为正确的分区名。
Linux上的系统备份和恢复解决方案在使用Linux操作系统时,系统备份和恢复是非常重要的任务。
无论是为了防止数据丢失,还是为了应对系统崩溃或故障,备份和恢复都是必要的措施。
本文将介绍几种常见的Linux上系统备份和恢复的解决方案。
一、全盘备份和恢复全盘备份是将整个系统的数据和配置都进行备份,以便灾难发生后能够恢复整个系统。
在Linux上,最常用的全盘备份工具是Clonezilla。
Clonezilla是一个免费的开源工具,它可以创建磁盘镜像,并能够在需要时将镜像还原到原始系统中。
用户只需将Clonezilla光盘或USB驱动器插入到计算机中,按照指示选择备份或还原操作即可完成全盘备份和恢复。
二、文件级备份和恢复文件级备份是指只备份用户自己选择的文件和目录,这种备份方式更加灵活,可以根据需要选择备份的内容。
在Linux上,有很多文件级备份的工具可供选择,比如rsync和tar。
1. rsyncRsync是一个强大的文件同步工具,它可以在本地或远程主机之间同步文件和目录。
通过使用rsync命令,可以将选定的文件和目录备份到目标位置,并在需要时恢复这些文件和目录。
rsync不仅可以在本地操作,还支持通过SSH协议进行远程备份。
2. tarTar是一个常用的打包和压缩工具,它可以将多个文件和目录打包成一个单独的备份文件。
与rsync不同,tar只是创建备份文件,并不负责将备份文件传输到远程位置。
用户可以使用tar命令将文件和目录打包成.tar文件,并通过网络或其他存储设备进行备份。
在恢复时,只需解压缩.tar文件即可。
三、增量备份和恢复增量备份是指只备份自上次完整备份以来发生变化的文件和数据,从而提高备份效率和节省存储空间。
在Linux上,有一些工具支持增量备份,比如Duplicity和BorgBackup。
1. DuplicityDuplicity是一个备份工具,它支持增量备份和加密功能。
用户可以使用Duplicity创建备份任务,并定期运行备份脚本,从而定时备份重要的文件和目录。
linux命令--使⽤fsck修复⽂件系统使⽤fsck修复⽂件系统错误1、问题描述服务器maint_samba由于服务器maint_samba (debian操作系统)没有正常关机,在重新启动过程中/dev/sdb1出现⽂件系统错误,需要⼿动使⽤fsck进⾏扫描和修复。
出现如下情况:…...Checking file systems ...fsck 1.41.3(12-OCT-2008)/dev/sdb1 contains a file system with errors check forced/dev/sdb1: |========== 百分数%……/dev/sdb1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY (i.e.,without -a or -p options)fsck died with exit status4…………/var/log/fsck/fsck ---fsck报错⽇志的存放位置……Warning……Press enter for maintenance(or type Control-D to continue): --- Ctrl+d继续启动服务器。
2、⼿动fsck修复2.1 fsck简介fsck不仅可以对⽂件系统进⾏扫描,还能修正⽂件系统的⼀些问题。
值得注意的是fsck 扫描⽂件系统时⼀定要在单⽤户模式、修复模式或把设备umount后进⾏。
警告:如果扫描运⾏中的系统,会造成系统⽂件损坏。
⽂件系统扫描⼯具有 fsck,fsck.ext2,fsck.jfs,fsck.msdos,fsck.vfat,fsck.ext3,fsck.reiserfs(reiserfsck)。
其中fsck 默认⽀持⽂件系统ext2,如果想⽀持ext3⽂件系统的扫描,应该加-j 参数。
最好是根据不同的⽂件系统来调⽤不同的扫描⼯具,⽐如ext3的⽂件系统使⽤fsck.ext3,ext2⽂件系统使⽤fsck.etx2等。
在Linux中恢复被删除的文件的教程在Linux中恢复被删除的文件的教程这篇文章主要介绍了在Linux中恢复被删除的文件的教程,文中包括介绍了永久擦除硬盘中的数据的方法,需要的朋友可以参考下当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件。
不过,幸运的是文件是可以通过一些方法恢复的。
当用户删除了一个文件,该文件并没有消失,只是被隐藏了一段时间。
这里将解释它是如何工作的。
在一个文件系统中,有一个叫做文件分配表的东西,这个表跟踪文件在存储单元(如硬盘,MicroSD 卡,闪存驱动器等等)中的位置。
当一个文件被删除,文件系统将会在文件分配表中执行以下两个任务之一:这个文件在文件分配表上的条目被标记为“自由空间” 或删除文件分配表里这个文件的条目,且将相应的空间被标记为自由空间。
现在,如果有一个新的文件需要被放置在一个存储单元上,操作系统将会把这个文件放置到标记为空位的地方。
在新文件被写入到这个空位后,被删除的文件就彻底消失了。
当需要恢复一个已经删除的文件时,用户绝对不能再对任何文件进行操作,因为假如该文件对应的“空位”被占用,这个文件就永远也不能恢复了。
恢复软件是如何工作的?大多数的文件系统(在删除文件时)只是标记空间为空白。
在这些文件系统下,恢复软件查看文件分配表这个文件,然后复制被删除的文件到另外的存储单元中。
假如该文件被复制到其它需要恢复的被删除的存储单元中,那么用户将有可能会失去那个所需的删除文件。
文件系统很少会擦除文件分配表中的条目。
假如文件系统真的这样做了,这便是恢复软件在恢复文件了。
恢复软件在存储单元中扫描文件头,所有文件都拥有一个特殊的编码字符串,它们位于文件的最前面,也被叫做魔法数字。
例如,一个编译的JAVA 类文件的魔法数字在十六进制中是“CAFEBABE”。
所以,假如要恢复该类型的文件,恢复软件会查找“CAFEBABE” 然后复制文件到另一个存储单元。
在Linux终端中进行文件恢复和数据恢复的命令在日常使用电脑过程中,我们可能会遇到文件丢失或者数据损坏的情况。
而在Linux系统下,我们可以通过终端来进行文件恢复和数据恢复。
本文将介绍一些常用命令来帮助我们在Linux终端中进行文件恢复和数据恢复的操作。
1. 查找丢失的文件首先,我们需要找到丢失的文件。
在Linux系统中,可以使用find 命令来进行文件搜索。
该命令可以通过文件名、文件类型、文件大小等条件来查找文件。
例如,我们要查找名为"example.txt"的文件,可以使用以下命令:```find / -name example.txt```上述命令中的"/"表示从根目录开始进行搜索。
如果你知道该文件位于某个具体目录下,可以将"/"替换为相应的目录路径。
2. 从备份中恢复文件如果你有之前的文件备份,可以使用cp命令将备份文件复制到需要恢复的位置。
例如,假设你的备份文件位于/home/user/backup目录下,你需要将备份文件example.txt恢复到/home/user目录下,可以使用以下命令:```cp /home/user/backup/example.txt /home/user```上述命令将备份文件复制到/home/user目录下,并命名为example.txt。
3. 使用TestDisk恢复丢失分区如果你的硬盘分区丢失或损坏,可以使用TestDisk来进行分区恢复。
TestDisk是一款开源软件,可以帮助我们恢复丢失的分区和修复分区表。
首先,你需要安装TestDisk。
在终端中输入以下命令来安装TestDisk:```sudo apt-get updatesudo apt-get install testdisk```安装完成后,你可以通过以下命令来打开TestDisk:```sudo testdisk```在TestDisk界面中,你可以按照提示来选择需要恢复的硬盘分区,然后选择恢复的方式和选项。
Linux终端数据恢复技巧命令行实现文件恢复Linux终端数据恢复技巧:命令行实现文件恢复数据丢失一直是我们使用电脑时常遇到的问题之一。
而在Linux操作系统中,我们可以借助命令行工具来实现文件的恢复。
本文将介绍几种常用的Linux终端数据恢复技巧,以帮助您在遇到数据丢失问题时能够迅速恢复文件。
1. 使用rm命令删除后如何恢复文件误操作删除文件是我们常常会遇到的问题之一。
当我们使用rm命令删除文件后,Linux系统会将文件从文件系统中彻底删除,并且无法通过回收站或者垃圾桶来恢复。
但是,有一种方法可以从命令行中恢复误删的文件。
首先,我们需要安装一个叫作extundelete的工具。
在终端中执行以下命令来安装extundelete:sudo apt-get install extundelete安装完成后,我们可以使用以下命令来查找并恢复误删的文件:sudo extundelete --restore-all /dev/sdXY其中,/dev/sdXY是文件所在的分区,您需要将它替换为实际的分区名称。
执行完毕后,extundelete将会自动搜索并还原误删的文件到原始路径。
2. 使用grep和strings命令查找丢失的数据有时候,我们可能不小心将数据从文件中删除,而不是删除整个文件。
例如,我们误删了一个重要的密码或者关键字。
在这种情况下,我们可以使用grep和strings命令来查找并恢复数据。
运行以下命令以从指定文件中查找丢失的数据:grep -a -C 50 'your keyword' /dev/sdXY根据实际情况,您可以将'your keyword' 替换为您要查找的特定关键字,并将/dev/sdXY替换为文件所在的分区。
在执行命令后,将会显示包含关键字的文本行及其周围的50行内容。
同样地,您也可以使用strings命令来查找包含特定字符串的文件数据:strings /dev/sdXY | grep 'your keyword'请注意,这些命令只能恢复文本数据,并且恢复的结果可能不完整。
Linux终端命令与数据恢复恢复误删文件和数据的命令详解Linux终端是一个强大的工具,提供了各种命令来管理和恢复数据。
在日常使用中,我们可能会不小心删除了重要的文件或数据,但是不要担心,Linux终端提供了一些命令可以帮助你恢复误删的文件和数据。
本文将详细介绍这些命令的使用方法和注意事项。
1. 查找误删文件使用命令"ls"可以列出当前目录下的文件和目录。
如果你知道误删文件所在的目录,可以使用该命令来查找文件。
例如,假设你误删了一个名为"file.txt"的文本文件,你可以在终端中进入该文件所在的目录,然后使用命令"ls"来查找该文件:```bashls -l file.txt```该命令将会列出文件的详细信息,包括文件名、大小、权限等。
如果文件存在,你可以继续下一步的恢复操作。
2. 恢复误删文件Linux终端提供了一个命令"cp"可以用来复制文件。
当你误删了一个文件时,你可以使用该命令将一个备份文件复制到误删文件的目录中,以恢复文件。
例如,如果你误删了文件"file.txt",你可以使用如下命令来进行文件恢复:```bashcp backup/file.txt .```其中,"backup/file.txt"是一个备份文件的路径。
该命令将备份文件复制到当前目录下,并将其命名为"file.txt",完成文件的恢复操作。
3. 使用"grep"命令查找误删数据有时候,我们不仅仅会误删文件,还会误删文件中的数据。
对于文本文件,可以使用"grep"命令来查找和恢复误删的数据。
例如,假设你误删了一个名为"file.txt"的文本文件中的一段数据,你可以使用如下命令来查找和恢复数据:```bashgrep "your data" file.txt```其中,"your data"是你误删的数据内容。
Linux操作系统下两款实用的数据恢复软件介绍两个数据恢复软件:TestDisk 和PhotoRec。
其中,TestDisk 主要用来恢复损坏的分区以及拯救无法引导的磁盘;而PhotoRec 则主要用于恢复损坏的数据文件,包括文档、图片、视频等。
TestDisk 及PhotoRec 皆支持在Windows、Linux、Unix、Mac OS 等系统上执行。
TestDisk 还支持包括FAT、NTFS、Ext2、Ext3、ReiserFS、RAID 等在内的广泛的文件系统。
而PhotoRec 也能够在硬盘、光盘、优盘等各种存贮介质上工作。
虽然数据恢复软件可以尽最大可能帮助我们挽回损失,但我们还是应该养成时常备份的习惯。
只有真正做到有备无患,才能确保万无一失。
由于错误的使用分区工具而带来的分区丢失,硬盘磁盘分区遭到损坏的情况下,使用叫做「TestDisk」的工具可以复原已损坏的分区。
下面就介绍一下如何使用TestDisk急性恢复(注)。
注:可以使用TestDisk进行复原的场合,也就是硬盘HDD上的分区(该分区有原有数据纪录)已经损坏的情形。
但是如果损坏之后,重新再次做成了新分区的话,复原的可能性比较小,很困难。
TestDisk可以从/wiki/PhotoRec下在(注)。
下载Fedora Core 6 对应的RPM包文件。
例如、如果使用GNOME的分区管理软件「GParted」(Gnome Partition Editor)误删除了/dev/hda5分区。
注:Linux下恢复误删除的文件中介绍了使用「PhotoRec」对误删除的文件进行恢复。
注:TestDisk是恢复分区信息的软件、针对分区表被删除以及MBR(master boot record)被修改的恢复分区信息软件:TestDisk、使用前请先确认。
对于安装和配置请参照Linux下恢复误删除的文件。
以root权限登陆,启动TestDisk。
Linux命令行中的文件权限恢复技巧在 Linux 命令行中,文件权限是保护文件和目录安全的重要机制。
然而,在日常使用中,我们有时可能会不小心更改了文件的权限,导致文件无法正常访问。
本文将介绍一些常见的 Linux 命令行中的文件权限恢复技巧,帮助您解决文件权限问题。
### 文件权限概述在 Linux 系统中,每个文件和目录都有自己的权限设置,用于控制对其的访问权限。
权限分为三类:所有者权限、组权限和其他人权限,每类权限又包括读取(r)、写入(w)和执行(x)三种操作。
例如,权限设置为 `drwxr-xr-x` 的文件夹,代表该文件夹是一个目录(d),所有者具有读取、写入和执行权限(rwx),组用户和其他人只有读取和执行权限(r-x)。
### 使用 chmod 命令恢复文件权限chmod 命令用于更改文件和目录的权限。
通过使用合适的参数和权限模式,我们可以恢复文件的权限状态。
1. 通过数字模式恢复权限可以使用数字模式来设置文件权限。
每种权限(读取、写入和执行)都对应一个数字值,分别为 4、2 和 1。
三种权限的值相加,就是该类权限的数字模式。
例如,要将文件权限恢复为 `-rw-r--r--`,即只有所有者有读取和写入权限,组用户和其他人只有读取权限,我们可以使用命令 `chmod 644 文件名` 来实现。
2. 通过符号模式恢复权限chmod 命令还支持符号模式来设置文件权限。
符号模式包括以下几种操作:- `+`:添加权限- `-`:移除权限- `=`:设置权限为指定的值- `u`:所有者权限- `g`:组权限- `o`:其他人权限- `a`:所有权限例如,要将文件权限恢复为 `-rw-r--r--`,我们可以使用命令`chmod u=rw,g=r,o=r 文件名` 来实现。
### 使用 chown 命令恢复文件所有者在 Linux 系统中,每个文件都有一个所有者和所属组。
有时候,我们会不小心更改了文件的所有者,导致无法正常访问。
Linux是一个多用户网络操作系统。
现如今,电脑手机端都存在Linux系统,因其免费且实用的功能被大家所喜爱。
如果Linux系统的数据丢失了后果是十分严重的,那Linux系统数据丢失如何修复呢?当我们使用窗口管理器来删除文件时,我们仅仅只是将文件从某个目录移动到了另一个目录中(回收站)。
在这种情况下,获得更新的就是你文件系统索引节点(inode)的元数据信息,例如被删除文件的时间戳、文件所占存储区块和扩展属性等数据。
你可以使用tune2fs(调整和查看ext2/ext3文件系统的文件系统参数)来查看文件系统的索引节点信息,在命令行工具中输入下列指令:sudo tune2fs -l /dev/sda1 |grep -i inode运行之后,你将会获得类似下方所给出的示例信息:$ sudo tune2fs -l /dev/sda1 |grep -i inodeFilesystem features: has_journal ext_attr resize_inode dir_index filetypeneeds_recoveryextent flex_bg sparse_super large_filehuge_file uninit_bg dir_nlinkextra_isizeInode count: 30007296Free inodes: 29382378Inodes per group: 8192Inode blocks per group: 512First inode: 11Inode size: 256Journal inode: 8First orphan inode: 21628027Journal backup: inode blocks文件删除知多少?当你使用SSH远程访问你的计算机时,你可以在目录“~/.local/share/Trash”中看到所有被删除的文件。
这样一来,我们就可以直接使用GUI窗口来还原被删除的文件,非常的简单。
Linux下文件丢失别慌这里有种恢复数据的方法帮你解决现代技术的发展使得我们的生活变得越来越便捷,而计算机作为其中一个重要的工具,也对我们的日常生活产生了重大影响。
然而,计算机系统也难免会遭遇各种问题,比如文件丢失。
当你在使用Linux系统时遇到文件丢失的困扰时,请不要慌张,本文将为您介绍一种恢复数据的方法,帮助您解决文件丢失的问题。
1. 准备工作在进行文件恢复之前,我们需要准备一些工具。
首先,我们需要一台可用的计算机,最好是装有Linux系统的计算机。
其次,我们需要一块崭新的硬盘或者U盘,用于存储恢复出来的数据。
最后,我们需要下载并安装一个数据恢复软件,比如TestDisk。
2. 安装TestDiskTestDisk是一款开源的数据恢复软件,它可以帮助我们找回因各种原因而丢失的文件。
您可以通过在终端中输入以下命令来安装TestDisk:sudo apt-get install testdisk安装完成后,我们可以使用TestDisk来扫描并恢复文件。
3. 扫描并恢复文件首先,我们需要在终端中启动TestDisk。
输入以下命令以启动TestDisk:sudo testdisk然后,按照终端中的提示选择恢复选项。
TestDisk将会扫描您的硬盘并找到丢失的分区和文件。
一旦扫描完成,TestDisk将会显示您的硬盘上找到的分区列表。
您可以使用上下箭头键来选择需要恢复的分区。
选择分区后,按下Enter 键。
接下来,TestDisk将会提示您选择分区类型。
如果您不确定,请选择默认选项“Intel”。
然后,TestDisk将会进入分区的分析过程,并显示找到的文件和文件夹。
您可以使用左右箭头键来导航到需要恢复的文件或文件夹。
选择文件或文件夹后,按下"C"键来复制它们。
在复制文件或文件夹时,TestDisk会提示您选择存储它们的目标位置。
请注意,最好将它们保存到另一个硬盘或U盘中,而不是原始硬盘上,以防止覆盖原始数据。
使用Linux终端进行数据恢复和修复操作对于Linux系统用户来说,终端是一个重要的工具,可以进行各种任务和操作。
其中之一就是数据恢复和修复操作。
通过终端,我们可以使用各种命令来恢复误删除的文件、修复文件系统错误以及解决其他数据丢失的问题。
本文将介绍一些常用的Linux终端命令和技巧,帮助您进行数据恢复和修复。
一、文件恢复1. 恢复误删除的文件在终端中,您可以使用`extundelete`命令来恢复误删除的文件。
首先,确保安装了`extundelete`工具,然后使用以下命令:```sudo extundelete /dev/sdXY --restore-file [文件路径]```其中,`/dev/sdXY`表示文件所在的分区,`[文件路径]`是误删除文件的路径。
执行命令后,`extundelete`会尝试恢复文件并将其复制到当前目录下。
2. 使用数据恢复工具除了`extundelete`,还有其他一些数据恢复工具可以通过终端进行操作,例如`TestDisk`和`PhotoRec`。
这些工具提供了更多高级的功能和选项,可以帮助您恢复各种类型的文件,包括照片、文档和视频。
二、文件系统修复1. 使用fsck命令`fsck`命令用于检测和修复文件系统错误。
在终端中,您可以使用以下命令:```sudo fsck /dev/sdXY````/dev/sdXY`表示需要修复的分区。
执行命令后,`fsck`会扫描文件系统并自动修复错误。
请注意,在修复过程中可能需要您确认一些操作。
2. 修复损坏的分区表如果您的分区表损坏,您可以使用`gdisk`命令来修复它。
首先,安装`gdisk`工具,然后执行以下命令:```sudo gdisk /dev/sdXr````/dev/sdX`是受损分区所在的磁盘。
执行命令后,按照提示选择修复选项即可。
三、数据备份和复制1. 使用rsync命令`rsync`命令是一个强大的文件备份和复制工具。
Linux终端命令数据恢复技巧在使用Linux操作系统时,我们经常会遇到数据丢失的情况,可能是由于误操作、系统故障或者磁盘损坏等原因导致。
然而,Linux终端提供了一些强大的命令和技巧,可以帮助我们恢复丢失的数据。
本文将介绍一些常用的Linux终端命令数据恢复技巧,希望对您有所帮助。
一、文件恢复技巧1. 使用“ls”命令查找丢失的文件在Linux终端中,我们可以使用“ls”命令来查找丢失的文件。
用法如下:```ls -aR | grep 'filename'```其中,“-a”参数表示显示隐藏文件,“-R”参数表示递归查询子目录,“grep”命令用于过滤包含特定文件名的结果。
通过这个命令,我们可以尝试寻找丢失的文件。
2. 使用“find”命令恢复删除的文件如果我们删除了一个文件,但是意识到需要恢复它,可以使用“find”命令来搜索并恢复该文件。
用法如下:```find / -name 'filename'```其中,“/”表示在整个文件系统中搜索,“-name”参数指定要搜索的文件名。
通过执行这个命令,系统会搜索整个文件系统,并找出与指定文件名匹配的文件。
3. 使用“grep”命令恢复文件内容有时候,我们可能只记得文件中的部分内容,但不记得文件名。
这时,可以使用“grep”命令来恢复文件内容。
用法如下:```grep -r 'keyword' /path/to/search```其中,“-r”参数表示递归搜索,“'keyword'”表示要搜索的关键字,“/path/to/search”表示要搜索的目录路径。
通过这个命令,我们可以搜索包含指定关键字的文件内容,并找到丢失的文件。
二、磁盘恢复技巧1. 使用“ddrescue”命令复制损坏的磁盘当硬盘损坏时,我们通常希望尽可能多地恢复数据,并且不进一步损坏硬盘。
这时可以使用“ddrescue”命令来复制损坏的磁盘。
Linux命令行中的文件恢复和数据修复技巧数据丢失对每个计算机用户来说都是一个令人沮丧的问题,但在Linux系统上,通过命令行工具,您可以使用一些技巧来尝试恢复丢失的文件和修复受损的数据。
本文将介绍一些常用的Linux命令行中的文件恢复和数据修复技巧。
注意:在执行以下命令之前,请确保您具有足够的权限,并备份您的数据以防止进一步损失。
1. 使用grep命令搜索并恢复文件Grep命令在文件中搜索指定的模式。
如果您知道丢失文件的部分内容,您可以使用grep命令来搜索并尝试恢复它。
示例使用方式:```grep -a -B 25 -A 100 '关键词' /dev/sda1 > recovered_file.txt```上述命令会搜索/dev/sda1设备中包含关键词的文件,并将搜索结果输出到recovered_file.txt文件中。
2. 使用extundelete恢复已删除的文件extundelete是一个Linux命令行工具,用于恢复已删除的文件。
它可以在ext2/ext3/ext4文件系统上运行,但需要在文件被覆盖前立即执行。
示例使用方式:```extundelete /dev/sdb1 --restore-all```上述命令将尝试恢复/dev/sdb1设备上已删除的所有文件。
3. 使用testdisk恢复分区和文件testdisk是一个功能强大的命令行工具,用于恢复丢失的分区和文件。
它可以用于各种文件系统,包括FAT、NTFS、ext2/ext3/ext4等。
示例使用方式:```testdisk /dev/sdc```上述命令将启动testdisk工具,并提示您选择要恢复的分区和文件。
4. 使用ddrescue恢复受损的硬盘如果您的硬盘因物理损坏或磁道损坏而无法读取,您可以使用ddrescue命令来尝试复制可读取的数据,并跳过无法读取的部分。
示例使用方式:```ddrescue /dev/sdd1 recovered_image.img logfile.log```上述命令将复制/dev/sdd1设备上的数据到recovered_image.img文件中,并将日志保存在logfile.log中。
Linux使⽤fsck修复⽂件系统1、fsck---file system checkfsck 扫描⽂件系统时⼀定要在单⽤户模式、修复模式或把设备umount后进⾏。
如果扫描运⾏中的系统,会造成系统⽂件损坏。
RHEL6中fsck默认⽀持⽂件系统ext4,如果想⽀持ext3⽂件系统的扫描,应该加-j 参数。
最好是根据不同的⽂件系统来调⽤不同的扫描⼯具,⽐如ext3的⽂件系统使⽤fsck.ext3,ext2⽂件系统使⽤fsck -t etx2等。
参数:-a : 如果检查有错则⾃动修复-r : 如果检查有错则由使⽤者回答是否修复-t : <⽂件系统类型> 指定要检查的⽂件系统类型。
-s : 依序⼀个⼀个地执⾏ fsck 的指令来检查-A : 对/etc/fstab 中所有列出来的 partition 做检查-C : 显⽰完整的检查进度-d : 列印 e2fsck的 debug 结果-p : 同时有 -A 条件时,同时有多个 fsck 的检查⼀起执⾏-R : 同时有 -A 条件时,省略 / 不检查-V : 详细显⽰模式执⾏后的传回值及代表意义:0 没有任何错误发⽣。
1 ⽂件系统发⽣错误,并且已经修正。
2 ⽂件系统发⽣错误,并且已经修正。
4 ⽂件系统发⽣错误,但没有修正。
8 运作时发⽣错误。
16 使⽤的语法发⽣错误。
128 共享的函数库发⽣错误。
2、检查 ext4 ⽂件系统的 /dev/sdb3 是否正常,如果有异常便⾃动修复[root@test ~]# fsck -t ext4 -a /dev/sdb33、出现如下提⽰可以使⽤fsck命令来修复1)⽆法mount分区;2)⼤量⽂件、⽬录丢失,根⽬录下⽣成/LOST+FOUND⽂件夹,⾥⾯有⼤量#XXXXXX类的⽂件和⽬录;3)fsck很快报错完成;4)fsck执⾏时,有⼤量提⽰,如修改节点、清0节点等操作4、当Linux系统被强⾏关闭或重新启动,⽂件系统可能受到损坏,系统启动时会⾃动检查并修复⽂件系统但是当⽂件系统没有⾃动修复成功时,便需要⼿动使⽤fsck进⾏扫描和修复。
linux中恢复⽂件数据⽅法⽤test⽬录下的⽂件做步骤演⽰:1.cd/test 删除⽂件 rm -rf ⽂件.txt2.输⼊命令debugfs(ps:此时可以开另外⼀个终端执⾏命令:df /test/ 找到/dev/... 数字... 12%,记住/dev/..这个路径)3.返回第⼀个终端输⼊命令 open /dev/... 和 ls -d /test (记住刚刚删除⽂件的<id>(数字) ⽂件.txt)4.第⼀个终端输⼊命令 logdump -i <id> (记住block 和offset 对应的数字,列如 block 1111,offset 256)5.第⼀个终端输⼊命令 dd if=/dev/... of=/test/⽂件.txt bs=256 count=1 skip=1111具体步骤:1.cd /wztest2.删除⽂件,⽆论何种⽅式3.输⼊命令debugfs.4,切换新的终端窗⼝:执⾏命令df /wztest/5.返回第⼀终端页⾯执⾏open /dev/vda1和ls -d /wztest(第⼀个图⽚⾥⾯)记住框选<数字>6.第⼀个终端输⼊logdump -i <id> 记住block和offset7.quit8.第⼀个终端输⼊命令dd if=/dev/vda1 of=/test/b.txt bs=256 count=1 skip=15728恢复⽂件夹类似:1 运⾏debugfs,进⼊调度模式2 执⾏open /dev/..3 执⾏ls -d dir 会列出此⽬录最近的操作,其中可以看到<数字>的⽇志删除记录4 执⾏logdump -i <数字> (在输出中寻找删除⽂件对应的block,记录下来blockid)5.退出debugfs,运⾏dd if=/dev/.. of=/tmp/saved bs=1024 count=1 skip=blockid每篇⼀句:爱你破烂的⾐裳,却敢堵命运的枪。
在Linux终端中进行数据恢复和修复数据的丢失和损坏是对于任何计算机用户来说都是一个令人沮丧的问题。
然而,在Linux操作系统中,我们有幸拥有一些强大的工具和命令,可以帮助我们在终端中进行数据恢复和修复。
本文将介绍一些常用的命令和技巧,以帮助您在Linux终端中解决数据问题。
1. 使用fsck命令进行文件系统检查和修复在Linux中,fsck命令被用于检查和修复文件系统中的错误。
通过在终端中输入以下命令,您可以使用fsck命令对特定分区进行检查和修复:```sudo fsck /dev/sdXY```请注意将"/dev/sdXY"替换为您想要修复的分区的路径。
例如,如果您要修复第一个硬盘的第一个分区,路径可能是"/dev/sda1"。
2. 使用TestDisk进行分区和文件恢复TestDisk是一个强大而流行的开源工具,可用于恢复丢失的分区和文件。
它适用于多个操作系统,包括Linux。
要在Linux终端中使用TestDisk,您需要先安装它。
可以使用以下命令来安装TestDisk:```sudo apt-get install testdisk```安装完成后,您可以通过运行"testdisk"命令来启动TestDisk。
程序将提供有关如何使用它进行分区和文件恢复的详细说明。
3. 使用ddrescue进行硬盘数据恢复当硬盘出现物理损坏时,数据恢复可能会变得非常困难。
这是因为传统的工具可能无法读取受损的区域。
在这种情况下,ddrescue是一个非常有用的命令行工具,可以帮助我们复制数据,并尽量避免损坏区域。
要在Linux终端中使用ddrescue,您需要先安装它。
可以使用以下命令来安装ddrescue:```sudo apt-get install gddrescue```安装完成后,您可以通过以下命令来复制损坏硬盘的数据:```sudo ddrescue /dev/sdX /path/to/destination.img /path/to/logfile.log```请注意将"/dev/sdX"替换为受损硬盘的路径,将"/path/to/destination.img"替换为您要保存数据的目标文件的路径,将"/path/to/logfile.log"替换为日志文件的路径。
一次Linux下testdisk+gdisk恢复XFS文件系统及数据的经历
硬盘之前状况,用gdisk进行硬盘分区(SATA标准,3.6T容量),1.6T+2.0T两个分区,然后用mkfs.xfs格式化分区,最后结果就是,GPT分区表+两个XFS文件系统的硬盘(/dev/sdb,/dev/sdb1,/dev/sdb2)
我已无法确定引起这次硬盘错误的原因,但我确实这么做过:
原因一,从另一个硬盘的/home挂载点复制了大量数据到/dev/sdb1,然后我就将硬盘的数据线和电源线都拔掉了,这个动作在系统运行和关闭的两种情况下都做过,(SATA 硬盘是否安全的支持热插拔?)
原因二,在这次准备复制数据的之前,我没有将硬盘固定,也没有平放在台面(有一点斜度),然后开机,(胡乱的猜想着斜坡加载技术)
下面进入正题:
1,硬盘错误引起分区无法读取,挂载,开始纳闷哪里出了问题
2,运行gdisk -l /dev/sdb,显示如下
有警告信息及注意事项,虽然这里的标记GPT:damaged说明GPT有问题,但最后还是显示出了有分区的信息存在,(GPT分区表信息应该没有彻底损坏,不然怎么读取到两个分区的信息的呢),两个分区里Code标记都变成了0700(Microsoft basic data),正常的应该是8300(Linux filesystem),这个标记应该说明的是XFS文件系统的superblock信息毁了,这是后来经过XFS文件系统工具xfs_repair知道的
详细分区情况,但是是得出来的结果有问题的
gdisk检测到五个问题,(惊讶,这么多的问题)
3,进行到这里,我着急了,于是寻求帮助
首先,尝试了xfs_repair /dev/sdb,这个命令进行了几次,因为中途中断过,这个修复时间是比较长的,几小时(差不多3,4小时?)后得到的结果却是无法检测验证到有效的备份superblock信息,(失败,心都凉了)
然后,找到testdisk工具,大略的看了下说明就上手做(英文实在是差,仔细地看也不明白),第一次进行Analyse后,完全不知道做什么,就直接退出
然后就去测试查看,运行lsblk,gdisk,没有任何改变,(此刻是没抱什么希望的),输出的日志文件testdisk.log也完全看不懂,但我在日志文件里看到了有XFS这三个
字母的身影,(此时心中还是有一丝喜悦的)
4,继续网上搜索,寻求答案,(辛辛苦苦建立的文件数据啊,那个心情真是无奈啊)
使用testdisk进行第二次Analyse(分析目前分区结构及搜寻丢失的分区),经过6小时的分析与搜索后,我大胆的进行了第二个动作,转换分区类型,(当时的想法是inode及data block里记录的信息应该是不会丢失或被覆盖的),于是我选择了Linux reserved(谷歌翻译了一下,“Linux保留”,这里是没有Linux filesystem 的,找来找去也没找到更合适的了),再进入子菜单选择了XFS(还有
XFS2,XFS3,XFS4,这里是比较疑惑的,网上没有找到任何答案),至此点击写入,然后退出。
再一次阅读testdisk.log文件,(这里有点小插曲,我在主文件侠里找不到testdisk.log文件,进行whereis testdisk.log搜寻,这个文件怎么会跑
到/usr/src/linux-3.10.3-1-ARCH/testdisk.log这里了呢)?
5,testdisk.log文件内容如下:
这里是系统的一些相关信息
这里是选择了EFI GPT选项后得出的结果,在这里就分析出了当前的分区结构,只有一个Linux Reserved分区类型的分区,(这里的这个分析是不是肯定的)
这里是应该是选择了Analyse选项后再点击quick search得到的,大概是两段内容,第一,对于分区1文件系统的标记搜索,成功,(这个标记是什么,superblock?,不是损毁了吗?)。
第二,对于分区2文件系统的标记搜索,在这里搜索到了很多标记,但是在比对数据(能这样表达吗)时却出现了问题,(这里应该就是为什么会耗时6小时的原因),因为数据的信息标记超出了磁盘的整个容量,(这会是什么原因造成的呢)
这里是搜索完成后得到无法恢复分区2文件系统的信息
这里是这次使用testdisk最后的结果日志,只找到了丢失的分区1文件系统,然后进行了分区类型的改变和确定写入。
6,经过上步的尝试,(说实话,心里很忐忑),使用lsblk查找,还是找不
到/dev/sdb1,于是运行gdisk
虽然看到不想看到的信息,但是No problems found一句让我有些惊喜,继续
作出决定,重写分区表信息7,喜出望外的结果
检测出/dev/sdb/sdb1
成功挽回文件!(兴奋啊)8,疑问与猜想
GPT分区表已经修复好,分区1的类型为Linux reserved(并不是未出问题之前的Linux filesystem),成功检测到/dev/sdb1的文件系统是XFS。
已经挽回了数据,虽然并没有完整的修复,但现在没有空闲的磁盘来备份这些数据,所以这里就没敢继续往下尝试恢复了
疑问一:能不能直接使用gdisk的重新建立分区表的功能,使用testdisk好像最主要的作用就是做了分区的搜索,然后做了个分区类型的转换(这步是否可用其它工具完成)?
疑问二:XFS文件系统的superblock到底有没有损毁,如果没有损毁,怎么就检测不到分区文件系统信息,如果损毁了又是怎么恢复的,因为尝试运行了xfs_repair,检测到磁盘最后一个扇区也验证不了备份的superblock。
superblock有没有彻底恢复,如果是彻底恢复的,为什么不能正确的检测到分区2的信息,如果并不是完整的superblock,又何以能够读取分区1的作息?
疑问三:总觉得这里的Linux reserved怪怪的,难道它在磁盘里的记录信息与Linux filesystem是兼容的?这个记录信息与XFS文件系统的superblock有没有关系?
疑问四:运行dd if=/dev/sdb of=/dev/sdax,会是什么结果?
猜想疑问一:阅读了鸟哥的私房菜基础篇里的ext2文件系统的那一章节,对文件系统(ext2,ext3,ext4,XFS)有这么个了解,记录整个磁盘分区情况的是GPT分区表,记录分区文件系统信息的是superblock,记录文件系统里的文件信息的是inode,记录文件系统里的文件实际数据的是block,这里的inode与block是否有独特的标记,是否可写这样一个程序,直接读取到磁盘里的inode来找到block
从而搜索出文件信息
猜想疑问二:说到这里当然还有一些疑问,这里的思维有些乱。
GPT磁盘在开始区域
记录着保留的MBR信息,GPT信息及superblock信息,这些是怎么记录下来的,因为这个区域没有进行文件系统格式化,磁盘的整个磁盘的最小单位是sector(扇区),进行分区文件系统格式化后,磁盘用来记录信息的最小单位是block吗,那么
默认256bytes的inode又是个什么,superblock信息为什么会记录在第一个
分区以前未格式化的区域?
此篇小记说明:以上信息仅针对本人使用的系统环境,其中有一小部份表达的信息无法
用图片来比对,因为一开始没想要写此记,所以一些信息的截图就忽略了,特别是
xfs_repair这个环节。
最后作个提醒:硬盘发生错误,在系统运行期间无法自动fsck导致系统无法成功启动
或无法检测分区读取数据信息(非启动盘)后,绝不能再对硬盘进行任何写操作,慎用fsck,切记,切记,这样,自己就能最有把握的将数据拯救出来!。