On Fri, 2016-03-18 at 23:14 +0100, KARBOWSKI Piotr wrote: > Hi, > > On 03/18/2016 10:36 PM, Viacheslav Dubeyko wrote: > > It needs to dive into state of the volume. You can use lscp and lssu > > tools with the goal to retrieve segments and checkpoints state. But, > > again, this path could provide opportunity for understanding the bug > > essence and environment. I could see only one way for "recovering" > > corrupted volume: (1) understand the current state of volume's segments; > > (2) localize erroneous segment; (3) try to zero erroneous segment(s) by > > means of dd utility; (4) try to mount again. But it's really dangerous > > way, you could loose your data. > > I could try, but lscp and lssu does not work with this filesystem since > crash. Only 'nilfs-tune -l' display anything. > > # strace lssu /dev/loop/1 2>&1 | grep loop > execve("/usr/bin/lssu", ["lssu", "/dev/loop/1"], [/* 61 vars */]) = 0 > readlink("/dev/loop", 0x7ffe6a073ac0, 4096) = -1 EINVAL (Invalid argument) > readlink("/dev/loop/1", 0x7ffe6a073ac0, 4096) = -1 EINVAL (Invalid argument) > readlink("/dev/loop", 0x7ffe6a073ac0, 4096) = -1 EINVAL (Invalid argument) > readlink("/dev/loop/1", 0x7ffe6a073ac0, 4096) = -1 EINVAL (Invalid argument) > write(2, "lssu: cannot open NILFS on /dev/"..., 66lssu: cannot open > NILFS on /dev/loop/1: No such file or directory > > Does lscp and lssu needs actually mounted filesystem? It does run > readlink() and check /proc/mounts... > Ahhh, I've forgot that you cannot mount your volume. Yes, you can use lscp and lssu for mounted volume only. So, it needs to analyze raw volume's content in such situation. No another way. Welcome to the real world. Sorry.. If you have such issue after power outage then the most probable reason of such issue is corruption of the last segment. Theoretically, NILFS2 has all necessary for recovering from such issue (because NILFS2 has checkpoints for all metadata in previous logs). But current state of NILFS2 code is unable to overcome such situation. Another possible reason could be inconsistent state of superblock. NILFS2 has two superblocks (in the beginning and in the end of the volume). So, it's possible that one of the superblock (or both) has inconsistent state. It means that some of superblock's field will contain some invalid state. So, you need to elaborate vision what's wrong on your volume and to modify the volume state manually. Thanks, Vyacheslav Dubeyko. -- To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html