标签: corruption

尝试打开分区时的短读

在我运行 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)

partition ext4 fsck corruption

9
推荐指数
2
解决办法
5万
查看次数

md raid5:将 md 内部扇区号转换为偏移量

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。)对于这个是确定用于一般用途,它可能会需要避免在修复中大量不匹配的日志(可能只在新值 …

raid corruption xfs linux-kernel md

8
推荐指数
1
解决办法
888
查看次数

如何调试:tar:一个单独的零块

如何调试这个?最近几天突然出现这个问题。网站的所有备份都已损坏。

如果备份只是保留为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)

tar debian corruption

8
推荐指数
1
解决办法
5555
查看次数

ext(4?) 文件系统是否本质上以更容易损坏的方式存储较新的数据?

我最近有一个损坏的 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)

ext4 corruption

7
推荐指数
1
解决办法
428
查看次数

Linux NAND 根文件系统问题

我有一个在大型 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本身被损坏了?

有没有人有其他想法?还是我离基地很远?

linux filesystems memory corruption

6
推荐指数
1
解决办法
539
查看次数

Subversion:如何确定文件何时损坏

我使用 Subversion 只是为了在笔记本电脑和台式机之间进行私人同步。最近我发现几个ASCII文件和几个二进制文件被损坏了。插入的不是预期的内容,而是一长串文件名和目录结构,以及一些截断的二进制数据杂散字符串。

我从未遇到过更新或提交回复表明存储库已损坏,使用 Subversion 服务器的两个客户端上没有文件系统或硬件问题。

我的问题是,有什么方法可以确定文件何时开始在 repo 中损坏,然后从旧提交中恢复文件,而它们仍然完好无损?

subversion version-control corruption

6
推荐指数
1
解决办法
1686
查看次数

RAID6 刷洗不匹配修复?

您可以使用 启动 mdadm 阵列的清理echo 'check' > /sys/block/mdX/md/sync_action,如果发现坏扇区,它将自动重写它(从镜像或 RAID5/6 的奇偶校验信息)。

然而,如果所有块读取成功但发现不一致,则这被视为不匹配。在这种情况下,修复很复杂,因为 mdadm 无法判断哪个镜像包含正确的数据 (RAID1/10) 或数据或奇偶校验是否已损坏 (RAID5)。

从理论上讲,如果我正确理解 RAID6,则 RAID6 的情况并非如此。因为存在双奇偶校验,所以应该可以查明单个损坏的位置,无论是数据还是奇偶校验。

  1. 我的理解是否正确,这在理论上应该可行吗?
  2. 如果正确,mdadm 是否能够在不猜测哪个块损坏的情况下修复这些不一致的数据?

raid mdadm corruption

6
推荐指数
1
解决办法
2169
查看次数

SD卡损坏并卡在32MB,有什么办法修复吗?

使用 Linux 区域,因为我使用 Linux 应用程序和实用程序。

我的手机崩溃了(好几次)并且损坏了我的 microSD 卡。它似乎不再有分区,并且显示为 32MB 而不是 2GB。那就是使用testdisk. dd并且ddrescue仅从中提取了 30.6MB 的空值。

它是正品 SanDisk 品牌,从信誉良好的零售商处购买,该空间已经完美运行一年了。

我希望它已经有了,但我不认为询问有什么坏处。即使我忘记了我想要的几个文件,格式化也可能会给我留下一张相当无用的 32MB 卡。

如果有人有任何至少修复该卡的方法,将不胜感激。

data-recovery block-device corruption sd-card

5
推荐指数
1
解决办法
4万
查看次数

解压错误,可以恢复吗?

几个月前,我用一些婚礼视频压缩了 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)

我怀疑这两个文件夹在上传并将它们发送到客户端时已损坏(它们花了一段时间并且连接中断了几次,这有关系吗?)有没有什么方法可以尝试并至少恢复一些里面是什么?

zip compression corruption

5
推荐指数
1
解决办法
1万
查看次数

什么会导致 ext4 驱动器上出现“多重声明的块”?

\xe2\x80\x9c多重声明的块\xe2\x80\x9d 是当块似乎属于多个文件时 fsck 报告的一种错误。这会导致数据损坏,因为写入其中一个文件时两个文件都会发生更改。

\n

但区块被多重认领的最初原因可能是什么?它们是如何创建的以及我如何避免它们?

\n

filesystems ext4 corruption linux-kernel e2fsck

5
推荐指数
1
解决办法
127
查看次数