我无法安装 300GB 外部(在外部外壳中)HDD 的单个分区。 fsck 工具都没有添加任何内容,它们甚至无法识别分区。我自己都忘了自己用的是ext4还是reiserfs了。硬盘看起来没问题。 Testdisk 看到了一个 Linux 分区,但没有提供更多详细信息。
直到……我跟着恢复 ext4 超级块并尝试了该sudo losetup -v -o $i /dev/loop1 /dev/sdc
命令。现在 testdisk 至少给了我一个绿色标签,告诉我这是一个 reiserfs 3.6 分区并获得了正确的设备标签!我特别幸运的是i=32768
:
$ dmesg
[10147.132161] REISERFS (device loop1): found reiserfs format "3.6" with standard journal
[10147.132204] REISERFS (device loop1): using ordered data mode
[10147.132206] reiserfs: using flush barriers
[10147.132335] REISERFS (device loop1): journal params: device loop1, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30
[10147.132745] REISERFS (device loop1): checking transaction log (loop1)
[10147.133630] REISERFS warning: reiserfs-5090 is_tree_node: node level 61404 does not match to the expected one 4
[10147.133638] REISERFS error (device loop1): vs-5150 search_by_key: invalid format found in block 67403788. Fsck?
[10147.133644] REISERFS (device loop1): Remounting filesystem read-only
[10147.133652] REISERFS error (device loop1): vs-13070 reiserfs_read_locked_inode: i/o failure occurred trying to find stat data of [1 2 0x0 SD]
[10147.133660] REISERFS (device loop1): Using r5 hash to sort names
我无法像你看到的那样安装它,但对我来说,我似乎已经接近了:
$ sudo mount -t reiserfs /dev/loop1 /mnt
mount: /dev/loop1: can't read superblock
我看到鬼魂只是因为我跳过了一些字节吗?为什么 testdisk 从原始 /dev/sdc1 中看不到这一点?我主要使用只读工具,但我可能要求 testdisk 写入一次(写入分区表?),这样我可能会丢失部分,尽管我不怀疑大多数可以恢复。最重要的是,我该如何继续?
我可以在原始 /dev/sdc1 上运行 reiserfsck,但如果有原因导致偏移效果更好,我如何首先将其整合到我的 HDD 上?
请适当地指出您的解决方案的含义(有多干净?如果它写为“我想知道”)。我可以放弃磁盘上的数据(没有什么个人的),但如果很容易修复,我会喜欢的。另外,Foremost 似乎能够恢复我的文件,但我没有空间来写入它们。
UPDATE1:奇怪的是,我在实际笔记本电脑上看到的结果比在 Ubuntu LiveCD 上看到的结果要少(也许这就是我遇到麻烦的原因)。我尝试了一些东西,如果我使用上面的 losetup 然后运行,我只会从 reiserfsck 获得一些智能reiserfsck --check /dev/loop1
。然而,它似乎中止了重播交易。我得到:
[ 682.743728] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
[ 682.743734] ata1.00: ST-ATA: DRQ=0 without device error, dev_stat 0x50
[ 682.743740] ata1.00: failed command: DEVICE CONFIGURATION OVERLAY
[ 682.743747] ata1.00: cmd b1/c2:00:00:00:00/00:00:00:00:00/40 tag 0 pio 512 in
[ 682.743749] res 50/00:00:00:00:00/00:00:00:00:00/40 Emask 0x202 (HSM violation)
[ 682.743753] ata1.00: status: { DRDY }
[ 682.743763] ata1.00: hard resetting link
[ 683.060965] ata1.01: hard resetting link
[ 684.087234] ata1.01: failed to resume link (SControl 0)
[ 684.243064] ata1.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 684.243086] ata1.01: SATA link down (SStatus 0 SControl 0)
[ 684.283150] ata1.00: configured for UDMA/133
[ 684.283860] ata1: EH complete
[ 727.846495] usb 2-1.3.1: reset high-speed USB device number 6 using ehci_hcd
[ 766.757684] usb 2-1.3.1: reset high-speed USB device number 6 using ehci_hcd
这是驱动器故障吗?看起来不像。
UPDATE2:它必须重新创建日志头,然后必须重新创建超级块,现在正在重建树(但至少它正在做一些事情)。根据我的经验,这意味着我无法以连贯的方式获取数据:-)。但这一切都是在循环设备中完成的。这让我回到了最初的问题:我如何从循环设备中的工作分区返回到可直接访问的工作分区(我想是 63 个柱面)?
UPDATE3:我重建了树并得到了失物招领,并带回了一些东西。第二天尝试挂载时,又无法挂载。总体而言,它表现出随机行为。我认为硬盘实际上已经死了。智能数据是我尝试的第一件事,但它永远无法访问,我 - 错了? - 假设这是因为外壳的原因。我尝试使用新分区对其进行格式化,但即使这样也不会在格式化后持续很长时间。
答案1
恢复损坏的 reiserfs 分区有时会破坏您尝试恢复的数据(我知道,我已经做到了)。
因此,首先,将整个磁盘的驱动器级映像转移到其他地方。
dd if=/dev/source of=/home/diskimage.img
拍摄磁盘映像后,只有在那时,才尝试进行 fsck 或其他恢复。
有几个链接可以帮助尝试恢复 reiserfs。我给你一对。
http://www.datarecoveryuk.co.uk/software/linux/reiserfs-partition-recovery.aspx
-
很多“恢复 reiserfs”或“reiserfs 分区丢失”的链接都是商业恢复服务的链接,我认为您没有在寻找......