一次Linux下testdisk+gdisk恢复XFS文件系统及数据的经历
使用Linux终端进行系统恢复和修复

使用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上系统备份和恢复的解决方案。
一、全盘备份和恢复全盘备份是将整个系统的数据和配置都进行备份,以便灾难发生后能够恢复整个系统。
在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修复文件系统

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中恢复被删除的文件的教程这篇文章主要介绍了在Linux中恢复被删除的文件的教程,文中包括介绍了永久擦除硬盘中的数据的方法,需要的朋友可以参考下当用户意外地删除了一个仍然需要的文件时,大多数情况下,是没有简便的方法可以重新找回或重建这个文件。
不过,幸运的是文件是可以通过一些方法恢复的。
当用户删除了一个文件,该文件并没有消失,只是被隐藏了一段时间。
这里将解释它是如何工作的。
在一个文件系统中,有一个叫做文件分配表的东西,这个表跟踪文件在存储单元(如硬盘,MicroSD 卡,闪存驱动器等等)中的位置。
当一个文件被删除,文件系统将会在文件分配表中执行以下两个任务之一:这个文件在文件分配表上的条目被标记为“自由空间” 或删除文件分配表里这个文件的条目,且将相应的空间被标记为自由空间。
现在,如果有一个新的文件需要被放置在一个存储单元上,操作系统将会把这个文件放置到标记为空位的地方。
在新文件被写入到这个空位后,被删除的文件就彻底消失了。
当需要恢复一个已经删除的文件时,用户绝对不能再对任何文件进行操作,因为假如该文件对应的“空位”被占用,这个文件就永远也不能恢复了。
恢复软件是如何工作的?大多数的文件系统(在删除文件时)只是标记空间为空白。
在这些文件系统下,恢复软件查看文件分配表这个文件,然后复制被删除的文件到另外的存储单元中。
假如该文件被复制到其它需要恢复的被删除的存储单元中,那么用户将有可能会失去那个所需的删除文件。
文件系统很少会擦除文件分配表中的条目。
假如文件系统真的这样做了,这便是恢复软件在恢复文件了。
恢复软件在存储单元中扫描文件头,所有文件都拥有一个特殊的编码字符串,它们位于文件的最前面,也被叫做魔法数字。
例如,一个编译的JAVA 类文件的魔法数字在十六进制中是“CAFEBABE”。
所以,假如要恢复该类型的文件,恢复软件会查找“CAFEBABE” 然后复制文件到另一个存储单元。
在Linux终端中进行文件恢复和数据恢复的命令

在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操作系统中,我们可以借助命令行工具来实现文件的恢复。
本文将介绍几种常用的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终端是一个强大的工具,提供了各种命令来管理和恢复数据。
在日常使用中,我们可能会不小心删除了重要的文件或数据,但是不要担心,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操作系统下两款实用的数据恢复软件

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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一次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,切记,切记,这样,自己就能最有把握的将数据拯救出来!。