Skip to contentSkip to conversation

FS won't mount, open_ctree failed, Assertion !(path->slots[0] == 0) failed

DISCUSSION [email protected] 4 participants 8 messages Dec 7, 2011 – Dec 27, 2011 Btrfs file system

lore
Share & tools
lore
#0 lore raw

So I'm having a bit of trouble with one of my btrfs filesystems. It isn't mounting after a power failure. I can't get restore or btrfsck to run, even on backup supers. I've pasted some output below. My btrfs-progs below come from git this morning, running on linux 3.2.0.

# mount /dev/md2 /media/test/
mount: wrong fs type, bad option, bad superblock on /dev/md2,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

dmesg:

[26423.775471] device label LUMBERYARD devid 1 transid 1268960 /dev/md2
[26423.860966] parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
[26423.860974] parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
[26423.860979] parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
[26423.872936] btrfs: open_ctree failed
# ./btrfsck /dev/md2
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
Ignoring transid failure
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
Aborted
# ./btrfsck -s 1 /dev/md2
using SB copy 1, bytenr 67108864
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
Aborted
# ./btrfsck -s 2 /dev/md2
using SB copy 2, bytenr 274877906944
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
Aborted
# ./find-root /dev/md2
http://pastebin.com/3umfQHhh
# ./restore -i -f 25483145760768 /dev/md2 /tmp
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
Ignoring transid failure
restore: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
Aborted
# ./restore -i -u 1 /dev/md2 /tmp
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
restore: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
Aborted
# ./restore -i -u 1 -f 25483145760768 /dev/md2 /tmp
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
restore: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed.
Aborted

All further restores with various combinations of superblocks and bytenr's I tried produced output identical to one of the restores above.

As the newest data on this filesystem had not been backed up, it would be nice if I could either return the filesystem to a mountable state, or recover specific files to another filesystem. Any ideas?

-- David Smith

#1 lore raw
Quoted 2 lines · <dsmith <at> tgen.org> writes:

So I'm having a bit of trouble with one of my btrfs filesystems. It isn't

mounting after a power failure. I

Quoted 1 line

can't get restore or btrfsck to run, even on backup supers. I've pasted some

output below. My btrfs-progs

Quoted 11 lines

below come from git this morning, running on linux 3.2.0.

# mount /dev/md2 /media/test/
mount: wrong fs type, bad option, bad superblock on /dev/md2,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

dmesg:

[26423.775471] device label LUMBERYARD devid 1 transid 1268960 /dev/md2
[26423.860966] parent transid verify failed on 25487586828288 wanted 1268960

found 1246404

Quoted 1 line
[26423.860974] parent transid verify failed on 25487586828288 wanted 1268960

found 1246404

Quoted 1 line
[26423.860979] parent transid verify failed on 25487586828288 wanted 1268960

found 1246404

Quoted 9 lines
[26423.872936] btrfs: open_ctree failed
# ./btrfsck /dev/md2
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
Ignoring transid failure
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] ==

0)' failed.

Quoted 9 lines

Aborted

# ./btrfsck -s 1 /dev/md2
using SB copy 1, bytenr 67108864
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] ==

0)' failed.

Quoted 9 lines

Aborted

# ./btrfsck -s 2 /dev/md2
using SB copy 2, bytenr 274877906944
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
btrfsck: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] ==

0)' failed.

Quoted 5 lines

Aborted

# ./find-root /dev/md2
http://pastebin.com/3umfQHhh
Quoted 7 lines
# ./restore -i -f 25483145760768 /dev/md2 /tmp
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
parent transid verify failed on 25487586828288 wanted 1268960 found 1246404
Ignoring transid failure
restore: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] ==

0)' failed.

Quoted 8 lines

Aborted

# ./restore -i -u 1 /dev/md2 /tmp
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
restore: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] ==

0)' failed.

Quoted 8 lines

Aborted

# ./restore -i -u 1 -f 25483145760768 /dev/md2 /tmp
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268949
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
parent transid verify failed on 25483242758144 wanted 1268944 found 1268957
Ignoring transid failure
restore: root-tree.c:46: btrfs_find_last_root: Assertion `!(path->slots[0] ==

0)' failed.

Quoted 3 lines

Aborted

All further restores with various combinations of superblocks and bytenr's I

tried produced output

Quoted 3 lines

identical to one of the restores above.

As the newest data on this filesystem had not been backed up, it would be nice

if I could either return the

Quoted 1 line

filesystem to a mountable state, or recover specific files to another

filesystem. Any ideas?

Quoted 1 line

I'm having the very same issue as you. I've tried all the latest btrfs tools, btrfsck, btrfs-zero-log, restore, find-root etc etc.

All to no avail. only err output is always

"" btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed. ""

This is a very cryptic error that doesn't tell me anything. and it seems to be the only error that is ever thrown when transaction id's get out of sync.

Is there ANY way to even recover ANY files at all from these btrfs filesystems that lose transid sync? mine occurred simply from a loose sata cable falling out of one of my drives while the system was running.

This is extremely frustrating, but I guess I have no one to blame but myself. I do have a backup but its about a month old (my cron backup script died for some reason and I didn't notice). So I'm faced with losing a months worth of work :(

Please help us, anyone!

#2 lore raw
Quoted 14 lines · Evan LeCompte

I'm having the very same issue as you. I've tried all the latest btrfs tools, btrfsck, btrfs-zero-log, restore, find-root etc etc.

All to no avail. only err output is always

"" btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed. ""

This is a very cryptic error that doesn't tell me anything. and it seems to be the only error that is ever thrown when transaction id's get out of sync.

Is there ANY way to even recover ANY files at all from these btrfs filesystems that lose transid sync? mine occurred simply from a loose sata cable falling out of one of my drives while the system was running.

Quoted 5 lines

This is extremely frustrating, but I guess I have no one to blame but myself. I do have a backup but its about a month old (my cron backup script died for some reason and I didn't notice). So I'm faced with losing a months worth of work :(

Please help us, anyone!

Which kernel are you running? If you're on a 3.2 kernel or you have a recent pull of my git tree, you can try mount -o recovery.

My guess is that your machine went down pretty quickly after the loose sata cable fell out? In that case mount -o recovery should work.

Otherwise we can work through the copy out recovery tools.

-chris

#3 lore raw
Quoted 27 lines · Chris Mason
Quoted 14 lines · Evan LeCompte

I'm having the very same issue as you. I've tried all the latest btrfs tools, btrfsck, btrfs-zero-log, restore, find-root etc etc.

All to no avail. only err output is always

"" btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed. ""

This is a very cryptic error that doesn't tell me anything. and it seems to be the only error that is ever thrown when transaction id's get out of sync.

Is there ANY way to even recover ANY files at all from these btrfs filesystems that lose transid sync? mine occurred simply from a loose sata cable falling out of one of my drives while the system was running.

Quoted 5 lines

This is extremely frustrating, but I guess I have no one to blame but myself. I do have a backup but its about a month old (my cron backup script died for some reason and I didn't notice). So I'm faced with losing a months worth of work :(

Please help us, anyone!

Which kernel are you running? If you're on a 3.2 kernel or you have a recent pull of my git tree, you can try mount -o recovery.

My guess is that your machine went down pretty quickly after the loose sata cable fell out? In that case mount -o recovery should work.

Quoted 9 lines

Otherwise we can work through the copy out recovery tools.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

I'm running on a ubuntu 11.10 livecd with kernel 3.0.0 Downloaded your latest git tree but

mount -o recovery failed

Is there anythng else I can do? I suppose I could try and build a livecd with kernel 3.2 on it but thats pretty damn new so I'd have to engineer one from scratch or have another linux installation somewhere...

Signature · 2 lines
--
Evan LeCompte
#4 lore raw
In reply to Chris Mason
Quoted 27 lines · Chris Mason
Quoted 14 lines · Evan LeCompte

I'm having the very same issue as you. I've tried all the latest btrfs tools, btrfsck, btrfs-zero-log, restore, find-root etc etc.

All to no avail. only err output is always

"" btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed. ""

This is a very cryptic error that doesn't tell me anything. and it seems to be the only error that is ever thrown when transaction id's get out of sync.

Is there ANY way to even recover ANY files at all from these btrfs filesystems that lose transid sync? mine occurred simply from a loose sata cable falling out of one of my drives while the system was running.

Quoted 5 lines

This is extremely frustrating, but I guess I have no one to blame but myself. I do have a backup but its about a month old (my cron backup script died for some reason and I didn't notice). So I'm faced with losing a months worth of work :(

Please help us, anyone!

Which kernel are you running? If you're on a 3.2 kernel or you have a recent pull of my git tree, you can try mount -o recovery.

My guess is that your machine went down pretty quickly after the loose sata cable fell out? In that case mount -o recovery should work.

Quoted 9 lines

Otherwise we can work through the copy out recovery tools.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

I'm running on a ubuntu 11.10 livecd (kernel 3.0.0) but I did clone your git repo and make && make install it.

however

mount -t btrfs -o recovery /dev/sda4 /mnt failed
same error , bad superblock

also, this was a btrfs raid0 setup so it could be mounted via /dev/sda4 or /dev/sdb, however after that sata cable came loose I cannot mount either.

Is there anything else we can do? I've screwed myself twice now using btrfs raid0 so I think its time to call it quits and use something else for a while. but I'd really like to at least get my old data off this
because my last backup is a month behind :(

Signature · 2 lines
--
Evan LeCompte
#5 lore raw
In reply to Chris Mason
Quoted 27 lines · Chris Mason
Quoted 14 lines · Evan LeCompte

I'm having the very same issue as you. I've tried all the latest btrfs tools, btrfsck, btrfs-zero-log, restore, find-root etc etc.

All to no avail. only err output is always

"" btrfs_find_last_root: Assertion `!(path->slots[0] == 0)' failed. ""

This is a very cryptic error that doesn't tell me anything. and it seems to be the only error that is ever thrown when transaction id's get out of sync.

Is there ANY way to even recover ANY files at all from these btrfs filesystems that lose transid sync? mine occurred simply from a loose sata cable falling out of one of my drives while the system was running.

Quoted 5 lines

This is extremely frustrating, but I guess I have no one to blame but myself. I do have a backup but its about a month old (my cron backup script died for some reason and I didn't notice). So I'm faced with losing a months worth of work :(

Please help us, anyone!

Which kernel are you running? If you're on a 3.2 kernel or you have a recent pull of my git tree, you can try mount -o recovery.

My guess is that your machine went down pretty quickly after the loose sata cable fell out? In that case mount -o recovery should work.

Quoted 9 lines

Otherwise we can work through the copy out recovery tools.

-chris

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Chris,
Can you help me work through the copy out recovery tools that you mentioned?

I can't seem to get anything else to work, if I could just recover the files so I don't lose a month's work I'd be so happy...

Thank you.

--
Evan LeCompte

#6 lore raw

Am Montag, 26. Dezember 2011 schrieb Evan LeCompte:

Quoted 8 lines · Chris Mason
Quoted 7 lines · Evan LeCompte
Quoted 6 lines

I'm having the very same issue as you. I've tried all the latest btrfs tools, btrfsck, btrfs-zero-log, restore, find-root etc etc. =20
All to no avail. only err output is always
=20
"" btrfs_find_last_root: Assertion `!(path->slots[0] =3D=3D 0)' fa=

iled.

Quoted 17 lines
Quoted 17 lines
Quoted 17 lines

""
=20
This is a very cryptic error that doesn't tell me anything. and it seems to be the only error that is ever thrown when transaction id's get out of sync.
=20
Is there ANY way to even recover ANY files at all from these btrfs filesystems that lose transid sync? mine occurred simply from a loose sata cable falling out of one of my drives while the system was running.
=20
This is extremely frustrating, but I guess I have no one to blame but myself. I do have a backup but its about a month old (my cron backup script died for some reason and I didn't notice). So I'm faced with losing a months worth of work :(
=20
Please help us, anyone!

Quoted 2 lines
Quoted 2 lines

=20
Which kernel are you running? If you're on a 3.2 kernel or you hav=

e

Quoted 7 lines
Quoted 7 lines

a recent pull of my git tree, you can try mount -o recovery. =20
My guess is that your machine went down pretty quickly after the loose sata cable fell out? In that case mount -o recovery should work.
=20
Otherwise we can work through the copy out recovery tools.

[=E2=80=A6]

Quoted 5 lines

Chris,
Can you help me work through the copy out recovery tools that you mentioned?
=20
I can't seem to get anything else to work, if I could just recover th=

e

Quoted 1 line

files so I don't lose a month's work I'd be so happy...

=46or starters I think it would be good when you explain exactly, what = tools=20
you tried and what errors you have gotten (copy&paste the relevant part= s!)=20
by doing so. It also makes sense to do this with a recent copy of btrfs= -
tools.

I am no expert in BTRFS recovery but I think its easier to work from=20 there.

Aside from that, backup or not, I wouldn=C2=B4t put important data on a=
RAID 0=20
across several devices and when it usually just is for saving on backup= =20
restauration time in case one of the devices fails. Better have some=20 redundant RAID *and* a backup. Or if "RAID 0" at least BTRFS on *one*=20 device, instead of mutiple. Or otherwise said: I would use RAID-0 acros= s=20
mutiple disks just for scratch data that I can easily afford to loose.

--=20
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#7 lore raw
In reply to Evan LeCompte

Am Montag, 26. Dezember 2011 schrieb Evan LeCompte:

Quoted 6 lines · Chris Mason
Quoted 5 lines · Evan LeCompte
Quoted 4 lines

I'm having the very same issue as you. I've tried all the latest btrfs tools, btrfsck, btrfs-zero-log, restore, find-root etc etc. =20
All to no avail. only err output is always

[=E2=80=A6]

Quoted 4 lines
Quoted 4 lines
Quoted 4 lines

Is there ANY way to even recover ANY files at all from these btrfs filesystems that lose transid sync? mine occurred simply from a loose sata cable falling out of one of my drives while the system was running.

[=E2=80=A6]

Quoted 3 lines
Quoted 3 lines
Quoted 1 line

Please help us, anyone!

=20
Which kernel are you running? If you're on a 3.2 kernel or you hav=

e

Quoted 1 line
Quoted 1 line

a recent pull of my git tree, you can try mount -o recovery.

[=E2=80=A6]

Quoted 3 lines

Chris,
Can you help me work through the copy out recovery tools that you mentioned?

If all else fails depending of the file formats of the files you want t= o=20
recover you can also try some of the forensic tools like photorec from=20 testdisk or foremost. I believe there is a third one. This should get y= ou=20
the files, although the filenames and directory structure will likely b= e=20
lost. And it takes quite long on higher capacity or slow drives.

With photorec I managed to recover 100 images from a smartmedia card th= at=20
appeared empty on Linux - while the digital camera still saw the images= =2E

--=20
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" = in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html