服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

从失败和可能部分覆盖的mdadm raid1恢复数据

我有一个失败的硬盘(我们称之为sda ),其中包含1.5 TB的分区(我们称之为sda3 )。 还有另一个磁盘( sdb ),它也有一个1.5 TB的分区( sdb1 )。 两者都是使用元数据版本1.2的mdadm 1级RAID的一部分。 在这个RAID分区(我们称之为id md5 )里面有一个LUKSencryption容器(我们称之为md5_uncrypted )。 这个容器应该包含一个ext4分区。 在2012年8月10 sdb1某个时间,我以某种方式重新启动了RAIDarrays,但是sdb1丢失,甚至没有注意到这一点。 当我想在昨天(三个月后)更换RAID时,我开始从sdb1复制数据,直到意识到它已经过期。 所以我看了一下老sda3 。 错误的是,我运行mdadm –create而不是mdadm –assemble重新启动md5只有sda3可用。 因此,我忽略了所有警告,并让mdadm –create继续。 cryptsetup不喜欢新的RAID的内容。 如果使用相同的元数据版本,我实际上并不认为mdadm –create会损坏数据? 那么,显然是这样。 我比较了sda3和sdb1的前20 MB,并注意到它们的起始大小约为8 MB。 所以我复制了第一个8 MB的sdb1到sda3 (我有一个旧的前20 MB sda3备份),并试图组装md5 (只有一个驱动器, sda3 )。 不幸的是,这给了我一个错误: failed to add /dev/sdb1: Invalid argument 我也尝试过使用刚创buildmdadm –create上的sdb1的LUKS头文件mdadm –create d sda3 ,这个cryptsetup幸运(当然),但是它包含了垃圾。 […]