linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* btrfs raid1 degraded does not mount or fsck
@ 2010-10-29 20:53 Vladi Gergov
  2010-10-30  6:55 ` Goffredo Baroncelli
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Vladi Gergov @ 2010-10-29 20:53 UTC (permalink / raw)
  To: linux-btrfs

kernel: scratch git repo from today 10.29.10 @ 14:30 PST
Btrfs v0.19-35-g1b444cd-dirty

>>> gypsyops @ /mnt > sudo btrfs filesystem show
Label: 'das4'  uuid: d0e5137f-e5e7-49da-91f6-a9c4e4e72c6f
    Total devices 3 FS bytes used 1.38TB
    devid    3 size 1.82TB used 0.00 path /dev/sdb
    devid    2 size 1.82TB used 1.38TB path /dev/sdc
    *** Some devices missing

Btrfs v0.19-35-g1b444cd-dirty

>>> gypsyops @ /mnt > sudo mount -o degraded /dev/sdc das3/
Password: 
mount: wrong fs type, bad option, bad superblock on /dev/sdc,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

[  684.577540] device label das4 devid 2 transid 107954 /dev/sdc
[  684.595150] btrfs: allowing degraded mounts
[  684.595594] btrfs: failed to read chunk root on sdb
[  684.604110] btrfs: open_ctree failed

>>> gypsyops @ /mnt > sudo btrfsck /dev/sdc
btrfsck: volumes.c:1367: btrfs_read_sys_array: Assertion `!(ret)' failed.

any help please?

-- 

,-| Vladi
`-| Gergov

!DSPAM:4ccb39a9191821603519226!



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: btrfs raid1 degraded does not mount or fsck
  2010-10-29 20:53 btrfs raid1 degraded does not mount or fsck Vladi Gergov
@ 2010-10-30  6:55 ` Goffredo Baroncelli
  2010-11-16 21:50 ` Chris Mason
  2012-09-17 20:38 ` btrfs raid1 degraded in need of chuck tree rebuild Vladi Gergov
  2 siblings, 0 replies; 7+ messages in thread
From: Goffredo Baroncelli @ 2010-10-30  6:55 UTC (permalink / raw)
  To: linux-btrfs

On Friday, 29 October, 2010, Vladi Gergov wrote:
> kernel: scratch git repo from today 10.29.10 @ 14:30 PST
> Btrfs v0.19-35-g1b444cd-dirty
> 
> >>> gypsyops @ /mnt > sudo btrfs filesystem show
> Label: 'das4'  uuid: d0e5137f-e5e7-49da-91f6-a9c4e4e72c6f
>     Total devices 3 FS bytes used 1.38TB
>     devid    3 size 1.82TB used 0.00 path /dev/sdb
>     devid    2 size 1.82TB used 1.38TB path /dev/sdc
>     *** Some devices missing
> 
> Btrfs v0.19-35-g1b444cd-dirty
> 
> >>> gypsyops @ /mnt > sudo mount -o degraded /dev/sdc das3/
> Password: 
> mount: wrong fs type, bad option, bad superblock on /dev/sdc,
>        missing codepage or helper program, or other error
>        In some cases useful info is found in syslog - try
>        dmesg | tail  or so
> 
> [  684.577540] device label das4 devid 2 transid 107954 /dev/sdc
> [  684.595150] btrfs: allowing degraded mounts
> [  684.595594] btrfs: failed to read chunk root on sdb
> [  684.604110] btrfs: open_ctree failed
> 
> >>> gypsyops @ /mnt > sudo btrfsck /dev/sdc
> btrfsck: volumes.c:1367: btrfs_read_sys_array: Assertion `!(ret)' failed.
> 
> any help please?

did you execute 

	btrfs dev scan

before trying to mount the filesystem ?

> -- 
> 
> ,-| Vladi
> `-| Gergov
> 
> !DSPAM:4ccb39a9191821603519226!
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


-- 
gpg key@ keyserver.linux.it: Goffredo Baroncelli (ghigo) <kreijack@inwind.it>
Key fingerprint = 4769 7E51 5293 D36C 814E  C054 BF04 F161 3DC5 0512

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: btrfs raid1 degraded does not mount or fsck
  2010-10-29 20:53 btrfs raid1 degraded does not mount or fsck Vladi Gergov
  2010-10-30  6:55 ` Goffredo Baroncelli
@ 2010-11-16 21:50 ` Chris Mason
  2011-10-10  4:42   ` Larry Reaves
  2012-09-17 20:38 ` btrfs raid1 degraded in need of chuck tree rebuild Vladi Gergov
  2 siblings, 1 reply; 7+ messages in thread
From: Chris Mason @ 2010-11-16 21:50 UTC (permalink / raw)
  To: Vladi Gergov; +Cc: linux-btrfs

Excerpts from Vladi Gergov's message of 2010-10-29 16:53:42 -0400:
> >>> gypsyops @ /mnt > sudo mount -o degraded /dev/sdc das3/
> Password: 
> mount: wrong fs type, bad option, bad superblock on /dev/sdc,
>        missing codepage or helper program, or other error
>        In some cases useful info is found in syslog - try
>        dmesg | tail  or so
> 
> [  684.577540] device label das4 devid 2 transid 107954 /dev/sdc
> [  684.595150] btrfs: allowing degraded mounts
> [  684.595594] btrfs: failed to read chunk root on sdb
> [  684.604110] btrfs: open_ctree failed
> 
> >>> gypsyops @ /mnt > sudo btrfsck /dev/sdc
> btrfsck: volumes.c:1367: btrfs_read_sys_array: Assertion `!(ret)' failed.

Ok, I dug through this and found the bug responsible for your
unmountable FS.  When we're mounted in degraded mode, and we don't have
enough drives available to do raid1,10, we're can use the wrong raid
level for new allocations.

I'm fixing the kernel side so this doesn't happen anymore, but I'll need
to rebuild the chunk tree (and probably a few others) off your good disk to
fix things.

I've got it reproduced here though, so I'll make an fsck that can scan
for the correct trees and fix it for you.

Since you're basically going to be my first external fsck customer, is
there anyway you can do a raw device based backup of the blocks?  This
way if I do mess things up we can repeat the experiment.

-chris

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: btrfs raid1 degraded does not mount or fsck
  2010-11-16 21:50 ` Chris Mason
@ 2011-10-10  4:42   ` Larry Reaves
  0 siblings, 0 replies; 7+ messages in thread
From: Larry Reaves @ 2011-10-10  4:42 UTC (permalink / raw)
  To: linux-btrfs

Chris Mason <chris.mason <at> oracle.com> writes:

> 
> Excerpts from Vladi Gergov's message of 2010-10-29 16:53:42 -0400:
> > >>> gypsyops @ /mnt > sudo mount -o degraded /dev/sdc das3/
> > Password: 
> > mount: wrong fs type, bad option, bad superblock on /dev/sdc,
> >        missing codepage or helper program, or other error
> >        In some cases useful info is found in syslog - try
> >        dmesg | tail  or so
> > 
> > [  684.577540] device label das4 devid 2 transid 107954 /dev/sdc
> > [  684.595150] btrfs: allowing degraded mounts
> > [  684.595594] btrfs: failed to read chunk root on sdb
> > [  684.604110] btrfs: open_ctree failed
> > 
> > >>> gypsyops @ /mnt > sudo btrfsck /dev/sdc
> > btrfsck: volumes.c:1367: btrfs_read_sys_array: Assertion `!(ret)' failed.
> 
> Ok, I dug through this and found the bug responsible for your
> unmountable FS.  When we're mounted in degraded mode, and we don't have
> enough drives available to do raid1,10, we're can use the wrong raid
> level for new allocations.
> 
> I'm fixing the kernel side so this doesn't happen anymore, but I'll need
> to rebuild the chunk tree (and probably a few others) off your good disk to
> fix things.
> 
> I've got it reproduced here though, so I'll make an fsck that can scan
> for the correct trees and fix it for you.
> 
> Since you're basically going to be my first external fsck customer, is
> there anyway you can do a raw device based backup of the blocks?  This
> way if I do mess things up we can repeat the experiment.
> 
> -chris

I'm seeing this same error, uname -a shows:
2.6.38-11-generic
although, my fs went down a month or so ago so it could have been a slightly
earlier Ubuntu kernel.  Is this the same issue?  Is that very targeted fsck
available somewhere?  I've got my replacement disk ready to add, I just need to
get the other 3 mounted.  Data and metadata are both raid10.  I really need to
start tracking the kernel again :(.  Thanks for any help.

-Larry


^ permalink raw reply	[flat|nested] 7+ messages in thread

* btrfs raid1 degraded in need of chuck tree rebuild
  2010-10-29 20:53 btrfs raid1 degraded does not mount or fsck Vladi Gergov
  2010-10-30  6:55 ` Goffredo Baroncelli
  2010-11-16 21:50 ` Chris Mason
@ 2012-09-17 20:38 ` Vladi Gergov
  2 siblings, 0 replies; 7+ messages in thread
From: Vladi Gergov @ 2012-09-17 20:38 UTC (permalink / raw)
  To: linux-btrfs; +Cc: chris.mason

Below is my original post about my fs. Just wondering if anyone knows if
I can at this point get my data back or cut my losses. Is an fsck cable
of getting this fixed close or has my 2 year wait been in vain. Thanks
in advance!

Excerpts from Vladi Gergov's message of 2010-10-29 16:53:42 -0400:
> >>> gypsyops @ /mnt > sudo mount -o degraded /dev/sdc das3/
> Password: 
> mount: wrong fs type, bad option, bad superblock on /dev/sdc,
>        missing codepage or helper program, or other error
>        In some cases useful info is found in syslog - try
>        dmesg | tail  or so
> 
> [  684.577540] device label das4 devid 2 transid 107954 /dev/sdc
> [  684.595150] btrfs: allowing degraded mounts
> [  684.595594] btrfs: failed to read chunk root on sdb
> [  684.604110] btrfs: open_ctree failed
> 
> >>> gypsyops @ /mnt > sudo btrfsck /dev/sdc
> btrfsck: volumes.c:1367: btrfs_read_sys_array: Assertion `!(ret)'
> failed.

Ok, I dug through this and found the bug responsible for your
unmountable FS.  When we're mounted in degraded mode, and we don't have
enough drives available to do raid1,10, we're can use the wrong raid
level for new allocations.

I'm fixing the kernel side so this doesn't happen anymore, but I'll need
to rebuild the chunk tree (and probably a few others) off your good disk
to
fix things.

I've got it reproduced here though, so I'll make an fsck that can scan
for the correct trees and fix it for you.

Since you're basically going to be my first external fsck customer, is
there anyway you can do a raw device based backup of the blocks?  This
way if I do mess things up we can repeat the experiment.

-chris

-- 

,-| Vladi
`-| Gergov

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: btrfs raid1 degraded does not mount or fsck
  2016-04-09 22:44 btrfs raid1 degraded does not mount or fsck Vladi Gergov
@ 2016-04-10  6:55 ` Duncan
  0 siblings, 0 replies; 7+ messages in thread
From: Duncan @ 2016-04-10  6:55 UTC (permalink / raw)
  To: linux-btrfs

[Please keep your replies in standard quoted-context, then reply-in-
context, order.  I'm reordering here, but often either don't include 
complete context or simply don't bother replying, when it's too much work 
to get the reply in the proper context.]

Vladi Gergov posted on Sat, 09 Apr 2016 15:44:41 -0700 as excerpted:

> On Tuesday, 16.11.10 at 16:50, Chris Mason wrote:

>> Excerpts from Vladi Gergov's message of 2010-10-29 16:53:42 -0400:

[snip]

Wow, followups to old message threads!  A lot has changed since 2010!

>> Ok, I dug through this and found the bug responsible for your
>> unmountable FS.  When we're mounted in degraded mode, and we don't have
>> enough drives available to do raid1,10, we're can use the wrong raid
>> level for new allocations.
>> 
>> I'm fixing the kernel side so this doesn't happen anymore [...]

Interestingly that's still an issue, tho AFAIK now deliberate. [1] When 
mounted degraded-writable and there's not enough devices with free space 
to create new chunks of the appropriate raid type, btrfs will "degrade" 
to writing single-mode chunks.

While this does allow writing to continue, including either balances to 
change the raid level or btrfs replace or btrfs device add to again 
provide enough devices to properly handle the configured raid type, it 
usually results in a one-shot-writable bug, because once those single-
mode chunks are there, current kernels see single-mode on a filesystem 
missing devices and refuse to mount it degraded-writable again.  That 
means you get a one-time writable mount shot at correcting the problem, 
after which you won't be able to mount writable again (using current 
kernels) to correct it later, if the repair of the filesystem wasn't 
completed in that single degraded-writable mount.

You *can*, however, still mount degraded,read-only, which should give you 
access to the files to copy them elsewhere.

There are patches available that will change the chunks available check 
from per-filesystem to per-chunk.  With these patches applied, the kernel 
will allow degraded writable mounting of a nominally raidN filesystem 
with devices missing, even if there's single-mode chunks on the 
filesystem as well, *AS*LONG*AS* all chunks have at least one copy 
available.  What that means, in effect, is that as long as the degraded, 
writable filesystem doesn't lose ANOTHER device, this one with some of 
the single chunks already written to it, which would thus leave those 
chunks unavailable, it can mount a degraded filesystem writable more than 
once.

Unfortunately, those patches got added to a more complex patch set that 
wasn't considered ready for kernel 4.5 and didn't get into it.  I'm not 
sure whether they're in the current 4.6 development kernel or not.

But the patches ARE available.

> Anyone know if there is currently with updated kernel and tools a way to
> recover the data on this? I have tried btrfs chunk-recovery with not
> luck. Anything else I can do to try and get the data off at least?
> Thanks in advance!

As suggested above, if the only problem was a missing device, with 
anything approaching a current kernel (I'd suggest LTS 4.1 or 4.4 if 
you're conservative, 4.5 if you want the latest stable kernel series, and 
preferably a similarly versioned btrfs-progs userspace) you should at 
least be able to mount the filesystem degraded,ro.

A degraded,ro mount should be possible even if there are chunks entirely 
missing, as long as the superblocks and various other structures remain 
intact.

Or find and apply those patches and you *may* be able to mount the 
filesystem degraded,rw again, in ordered to replace the missing device 
and rebalance to normal operation.  However, this is a bit more iffy as 
it depends on no chunks being entirely missing, among other things, some 
of which may have changed since 2010, if you're still trying to recover 
that 2010 filesystem.


If the filesystem won't mount in degraded,ro or degraded,ro,recovery 
mode, then there's something wrong with it beyond the missing device.

In that case you may not be able to actually mount the filesystem (at 
least not without intensive surgery which the devs might be able to help 
you with but which is beyond my level as a simple sysadmin-level btrfs 
user and list regular)...

BUT THERE'S STILL HOPE to at least recover the files.

The tool you're looking for in that case is btrfs restore.

With luck you can simply point it at the remaining device and give it a 
place to restore the files to (and fill in options such as whether you 
want it to try to restore ownership/perms and other metadata, whether you 
want it to try to restore symlinks as well, etc), and it can do its 
thing.  There's a -D dry-run option you can use to see if it looks 
promising, before attempting to run it for real.

If restore on its own can't help, there's a more advanced mode that works 
in conjunction with btrfs-find-root, but fair warning, this gets rather 
technical and most people require some help to do it the first time, if 
they can manage it at all.  I won't go into detail here as there's a page 
on the wiki that describes the process, and there's another very recent 
on-list thread where I (and others) was working with someone else trying 
to do an advanced-mode btrfs-find-root and btrfs restore, and besides, 
with luck you won't need it anyway.  But here's the link to the wiki page 
and the thread in question, as found on gmane's web interface.

https://btrfs.wiki.kernel.org/index.php/Restore

http://thread.gmane.org/gmane.comp.file-systems.btrfs/55022

---
[1] C. Mason was working on patches to change it back then, but obviously 
it didn't work out as he then anticipated it would.  He'd have to fill in 
the specific details, but as I explained above, btrfs now requires a 
particular number of devices with writable unallocated space in ordered 
to allocate new chunks of the corresponding raid level, two devices for 
raid1, for instance.  If there's not enough devices with unallocated free 
space to create a new chunk in that raid mode, as explained, it falls 
back to single mode, which only requires a single device.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman


^ permalink raw reply	[flat|nested] 7+ messages in thread

* btrfs raid1 degraded does not mount or fsck
@ 2016-04-09 22:44 Vladi Gergov
  2016-04-10  6:55 ` Duncan
  0 siblings, 1 reply; 7+ messages in thread
From: Vladi Gergov @ 2016-04-09 22:44 UTC (permalink / raw)
  To: Chris Mason; +Cc: linux-btrfs

Anyone know if there is currently with updated kernel and tools a way to
recover the data on this? I have tried btrfs chunk-recovery with not
luck. Anything else I can do to try and get the data off at least?
Thanks in advance!

On Tuesday, 16.11.10 at 16:50, Chris Mason wrote:
> Excerpts from Vladi Gergov's message of 2010-10-29 16:53:42 -0400:
> > >>> gypsyops @ /mnt > sudo mount -o degraded /dev/sdc das3/
> > Password:
> > mount: wrong fs type, bad option, bad superblock on /dev/sdc,
> >        missing codepage or helper program, or other error
> >        In some cases useful info is found in syslog - try
> >        dmesg | tail  or so
> >
> > [  684.577540] device label das4 devid 2 transid 107954 /dev/sdc
> > [  684.595150] btrfs: allowing degraded mounts
> > [  684.595594] btrfs: failed to read chunk root on sdb
> > [  684.604110] btrfs: open_ctree failed
> >
> > >>> gypsyops @ /mnt > sudo btrfsck /dev/sdc
> > btrfsck: volumes.c:1367: btrfs_read_sys_array: Assertion `!(ret)' failed.
> 
> Ok, I dug through this and found the bug responsible for your
> unmountable FS.  When we're mounted in degraded mode, and we don't have
> enough drives available to do raid1,10, we're can use the wrong raid
> level for new allocations.
> 
> I'm fixing the kernel side so this doesn't happen anymore, but I'll need
> to rebuild the chunk tree (and probably a few others) off your good disk to
> fix things.
> 
> I've got it reproduced here though, so I'll make an fsck that can scan
> for the correct trees and fix it for you.
> 
> Since you're basically going to be my first external fsck customer, is
> there anyway you can do a raw device based backup of the blocks?  This
> way if I do mess things up we can repeat the experiment.
> 
> -chris
> 
> !DSPAM:4ce2fd55191821234852255!
> 
> 

-- 

,-| Vladi
`-| Gergov

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-04-10  6:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-29 20:53 btrfs raid1 degraded does not mount or fsck Vladi Gergov
2010-10-30  6:55 ` Goffredo Baroncelli
2010-11-16 21:50 ` Chris Mason
2011-10-10  4:42   ` Larry Reaves
2012-09-17 20:38 ` btrfs raid1 degraded in need of chuck tree rebuild Vladi Gergov
2016-04-09 22:44 btrfs raid1 degraded does not mount or fsck Vladi Gergov
2016-04-10  6:55 ` Duncan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).