在我运行 Kubuntu Linux 13.04 的个人家用计算机上,我无法安装一个我非常珍视的分区。我的备份策略是每月执行一次备份,所以我从 8 月开始备份 :)。有没有办法恢复这个驱动器上的个人文件?
该驱动器是一个 1.5 年历史的 1000 GiB 西部数据绿色驱动器,home 安装在/dev/sdc2,文件系统根在/dev/sdc6,媒体文件在/dev/sdc3. 因此,当然sdc2会是一个去!据我所知,在驱动器的使用寿命期间没有停电或其他此类事件。我通过运行 Kubuntu LiveCD 设法获得了这些信息:
kubuntu@kubuntu:~$ sudo fdisk -l
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00008044
Device Boot Start End Blocks …Run Code Online (Sandbox Code Playgroud) TL;DR 摘要:将 md 扇区号转换为/dev/mdX设备内的偏移量,以及如何使用xfs_db. 扇区号来自sh->sectorin linux/drivers/md/raid5.c:handle_parity_checks5()。
我不知道 MD 内部结构,所以我不知道如何处理printk我添加的日志记录的输出。
组件设备的偏移(用于dd或十六进制编辑器/查看器)也很有趣。
我想我应该在 Linux-raid 邮件列表上问这个问题。是仅限订阅者,还是可以不订阅就发帖?
我的桌面(没有 LVM)直接在 4 个磁盘的 MD RAID5 上安装了 xfs。最近的mismatch_cnt清理检测到非零值(实际上是 8,因为 md 一次在 4kiB 页面上运行)。
这是 RAID5,而不是 RAID1/RAID10 ,其中mismatch_cnt!= 0 在正常操作期间可能发生。(此 wiki 页面底部的其他链接可能对某些人有用。)
我可以只是盲目地repair,但是除了失去选择重建方式的任何机会之外,我不知道要检查哪个文件可能损坏。 Frostschutz 对类似问题的回答是我找到的唯一建议,用于追踪文件系统中的差异。它既麻烦又缓慢,我宁愿使用更好的方法先将其缩小到几个文件。
奇怪的是,md 的检查功能没有报告发现错误的位置。 我加入了printk在MD / raid5.c记录sh->sector在if该增量分支mddev->resync_mismatches中handle_parity_checks5()(小片在github上发布,最初基于4.5 RC4从kernel.org。)对于这个是确定用于一般用途,它可能会需要避免在修复中大量不匹配的日志(可能只在新值 …
如何调试这个?最近几天突然出现这个问题。网站的所有备份都已损坏。
如果备份只是保留为tar,则没有问题,但是一旦 tar 被压缩为 ,gz或者xz我无法解压缩它们。
有很多空闲磁盘
Local disk space 2.68 TB total / 2.26 TB free / 432.46 GB used
Run Code Online (Sandbox Code Playgroud)
tar: Skipping to next header[===============================> ] 39% ETA 0:01:14
tar: A lone zero block at 2291466===============================> ] 44% ETA 0:01:13
tar: Exiting with failure status due to previous errors
878MiB 0:00:58 [15.1MiB/s] [===================================> ] 44%
Run Code Online (Sandbox Code Playgroud)
为什么这么说Skipping to next header?它以前从未这样做过。某些文件出现了严重错误。
目录中有大约 15k pdf、jpg 或 png 文件。
pv $backup_file | tar -izxf …Run Code Online (Sandbox Code Playgroud) 我最近有一个损坏的 ext4 文件系统抛出这些错误:
kubuntu@kubuntu:~$ sudo mount -t ext4 /dev/sdc2 c1
mount: wrong fs type, bad option, bad superblock on /dev/sdc2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
kubuntu@kubuntu:~$ sudo fsck.ext4 -v /dev/sdc2
e2fsck 1.42.5 (29-Jul-2012)
fsck.ext4: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdc2
Could this be a zero-length partition?
kubuntu@kubuntu:~$ dmesg | tail …Run Code Online (Sandbox Code Playgroud) 我有一个在大型 NAND 设备上运行的 JFFS2 根文件系统。每隔一段时间,当我重新启动计算机时,当 /sbin/init 或 /bin/login 尝试从 /lib 文件夹加载动态链接的共享库时,我会收到有关无效 ELF 标头的错误消息
这些错误导致内核恐慌,我不得不重新刷新 NAND 以使计算机重新启动并运行。
例子:
/sbin/init: error while loading shared libraries: /lib/libc.so.6: invalid ELF header
Kernel panic - not syncing: Attempted to kill init!
Call Trace:
[dffc1d20] [c0007c74] (unreliable)
[dffc1d60] [c0020d68]
[dffc1db0] [c0025074]
[dffc1e80] [c00250bc]
[dffc1f40] [c000f340]
Run Code Online (Sandbox Code Playgroud)
似乎 /lib 文件夹中的动态链接库不知何故已损坏。我不认为动态链接库在正常操作期间甚至不会写入磁盘(除非您正在进行更新)。因此,这排除了因断电而导致损坏的部分写入。
所以我能想到的唯一其他原因是 JFFS2 有某种可怕的错误,它会破坏甚至没有被写入的文件?或者NAND本身被损坏了?
有没有人有其他想法?还是我离基地很远?
我使用 Subversion 只是为了在笔记本电脑和台式机之间进行私人同步。最近我发现几个ASCII文件和几个二进制文件被损坏了。插入的不是预期的内容,而是一长串文件名和目录结构,以及一些截断的二进制数据杂散字符串。
我从未遇到过更新或提交回复表明存储库已损坏,使用 Subversion 服务器的两个客户端上没有文件系统或硬件问题。
我的问题是,有什么方法可以确定文件何时开始在 repo 中损坏,然后从旧提交中恢复文件,而它们仍然完好无损?
您可以使用 启动 mdadm 阵列的清理echo 'check' > /sys/block/mdX/md/sync_action,如果发现坏扇区,它将自动重写它(从镜像或 RAID5/6 的奇偶校验信息)。
然而,如果所有块读取成功但发现不一致,则这被视为不匹配。在这种情况下,修复很复杂,因为 mdadm 无法判断哪个镜像包含正确的数据 (RAID1/10) 或数据或奇偶校验是否已损坏 (RAID5)。
从理论上讲,如果我正确理解 RAID6,则 RAID6 的情况并非如此。因为存在双奇偶校验,所以应该可以查明单个损坏的位置,无论是数据还是奇偶校验。
使用 Linux 区域,因为我使用 Linux 应用程序和实用程序。
我的手机崩溃了(好几次)并且损坏了我的 microSD 卡。它似乎不再有分区,并且显示为 32MB 而不是 2GB。那就是使用testdisk. dd并且ddrescue仅从中提取了 30.6MB 的空值。
它是正品 SanDisk 品牌,从信誉良好的零售商处购买,该空间已经完美运行一年了。
我希望它已经有了,但我不认为询问有什么坏处。即使我忘记了我想要的几个文件,格式化也可能会给我留下一张相当无用的 32MB 卡。
如果有人有任何至少修复该卡的方法,将不胜感激。
几个月前,我用一些婚礼视频压缩了 4 个独立的文件夹(!!)。今天我尝试解压它们,最后两个没有问题,但前两个显示错误:
carmensandoval$ unzip AlineJoseLuisVideoCabina_Folder1.zip
Archive: AlineJoseLuisVideoCabina_Folder1.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of AlineJoseLuisVideoCabina_Folder1.zip
or AlineJoseLuisVideoCabina_Folder1.zip.zip, and cannot find
AlineJoseLuisVideoCabina_Folder1.zip.ZIP, period.
Run Code Online (Sandbox Code Playgroud)
正如其他人在另一篇类似文章中建议的那样,我检查了我的文件是否确实是 ZIP 文件,它们是:
file AlineJoseLuisVideoCabina_Folder1.zip
AlineJoseLuisVideoCabina_Folder1.zip: Zip archive data, at least v1.0 to extract
Run Code Online (Sandbox Code Playgroud)
我怀疑这两个文件夹在上传并将它们发送到客户端时已损坏(它们花了一段时间并且连接中断了几次,这有关系吗?)有没有什么方法可以尝试并至少恢复一些里面是什么?
\xe2\x80\x9c多重声明的块\xe2\x80\x9d 是当块似乎属于多个文件时 fsck 报告的一种错误。这会导致数据损坏,因为写入其中一个文件时两个文件都会发生更改。
\n但区块被多重认领的最初原因可能是什么?它们是如何创建的以及我如何避免它们?
\ncorruption ×10
ext4 ×3
filesystems ×2
linux-kernel ×2
raid ×2
block-device ×1
compression ×1
debian ×1
e2fsck ×1
fsck ×1
linux ×1
md ×1
mdadm ×1
memory ×1
partition ×1
sd-card ×1
subversion ×1
tar ×1
xfs ×1
zip ×1