* BTRFS disaster (of my own making). Is this recoverable?
@ 2015-08-02 17:13 Sonic
2015-08-03 5:17 ` Duncan
2015-08-03 5:42 ` Chris Murphy
0 siblings, 2 replies; 23+ messages in thread
From: Sonic @ 2015-08-02 17:13 UTC (permalink / raw)
To: linux-btrfs
I have had bad dreams about this particular fat finger but after a few
years it has finally happened.
Scenario: 2 drives in a raw btrfs array (no previous partitions and
non-redundant) with various subvols as well. One was sdc the other was
sde, although sde never displays with mount command and blkid is the
same for both.
Thinking I was writing to a flash drive I sent 32MB via dd
===========================
dd if=file of=/dev/sde
===========================
to sde (instead of what I wanted - sdf) and now the volume nor any of
it's subvol's can mount (of course that seems entirely reasonable,
although you can imagine how unhappy I am).
With:
===========================
mount -t btrfs /mnt/butter/
===========================
I get:
===========================
[ 3421.193103] BTRFS info (device sde): disk space caching is enabled
[ 3421.193734] BTRFS (device sde): bad tree block start
8330001001141004672 20971520
[ 3421.193738] BTRFS: failed to read chunk root on sde
[ 3421.203221] BTRFS: open_ctree failed
===========================
If I specify /dev/sdc instead of relying on fstab I get:
===========================
mount -t btrfs -o degraded /dev/sdc /mnt/butter/
===========================
[ 3839.506766] BTRFS info (device sde): allowing degraded mounts
[ 3839.506769] BTRFS info (device sde): disk space caching is enabled
[ 3839.507154] BTRFS (device sde): bad tree block start
8330001001141004672 20971520
[ 3839.507159] BTRFS: failed to read chunk root on sde
[ 3839.515023] BTRFS: open_ctree failed
===========================
Obligatory details:
===========================
uname -a
Linux sartre 4.1.3-gentoo #1 SMP Sat Jul 25 22:34:14 EDT 2015 x86_64
Intel(R) Core(TM) i7-3770K CPU @ 3.50GHz GenuineIntel GNU/Linux
===========================
btrfs --version
btrfs-progs v4.1.2
===========================
btrfs fi show
Label: 'garage' uuid: 896f615e-6437-41c6-8f2a-25f73ff1af7a
Total devices 1 FS bytes used 89.33GiB
devid 1 size 200.00GiB used 92.02GiB path /dev/sdb3
warning, device 2 is missing
bytenr mismatch, want=20971520, have=0
Couldn't read chunk root
Label: 'terrafirm' uuid: 09024c28-7932-4ddb-960d-becc1ea839e5
Total devices 2 FS bytes used 6.40TiB
devid 1 size 3.64TiB used 3.21TiB path /dev/sdc
*** Some devices missing
btrfs-progs v4.1.2
===========================
btrfs fi df /mnt/butter
ERROR: couldn't get space info - Inappropriate ioctl for device
ERROR: get_df failed Inappropriate ioctl for device
===========================
Please advise.
Thank you,
Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-02 17:13 BTRFS disaster (of my own making). Is this recoverable? Sonic
@ 2015-08-03 5:17 ` Duncan
2015-08-03 14:43 ` Sonic
2015-08-03 5:42 ` Chris Murphy
1 sibling, 1 reply; 23+ messages in thread
From: Duncan @ 2015-08-03 5:17 UTC (permalink / raw)
To: linux-btrfs
Sonic posted on Sun, 02 Aug 2015 13:13:41 -0400 as excerpted:
> I have had bad dreams about this particular fat finger but after a few
> years it has finally happened.
>
> Scenario: 2 drives in a raw btrfs array (no previous partitions and
> non-redundant) with various subvols as well. One was sdc the other was
> sde, although sde never displays with mount command and blkid is the
> same for both.
>
> Thinking I was writing to a flash drive I sent 32MB via dd
> ===========================
> dd if=file of=/dev/sde
> ===========================
> to sde (instead of what I wanted - sdf) and now the volume nor any of
> it's subvol's can mount (of course that seems entirely reasonable,
> although you can imagine how unhappy I am).
> [...]
> Obligatory details:
> ===========================
> uname -a
> Linux sartre 4.1.3-gentoo [...]
> ===========================
> btrfs --version
> btrfs-progs v4.1.2
> ===========================
> btrfs fi show
> [...]
> warning, device 2 is missing
> bytenr mismatch, want=20971520, have=0
> Couldn't read chunk root
> Label: 'terrafirm' [...]
> Total devices 2 FS bytes used 6.40TiB
> devid 1 size 3.64TiB used 3.21TiB path /dev/sdc
> *** Some devices missing
> [...]
Of course the first thing is sysadmin's backups rule -- if you don't have
it backed up, by definition and action, that data is worth less to you
than the time/effort/media to back it up, any claims to the contrary not
withstanding, as your actions spoke louder than your words.
And of course btrfs isn't fully stable yet, so that rule applies double,
compared to a fully mature and stable filesystem.
Therefore, you're in luck. Either you didn't lose anything of value
because you had it backed up, or it wasn't of /that/ much value to you
anyway, so again, you didn't lose anything of value. =:^)
(And actually, that's truer than you might think at the moment. Consider
my next-door neighbor, who a couple weeks ago escaped a fire with his
life and the pair of shorts he was wearing. No wallet, no keys,
nothing. I don't think he's going to be worrying much about that last
fat-fingering he did on the computer for awhile! If you have your life,
your health, a roof over your head, and either food on the kitchen
shelves or money to eat out with, you're a lucky one! They say everybody
fat-fingers at some point and has to learn the value of those backups the
hard way. Now you have that behind you. =:^) I've been there too, and a
bit of perspective really does help.)
Beyond that...
You're running current kernel and userspace/progs already, good job
there. =:^)
The first thing you need to do in terms of trying to recover, is restore
the superblock on the damaged device. Since btrfs keeps multiple copies
(up to three, once the filesystem is large enough, as yours is) per
device, that's actually relatively easy. Use...
btrfs rescue super-recover
... for that. Being a gentooer (as am I), I'm confident you can read the
manpage for the details. =:^) You can use...
btrfs-show-super
... to examine the various superblock copies in ordered to pick a good
one to restore.
Beyond that, as a simple btrfs user and list regular who hasn't had that
particular problem here (my brown-bag day was a different fat-fingering!
), not a dev, I'm a bit beyond my depth, but were it me, at that point
I'd see what I had, then try...
btrfs restore
There's a page on the wiki with details on how to try to get it to work
manually, if it's not going to work automatically for you:
https://btrfs.wiki.kernel.org/index.php/Restore
I've used it here (tho not in the situation you're in) when I had
backups, but they were a bit stale. Basically, I valued the data enough
to have backups, but valued saving the hassle over keeping them current,
given the amount of actually changed data. Still, since restore worked
for me and thus gave me the choice of somewhat stale backups, or rather
less stale btrfs restore, I took less stale. =:^)
The nice thing about restore, other than that it often works when the
filesystem won't mount, is that it doesn't write to the damaged
filesystem at all, so there's no chance of making the problem worse
instead of better. Restore simply reads what files it can get, restoring
them to some other (working and mounted) filesystem. So you'll need some
alternate place to store all those files...
Tho the wiki is somewhat behind current code, so read the manpage for
more useful options. In particular, the dry-run option can give you a
good idea whether you're going to get much of anything useful with that
generation/transid, or not, and there's now options to restore metadata
(ownership and permissions) and symlinks, as well as the file data
itself. Also, where it talks about picking a tree root with as many of
the filesystem trees as possible, use the list-roots option. This is
what displays all those trees it's talking about.
If restore worked for you, you have a choice. What I've done at that
point, since I was reasonably happy with the result as I got pretty much
everything back using restore, is simply blow away the damaged
filesystem, and start over, fresh mkfs.btrfs, etc. For me, that was the
simplest. If it didn't work (still too damaged) or it did but you want
to continue...
Next, if you want more than one chance at things, it's time to copy the
filesystem's raw devices elsewhere, so you have a backup copy of the raw
devices in case you screw up the one you're experimenting with even
worse. dd each filesystem component device to some other storage, for
that raw backup.
This is where I start going beyond my depth... If you had no backups and
restore hasn't worked on it at this point, you may well want to wait for
a second opinion. If he answers, I'd put Hugo Mills' answers at
priority, else Chris Murphy or others.
Once that's done, or if you decide to skip it and have only one go at
things, if it were me, /I/ would try...
btrfs rescue chunk-recover
... next. After that, hopefully at least restore will work, if it didn't
before. There's also some stuff possible with btrfs check, but again,
this is getting beyond my level, and it's going pretty vague and hand-
wavy at this point.
--
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] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-02 17:13 BTRFS disaster (of my own making). Is this recoverable? Sonic
2015-08-03 5:17 ` Duncan
@ 2015-08-03 5:42 ` Chris Murphy
2015-08-03 8:18 ` Hugo Mills
2015-08-03 13:12 ` Sonic
1 sibling, 2 replies; 23+ messages in thread
From: Chris Murphy @ 2015-08-03 5:42 UTC (permalink / raw)
To: Btrfs BTRFS
I can't tell what the data and metadata profile are? That it won't
mount degraded makes me think the metadata is not explicitly raid1;
and it either raid0 or accidentally single or dup which can happen at
mkfs time on single device, and just doing btrfs dev add to add
another device.
I think recovery is difficult but it depends on what sort of critical
information is in those first 32MB other than the superblock. There
are copies of the superblock so that can probably be reconstructed.
Chris Murphy
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 5:42 ` Chris Murphy
@ 2015-08-03 8:18 ` Hugo Mills
2015-08-03 13:12 ` Sonic
1 sibling, 0 replies; 23+ messages in thread
From: Hugo Mills @ 2015-08-03 8:18 UTC (permalink / raw)
To: Chris Murphy; +Cc: Btrfs BTRFS
[-- Attachment #1: Type: text/plain, Size: 1030 bytes --]
On Sun, Aug 02, 2015 at 11:42:25PM -0600, Chris Murphy wrote:
> I can't tell what the data and metadata profile are? That it won't
> mount degraded makes me think the metadata is not explicitly raid1;
> and it either raid0 or accidentally single or dup which can happen at
> mkfs time on single device, and just doing btrfs dev add to add
> another device.
>
> I think recovery is difficult but it depends on what sort of critical
> information is in those first 32MB other than the superblock. There
> are copies of the superblock so that can probably be reconstructed.
It's probably that the small empty single chunks left behind by
mkfs are still there. I don't think we have a good solution to this
yet (other than fixing mkfs so it doesn't happen in the first place).
Hugo.
--
Hugo Mills | Our so-called leaders speak
hugo@... carfax.org.uk | with words they try to jail ya
http://carfax.org.uk/ | They subjugate the meek
PGP: E2AB1DE4 | but it's the rhetoric of failure. The Police
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 5:42 ` Chris Murphy
2015-08-03 8:18 ` Hugo Mills
@ 2015-08-03 13:12 ` Sonic
1 sibling, 0 replies; 23+ messages in thread
From: Sonic @ 2015-08-03 13:12 UTC (permalink / raw)
To: Chris Murphy; +Cc: Btrfs BTRFS
On Mon, Aug 3, 2015 at 1:42 AM, Chris Murphy <lists@colorremedies.com> wrote:
> I can't tell what the data and metadata profile are? That it won't
> mount degraded makes me think the metadata is not explicitly raid1;
> and it either raid0 or accidentally single or dup which can happen at
> mkfs time on single device
It's been a long time since I created the two disk array but I'm sure
it's raid 0 and it may be single but my memory fails me on that point.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 5:17 ` Duncan
@ 2015-08-03 14:43 ` Sonic
2015-08-03 15:05 ` Sonic
0 siblings, 1 reply; 23+ messages in thread
From: Sonic @ 2015-08-03 14:43 UTC (permalink / raw)
To: Duncan; +Cc: Btrfs BTRFS
On Mon, Aug 3, 2015 at 1:17 AM, Duncan <1i5t5.duncan@cox.net> wrote:
> The first thing you need to do in terms of trying to recover, is restore
> the superblock on the damaged device. Since btrfs keeps multiple copies
> (up to three, once the filesystem is large enough, as yours is) per
> device, that's actually relatively easy. Use...
>
> btrfs rescue super-recover
Not sure how to tell if there is a superblock issue:
===============================
btrfs-show-super -f /dev/sdc
superblock: bytenr=65536, device=/dev/sdc
---------------------------------------------------------
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527267057664
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 1
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
sys_chunk_array[2048]:
item 0 key (FIRST_CHUNK_TREE CHUNK_ITEM 20971520)
chunk length 16777216 owner 2 type SYSTEM|RAID0 num_stripes 2
stripe 0 devid 2 offset 1048576
stripe 1 devid 1 offset 20971520
backup_roots[4]:
backup 0:
backup_tree_root: 1517037699072 gen: 9025 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 576585728 gen: 9025 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 1517028753408 gen: 9025 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038625824768
backup_num_devices: 2
backup 1:
backup_tree_root: 1517167755264 gen: 9026 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 1517167771648 gen: 9026 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 2503711637504 gen: 9026 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038625824768
backup_num_devices: 2
backup 2:
backup_tree_root: 980877312 gen: 9023 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 1026768896 gen: 9023 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 1790377984 gen: 9023 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038617616384
backup_num_devices: 2
backup 3:
backup_tree_root: 1960509440 gen: 9024 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 1960525824 gen: 9024 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 2106736640 gen: 9024 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038617616384
backup_num_devices: 2
btrfs-show-super -f /dev/sde
superblock: bytenr=65536, device=/dev/sde
---------------------------------------------------------
csum 0x9634c164 [match]
bytenr 65536
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 09024c28-7932-4ddb-960d-becc1ea839e5
label terrafirm
generation 9026
root 1517167755264
sys_array_size 129
chunk_root_generation 8957
root_level 1
chunk_root 20971520
chunk_root_level 1
log_root 0
log_root_transid 0
log_root_level 0
total_bytes 8001574060032
bytes_used 7038625824768
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
root_dir 6
num_devices 2
compat_flags 0x0
compat_ro_flags 0x0
incompat_flags 0x21
( MIXED_BACKREF |
BIG_METADATA )
csum_type 0
csum_size 4
cache_generation 9026
uuid_tree_generation 9026
dev_item.uuid d63b1c46-b5a2-49ae-861f-804b2f97f427
dev_item.fsid 09024c28-7932-4ddb-960d-becc1ea839e5 [match]
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527250280448
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 2
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
sys_chunk_array[2048]:
item 0 key (FIRST_CHUNK_TREE CHUNK_ITEM 20971520)
chunk length 16777216 owner 2 type SYSTEM|RAID0 num_stripes 2
stripe 0 devid 2 offset 1048576
stripe 1 devid 1 offset 20971520
backup_roots[4]:
backup 0:
backup_tree_root: 1517037699072 gen: 9025 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 576585728 gen: 9025 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 1517028753408 gen: 9025 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038625824768
backup_num_devices: 2
backup 1:
backup_tree_root: 1517167755264 gen: 9026 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 1517167771648 gen: 9026 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 2503711637504 gen: 9026 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038625824768
backup_num_devices: 2
backup 2:
backup_tree_root: 980877312 gen: 9023 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 1026768896 gen: 9023 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 1790377984 gen: 9023 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038617616384
backup_num_devices: 2
backup 3:
backup_tree_root: 1960509440 gen: 9024 level: 1
backup_chunk_root: 20971520 gen: 8957 level: 1
backup_extent_root: 1960525824 gen: 9024 level: 2
backup_fs_root: 2056568832 gen: 1106 level: 0
backup_dev_root: 52576256 gen: 9021 level: 1
backup_csum_root: 2106736640 gen: 9024 level: 3
backup_total_bytes: 8001574060032
backup_bytes_used: 7038617616384
backup_num_devices: 2
btrfs-show-super -a /dev/sdc
superblock: bytenr=65536, device=/dev/sdc
---------------------------------------------------------
csum 0x510e90f6 [match]
bytenr 65536
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 09024c28-7932-4ddb-960d-becc1ea839e5
label terrafirm
generation 9026
root 1517167755264
sys_array_size 129
chunk_root_generation 8957
root_level 1
chunk_root 20971520
chunk_root_level 1
log_root 0
log_root_transid 0
log_root_level 0
total_bytes 8001574060032
bytes_used 7038625824768
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
root_dir 6
num_devices 2
compat_flags 0x0
compat_ro_flags 0x0
incompat_flags 0x21
( MIXED_BACKREF |
BIG_METADATA )
csum_type 0
csum_size 4
cache_generation 9026
uuid_tree_generation 9026
dev_item.uuid 224c95e6-d71b-494a-a4f6-cc72a84f1e89
dev_item.fsid 09024c28-7932-4ddb-960d-becc1ea839e5 [match]
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527267057664
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 1
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
superblock: bytenr=67108864, device=/dev/sdc
---------------------------------------------------------
csum 0xf16fb838 [match]
bytenr 67108864
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 09024c28-7932-4ddb-960d-becc1ea839e5
label terrafirm
generation 9026
root 1517167755264
sys_array_size 129
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527267057664
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 1
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
superblock: bytenr=274877906944, device=/dev/sdc
---------------------------------------------------------
csum 0x0ce8ee09 [match]
bytenr 274877906944
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 09024c28-7932-4ddb-960d-becc1ea839e5
label terrafirm
generation 9026
root 1517167755264
sys_array_size 129
chunk_root_generation 8957
root_level 1
chunk_root 20971520
chunk_root_level 1
log_root 0
log_root_transid 0
log_root_level 0
total_bytes 8001574060032
bytes_used 7038625824768
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
root_dir 6
num_devices 2
compat_flags 0x0
compat_ro_flags 0x0
incompat_flags 0x21
( MIXED_BACKREF |
BIG_METADATA )
csum_type 0
csum_size 4
cache_generation 9026
uuid_tree_generation 9026
dev_item.uuid 224c95e6-d71b-494a-a4f6-cc72a84f1e89
dev_item.fsid 09024c28-7932-4ddb-960d-becc1ea839e5 [match]
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527267057664
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 1
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
btrfs-show-super -a /dev/sde
superblock: bytenr=65536, device=/dev/sde
---------------------------------------------------------
csum 0x9634c164 [match]
bytenr 65536
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 09024c28-7932-4ddb-960d-becc1ea839e5
label terrafirm
generation 9026
root 1517167755264
sys_array_size 129
chunk_root_generation 8957
root_level 1
chunk_root 20971520
chunk_root_level 1
log_root 0
log_root_transid 0
log_root_level 0
total_bytes 8001574060032
bytes_used 7038625824768
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
root_dir 6
num_devices 2
compat_flags 0x0
compat_ro_flags 0x0
incompat_flags 0x21
( MIXED_BACKREF |
BIG_METADATA )
csum_type 0
csum_size 4
cache_generation 9026
uuid_tree_generation 9026
dev_item.uuid d63b1c46-b5a2-49ae-861f-804b2f97f427
dev_item.fsid 09024c28-7932-4ddb-960d-becc1ea839e5 [match]
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527250280448
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 2
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
superblock: bytenr=67108864, device=/dev/sde
---------------------------------------------------------
csum 0x3655e9aa [match]
bytenr 67108864
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 09024c28-7932-4ddb-960d-becc1ea839e5
label terrafirm
generation 9026
root 1517167755264
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527250280448
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 2
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
superblock: bytenr=274877906944, device=/dev/sde
---------------------------------------------------------
csum 0xcbd2bf9b [match]
bytenr 274877906944
flags 0x1
( WRITTEN )
magic _BHRfS_M [match]
fsid 09024c28-7932-4ddb-960d-becc1ea839e5
label terrafirm
generation 9026
root 1517167755264
sys_array_size 129
chunk_root_generation 8957
root_level 1
chunk_root 20971520
chunk_root_level 1
log_root 0
log_root_transid 0
log_root_level 0
total_bytes 8001574060032
bytes_used 7038625824768
sectorsize 4096
nodesize 16384
leafsize 16384
stripesize 4096
root_dir 6
num_devices 2
compat_flags 0x0
compat_ro_flags 0x0
incompat_flags 0x21
( MIXED_BACKREF |
BIG_METADATA )
csum_type 0
csum_size 4
cache_generation 9026
uuid_tree_generation 9026
dev_item.uuid d63b1c46-b5a2-49ae-861f-804b2f97f427
dev_item.fsid 09024c28-7932-4ddb-960d-becc1ea839e5 [match]
dev_item.type 0
dev_item.total_bytes 4000787030016
dev_item.bytes_used 3527250280448
dev_item.io_align 4096
dev_item.io_width 4096
dev_item.sector_size 4096
dev_item.devid 2
dev_item.dev_group 0
dev_item.seek_speed 0
dev_item.bandwidth 0
dev_item.generation 0
===============================
There's some difference between the output of /dev/sdc and /dev/sde
but they may be completely normal.
How does one determine from the above whether or not a superblock is bad?
Is "btrfs rescue super-recover" safe to run? IOW, will it ask before
doing anything possibly destructive (assuming I don't give it a -y)?
Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 14:43 ` Sonic
@ 2015-08-03 15:05 ` Sonic
2015-08-03 15:28 ` Hugo Mills
0 siblings, 1 reply; 23+ messages in thread
From: Sonic @ 2015-08-03 15:05 UTC (permalink / raw)
To: Duncan; +Cc: Btrfs BTRFS
On Mon, Aug 3, 2015 at 10:43 AM, Sonic <sonicsmith@gmail.com> wrote:
> Is "btrfs rescue super-recover" safe to run? IOW, will it ask before
> doing anything possibly destructive (assuming I don't give it a -y)?
Seemed a bit safe so I went for it and:
sartre ~ # btrfs rescue super-recover /dev/sdc
All supers are valid, no need to recover
sartre ~ # btrfs rescue super-recover /dev/sde
All supers are valid, no need to recover
So it may not be a superblock issue.
>From the dmesg earlier:
[ 3421.193734] BTRFS (device sde): bad tree block start
8330001001141004672 20971520
[ 3421.193738] BTRFS: failed to read chunk root on sde
[ 3421.203221] BTRFS: open_ctree failed
I may need a chunk-recover and also wonder if zero-log is advisable.
Any ideas in those directions?
Thanks,
Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 15:05 ` Sonic
@ 2015-08-03 15:28 ` Hugo Mills
2015-08-03 16:03 ` Sonic
0 siblings, 1 reply; 23+ messages in thread
From: Hugo Mills @ 2015-08-03 15:28 UTC (permalink / raw)
To: Sonic; +Cc: Duncan, Btrfs BTRFS
[-- Attachment #1: Type: text/plain, Size: 1279 bytes --]
On Mon, Aug 03, 2015 at 11:05:46AM -0400, Sonic wrote:
> On Mon, Aug 3, 2015 at 10:43 AM, Sonic <sonicsmith@gmail.com> wrote:
> > Is "btrfs rescue super-recover" safe to run? IOW, will it ask before
> > doing anything possibly destructive (assuming I don't give it a -y)?
>
> Seemed a bit safe so I went for it and:
>
> sartre ~ # btrfs rescue super-recover /dev/sdc
> All supers are valid, no need to recover
> sartre ~ # btrfs rescue super-recover /dev/sde
> All supers are valid, no need to recover
>
> So it may not be a superblock issue.
>
> From the dmesg earlier:
> [ 3421.193734] BTRFS (device sde): bad tree block start
> 8330001001141004672 20971520
> [ 3421.193738] BTRFS: failed to read chunk root on sde
> [ 3421.203221] BTRFS: open_ctree failed
>
> I may need a chunk-recover and also wonder if zero-log is advisable.
> Any ideas in those directions?
Very unlikely and definitely not, respectively. There's nothing at
all here to indicate that you've got a broken log, so dropping it
would be at best pointless. The chunk tree is also most likely
undamaged on both copies.
Hugo.
--
Hugo Mills | The early bird gets the worm, but the second mouse
hugo@... carfax.org.uk | gets the cheese.
http://carfax.org.uk/ |
PGP: E2AB1DE4 |
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 15:28 ` Hugo Mills
@ 2015-08-03 16:03 ` Sonic
2015-08-03 16:14 ` Sonic
0 siblings, 1 reply; 23+ messages in thread
From: Sonic @ 2015-08-03 16:03 UTC (permalink / raw)
To: Hugo Mills, Sonic, Duncan, Btrfs BTRFS
On Mon, Aug 3, 2015 at 11:28 AM, Hugo Mills <hugo@carfax.org.uk> wrote:
> Very unlikely and definitely not, respectively. There's nothing at
> all here to indicate that you've got a broken log, so dropping it
> would be at best pointless. The chunk tree is also most likely
> undamaged on both copies.
Will it hurt to try a chunk-recover? I'm guessing it wont do anything
unless I answer Y to some prompt.
Is there anything else you would suggest?
Thanks,
Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 16:03 ` Sonic
@ 2015-08-03 16:14 ` Sonic
2015-08-03 16:22 ` Sonic
0 siblings, 1 reply; 23+ messages in thread
From: Sonic @ 2015-08-03 16:14 UTC (permalink / raw)
To: Hugo Mills, Sonic, Duncan, Btrfs BTRFS
Also tried:
mount -o recovery,ro /mnt/butter/
And dmesg gives:
[88228.756622] BTRFS info (device sde): enabling auto recovery
[88228.756635] BTRFS info (device sde): disk space caching is enabled
[88228.757244] BTRFS (device sde): bad tree block start
8330001001141004672 20971520
[88228.757248] BTRFS: failed to read chunk root on sde
[88228.769877] BTRFS: open_ctree failed
On Mon, Aug 3, 2015 at 12:03 PM, Sonic <sonicsmith@gmail.com> wrote:
> On Mon, Aug 3, 2015 at 11:28 AM, Hugo Mills <hugo@carfax.org.uk> wrote:
>> Very unlikely and definitely not, respectively. There's nothing at
>> all here to indicate that you've got a broken log, so dropping it
>> would be at best pointless. The chunk tree is also most likely
>> undamaged on both copies.
>
> Will it hurt to try a chunk-recover? I'm guessing it wont do anything
> unless I answer Y to some prompt.
>
> Is there anything else you would suggest?
>
> Thanks,
>
> Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 16:14 ` Sonic
@ 2015-08-03 16:22 ` Sonic
2015-08-03 16:32 ` Sonic
0 siblings, 1 reply; 23+ messages in thread
From: Sonic @ 2015-08-03 16:22 UTC (permalink / raw)
To: Hugo Mills, Sonic, Duncan, Btrfs BTRFS
Output of btrfs check:
btrfs check /dev/sdc
warning, device 2 is missing
bytenr mismatch, want=20971520, have=0
Couldn't read chunk root
Couldn't open file system
btrfs check /dev/sde
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
bytenr mismatch, want=20971520, have=8330001001141004672
Couldn't read chunk root
Couldn't open file system
In case the above helps.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 16:22 ` Sonic
@ 2015-08-03 16:32 ` Sonic
2015-08-03 19:26 ` Duncan
2015-08-04 2:20 ` Sonic
0 siblings, 2 replies; 23+ messages in thread
From: Sonic @ 2015-08-03 16:32 UTC (permalink / raw)
To: Hugo Mills, Sonic, Duncan, Btrfs BTRFS
Are either one of these called for?
btrfs check --repair
or
btrfs check --repair --init-csum-tree
Seems like they might be a last ditch attempt. Is one preferred over the other?
Is:
btrfs rescue chunk-recover
a much less dangerous attempt (IOW it wont hurt to try it first)?
Thanks,
Chris
On Mon, Aug 3, 2015 at 12:22 PM, Sonic <sonicsmith@gmail.com> wrote:
> Output of btrfs check:
>
> btrfs check /dev/sdc
> warning, device 2 is missing
> bytenr mismatch, want=20971520, have=0
> Couldn't read chunk root
> Couldn't open file system
>
> btrfs check /dev/sde
> checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
> checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
> bytenr mismatch, want=20971520, have=8330001001141004672
> Couldn't read chunk root
> Couldn't open file system
>
> In case the above helps.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 16:32 ` Sonic
@ 2015-08-03 19:26 ` Duncan
2015-08-04 2:20 ` Sonic
1 sibling, 0 replies; 23+ messages in thread
From: Duncan @ 2015-08-03 19:26 UTC (permalink / raw)
To: linux-btrfs
Sonic posted on Mon, 03 Aug 2015 12:32:21 -0400 as excerpted:
> Are either one of these called for?
>
> btrfs check --repair or btrfs check --repair --init-csum-tree
>
> Seems like they might be a last ditch attempt. Is one preferred over the
> other?
The read-only check (without --repair) couldn't read the chunk tree, so
check --repair probably should run into the same issue and not be able to
do anything as well.
check --init-csum-tree reinitializes the checksums, but to do that you
have to have something to reinitialize on, so that's unlikely to do
anything, either. (I did have that in mind as a possibility after the
superblock recovery and chunk-recover operations, tho, if necessary.
That's why I mentioned check at the end. But the message was long enough
already and that would have been getting ahead of things, so...)
> Is:
> btrfs rescue chunk-recover a much less dangerous attempt (IOW it wont
> hurt to try it first)?
I'd not call it less dangerous, but given that the chunk tree can't be
read, you're already dealing with dangerous. That's what I'd try here
(tho Hugo's suggesting it won't help has me doubting, but that's where
things do point from what I see).
Which is why I mentioned doing a raw device backup, before attempting
it. Chunk-recover is pretty invasive, and if it doesn't work, it could
make the filesystem unrecoverable. It's basically a one-shot deal. A
raw device backup can be used to avoid it being one-shot, but of course
that does require that you have enough devices of sufficient size to
backup to, which certainly in the terabyte range, is a potential problem
unless you're a big-budget corporate user with a stack of spare devices
on hand.
I believe Hugo's right on zero-log, tho. That's a fix for a very
specific situation, seen most often due to a specific bug that was short
lived and has been fixed for quite some time, now, tho in certain very
narrow post-crash situations the same fix has been known to work too.
There's no evidence you're anywhere near that very specific situation, so
zero-log's just not the tool for this job. And it could make things
slightly worse, too, tho in theory at least, all you're doing is cutting
off the last 30 seconds or so of activity, so the chances of it doing
major harm are small, unless you were actively rebalancing or something
when the filesystem was last unmounted (gracefully or not).
--
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] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-03 16:32 ` Sonic
2015-08-03 19:26 ` Duncan
@ 2015-08-04 2:20 ` Sonic
2015-08-04 2:45 ` Sonic
2015-08-04 5:10 ` Duncan
1 sibling, 2 replies; 23+ messages in thread
From: Sonic @ 2015-08-04 2:20 UTC (permalink / raw)
To: Hugo Mills, Sonic, Duncan, Btrfs BTRFS
On Mon, Aug 3, 2015 at 12:32 PM, Sonic <sonicsmith@gmail.com> wrote:
> btrfs rescue chunk-recover
Ran this:
btrfs rescue chunk-recover -v /dev/sde |tee brcr.txt
Got this (very end of output):
==================================
Unrecoverable Chunks:
Total Chunks: 3292
Recoverable: 3292
Unrecoverable: 0
Orphan Block Groups:
Orphan Device Extents:
Fail to recover the chunk tree.
==================================
If earlier output of this process might be helpful I can provide it
(used tee to create a file).
Didn't work - seems all chunks found were recoverable - it's
apparently the missing chunks that are the problem.
I'm thinking this is a lost cause. Also thinking I need to provide for
some redundancy in the future :-)
Any other suggestions before I give up the ghost on this?
Thanks,
Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-04 2:20 ` Sonic
@ 2015-08-04 2:45 ` Sonic
2015-08-04 5:10 ` Duncan
1 sibling, 0 replies; 23+ messages in thread
From: Sonic @ 2015-08-04 2:45 UTC (permalink / raw)
To: Hugo Mills, Sonic, Duncan, Btrfs BTRFS
Out of frustration and vodka I tried:
btrfs check --repair /dev/sde
To instantly be met with:
enabling repair mode
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
bytenr mismatch, want=20971520, have=8330001001141004672
Couldn't read chunk root
Couldn't open file system
On Mon, Aug 3, 2015 at 10:20 PM, Sonic <sonicsmith@gmail.com> wrote:
> On Mon, Aug 3, 2015 at 12:32 PM, Sonic <sonicsmith@gmail.com> wrote:
>> btrfs rescue chunk-recover
>
> Ran this:
> btrfs rescue chunk-recover -v /dev/sde |tee brcr.txt
>
> Got this (very end of output):
> ==================================
> Unrecoverable Chunks:
>
> Total Chunks: 3292
> Recoverable: 3292
> Unrecoverable: 0
>
> Orphan Block Groups:
>
> Orphan Device Extents:
>
> Fail to recover the chunk tree.
> ==================================
> If earlier output of this process might be helpful I can provide it
> (used tee to create a file).
>
> Didn't work - seems all chunks found were recoverable - it's
> apparently the missing chunks that are the problem.
>
> I'm thinking this is a lost cause. Also thinking I need to provide for
> some redundancy in the future :-)
>
> Any other suggestions before I give up the ghost on this?
>
> Thanks,
>
> Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-04 2:20 ` Sonic
2015-08-04 2:45 ` Sonic
@ 2015-08-04 5:10 ` Duncan
2015-08-04 20:23 ` Sonic
1 sibling, 1 reply; 23+ messages in thread
From: Duncan @ 2015-08-04 5:10 UTC (permalink / raw)
To: linux-btrfs
Sonic posted on Mon, 03 Aug 2015 22:20:38 -0400 as excerpted:
> I'm thinking this is a lost cause. Also thinking I need to provide for
> some redundancy in the future :-)
>
> Any other suggestions before I give up the ghost on this?
I don't remember you saying anything about trying btrfs restore. I'm not
sure it can do anything for this case, and it definitely requires enough
additional space on some other filesystem to store the data it restores,
but if you had stuff on there you'd really like to get back, it's worth a
shot, and if you're going to be backing up in the future, you'll need the
additional devices for the backup in any case, so might as well get 'em
now, mkfs them to whatever (doesn't have to be btrfs since all you're
doing is using it as a place to store the files, it's the one you're
restoring /from/ that's btrfs), mount 'em, and try restoring to them.
Worst-case, it doesn't work and you have your set of backup devices
already prepped and ready to go. Best-case, it recovers pretty much
everything.
But I am guessing restore won't be able to do anything on it's own,
you'll need to try btrfs-find-root, and feed the bytenr from roots it
finds into restore until you get something useful. Take a look at the
link and brief instructions I posted in my first reply.
Of course, if btrfs-find-root doesn't show you any roots (these are the
filesystem master roots), or if fed those roots using -t <bytenr>, btrfs
restore --list-roots (these are the various subtree roots) doesn't give
you anything worthwhile, then it /would/ appear you're looking at a lost-
cause... unless anyone else has a bright idea at this point.
--
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] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-04 5:10 ` Duncan
@ 2015-08-04 20:23 ` Sonic
2015-08-05 12:31 ` Sonic
0 siblings, 1 reply; 23+ messages in thread
From: Sonic @ 2015-08-04 20:23 UTC (permalink / raw)
To: Duncan; +Cc: Btrfs BTRFS
On Tue, Aug 4, 2015 at 1:10 AM, Duncan <1i5t5.duncan@cox.net> wrote:
> I don't remember you saying anything about trying btrfs restore.
I did try it earlier in dry-run mode and it can't do anything:
=========================================
btrfs restore -D /dev/sdc /mnt/saved/
warning, device 2 is missing
bytenr mismatch, want=20971520, have=0
Couldn't read chunk root
Could not open root, trying backup super
warning, device 2 is missing
bytenr mismatch, want=20971520, have=0
Couldn't read chunk root
Could not open root, trying backup super
warning, device 2 is missing
bytenr mismatch, want=20971520, have=0
Couldn't read chunk root
Could not open root, trying backup super
=========================================
Find-roots, list-roots, none of it works.
=========================================
btrfs restore --list-roots /dev/sde
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
bytenr mismatch, want=20971520, have=8330001001141004672
Couldn't read chunk root
Could not open root, trying backup super
warning, device 1 is missing
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
bytenr mismatch, want=20971520, have=8330001001141004672
Couldn't read chunk root
Could not open root, trying backup super
warning, device 1 is missing
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
checksum verify failed on 20971520 found 8B1D9672 wanted 2F8A4238
bytenr mismatch, want=20971520, have=8330001001141004672
Couldn't read chunk root
Could not open root, trying backup super
=========================================
btrfs-find-root -a /dev/sdc
warning, device 2 is missing
Couldn't read chunk root
btrfs-find-root -a /dev/sde
Couldn't read chunk root
Open ctree failed
=========================================
In defense of BTRFS it's been absolutely trouble free keeping my data
through many power outages, etc. and I plan to keep using it. It was
my own doing that caused the problem.
Seems that if there was someway to edit something in those first
overwritten 32MB of disc 2 to say "hey, I'm really here, just a bit
screwed up" maybe some of the recovery tools could actually work.
Thanks to all.
Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-04 20:23 ` Sonic
@ 2015-08-05 12:31 ` Sonic
2015-08-05 12:39 ` Sonic
2015-08-05 16:53 ` Chris Murphy
0 siblings, 2 replies; 23+ messages in thread
From: Sonic @ 2015-08-05 12:31 UTC (permalink / raw)
To: Duncan, Btrfs BTRFS, Chris Murphy, Hugo Mills
On Tue, Aug 4, 2015 at 4:23 PM, Sonic <sonicsmith@gmail.com> wrote:
> Seems that if there was someway to edit something in those first
> overwritten 32MB of disc 2 to say "hey, I'm really here, just a bit
> screwed up" maybe some of the recovery tools could actually work.
Just want to reiterate this thought.
The basic error in most cases with the tools at hand is that Disc 2 is
missing so there's little the tools can do. Somewhere in those first
32MB should be something to properly identify the disc as part of the
array.
If the btrfs tools can't fix it maybe dd can. Is there anything can be
gained from the beginning of disc 1 (can dd this to a file) in order
to create the necessary bits needed at the beginning of disc2? Or some
other way to overwrite the beginning of disc 2 (using dd again) with
some identification information so that the automated btrfs tools can
take it from there?
Thanks,
Chris
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-05 12:31 ` Sonic
@ 2015-08-05 12:39 ` Sonic
2015-08-05 16:53 ` Chris Murphy
1 sibling, 0 replies; 23+ messages in thread
From: Sonic @ 2015-08-05 12:39 UTC (permalink / raw)
To: Duncan, Btrfs BTRFS, Chris Murphy, Hugo Mills
On Wed, Aug 5, 2015 at 8:31 AM, Sonic <sonicsmith@gmail.com> wrote:
> The basic error in most cases with the tools at hand is that Disc 2 is
> missing so there's little the tools can do. Somewhere in those first
> 32MB should be something to properly identify the disc as part of the
> array.
Somehow manually create the missing "chunk root" if this is the core problem??
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-05 12:31 ` Sonic
2015-08-05 12:39 ` Sonic
@ 2015-08-05 16:53 ` Chris Murphy
2015-08-06 0:45 ` Paul Jones
1 sibling, 1 reply; 23+ messages in thread
From: Chris Murphy @ 2015-08-05 16:53 UTC (permalink / raw)
To: Sonic; +Cc: Btrfs BTRFS, Hugo Mills
On Wed, Aug 5, 2015 at 6:31 AM, Sonic <sonicsmith@gmail.com> wrote:
> On Tue, Aug 4, 2015 at 4:23 PM, Sonic <sonicsmith@gmail.com> wrote:
>> Seems that if there was someway to edit something in those first
>> overwritten 32MB of disc 2 to say "hey, I'm really here, just a bit
>> screwed up" maybe some of the recovery tools could actually work.
>
> Just want to reiterate this thought.
>
> The basic error in most cases with the tools at hand is that Disc 2 is
> missing so there's little the tools can do. Somewhere in those first
> 32MB should be something to properly identify the disc as part of the
> array.
Yes but it was probably uniquely only on that disk, because there's
no redundancy for metadata or system chunks. Therefore there's no copy
on the other disk to use as a model. The btrfs check command has an
option to use other superblocks, so you could try that switch and see
if it makes a difference but it sounds like it's finding backup
superblocks automatically. That's the one thing that is pretty much
always duplicated on the same disk; for sure the first superblock is
munged and would need repair. But there's still other chunks
missing... so I don't think it'll help.
>
> If the btrfs tools can't fix it maybe dd can. Is there anything can be
> gained from the beginning of disc 1 (can dd this to a file) in order
> to create the necessary bits needed at the beginning of disc2?
Not if there's no metadata or system redundancy profile like raid1.
> Or some
> other way to overwrite the beginning of disc 2 (using dd again) with
> some identification information so that the automated btrfs tools can
> take it from there?
I think to have a viable reference, you need two disks (virtual or
real) and you need to exactly replicate how you got to this two disk
setup to find out what's in those 32MB that might get the file system
to mount even if it complaints of some corrupt files. That's work
that's way beyond my skill level. The tools don't do this right now as
far as I'm aware. You'd be making byte by byte insertions to multiple
sectors. Tedious. But I can't even guess how many steps it is. It
might be 10. It might be 10000.
--
Chris Murphy
^ permalink raw reply [flat|nested] 23+ messages in thread
* RE: BTRFS disaster (of my own making). Is this recoverable?
2015-08-05 16:53 ` Chris Murphy
@ 2015-08-06 0:45 ` Paul Jones
2015-08-06 2:13 ` Chris Murphy
0 siblings, 1 reply; 23+ messages in thread
From: Paul Jones @ 2015-08-06 0:45 UTC (permalink / raw)
To: Chris Murphy, Sonic; +Cc: Btrfs BTRFS, Hugo Mills
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 2004 bytes --]
> -----Original Message-----
> From: linux-btrfs-owner@vger.kernel.org [mailto:linux-btrfs-
> owner@vger.kernel.org] On Behalf Of Chris Murphy
> Sent: Thursday, 6 August 2015 2:54 AM
> To: Sonic <sonicsmith@gmail.com>
> Cc: Btrfs BTRFS <linux-btrfs@vger.kernel.org>; Hugo Mills
> <hugo@carfax.org.uk>
> Subject: Re: BTRFS disaster (of my own making). Is this recoverable?
>
> On Wed, Aug 5, 2015 at 6:31 AM, Sonic <sonicsmith@gmail.com> wrote:
> > On Tue, Aug 4, 2015 at 4:23 PM, Sonic <sonicsmith@gmail.com> wrote:
> >> Seems that if there was someway to edit something in those first
> >> overwritten 32MB of disc 2 to say "hey, I'm really here, just a bit
> >> screwed up" maybe some of the recovery tools could actually work.
> >
> > Just want to reiterate this thought.
> >
> > The basic error in most cases with the tools at hand is that Disc 2 is
> > missing so there's little the tools can do. Somewhere in those first
> > 32MB should be something to properly identify the disc as part of the
> > array.
>
> Yes but it was probably uniquely only on that disk, because there's no
> redundancy for metadata or system chunks. Therefore there's no copy on
> the other disk to use as a model. The btrfs check command has an option to
> use other superblocks, so you could try that switch and see if it makes a
> difference but it sounds like it's finding backup superblocks automatically.
> That's the one thing that is pretty much always duplicated on the same disk;
> for sure the first superblock is munged and would need repair. But there's
> still other chunks missing... so I don't think it'll help.
Would it be possible to store this type of critical information twice on each disk, at the beginning and end? I thought BTRFS already did that, but I might be thinking of some other filesystem. I've had my share of these types of oops! moments as well.
Paul.
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±ý»k~ÏâØ^nr¡ö¦zË\x1aëh¨èÚ&£ûàz¿äz¹Þú+Ê+zf£¢·h§~Ûiÿÿïêÿêçz_è®\x0fæj:+v¨þ)ߣøm
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-06 0:45 ` Paul Jones
@ 2015-08-06 2:13 ` Chris Murphy
2015-08-06 11:13 ` Austin S Hemmelgarn
0 siblings, 1 reply; 23+ messages in thread
From: Chris Murphy @ 2015-08-06 2:13 UTC (permalink / raw)
To: Btrfs BTRFS; +Cc: Hugo Mills
On Wed, Aug 5, 2015 at 6:45 PM, Paul Jones <paul@pauljones.id.au> wrote:
> Would it be possible to store this type of critical information twice on each disk, at the beginning and end? I thought BTRFS already did that, but I might be thinking of some other filesystem. I've had my share of these types of oops! moments as well.
That option is metadata profile raid1. To do an automatic
-mconvert=raid1 when the user does 'btrfs device add' breaks any use
case where you want to temporarily add a small device, maybe a USB
stick, and now hundreds of MiBs possibly GiBs of metadata have to be
copied over to this device without warning. It could be made smart,
autoconvert to raid1 when the added device is at least 4x the size of
metadata allocation, but then that makes it inconsistent. OK so it
could be made interactive, but now that breaks scripts. So... where do
you draw the line?
Maybe this would work if the system chunk only was raid1? I don't know
what the minimum necessary information is for such a case.
Possibly it make more sense if 'btrfs device add' always does
-dconvert=raid1 unless a --quick option is passed?
--
Chris Murphy
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: BTRFS disaster (of my own making). Is this recoverable?
2015-08-06 2:13 ` Chris Murphy
@ 2015-08-06 11:13 ` Austin S Hemmelgarn
0 siblings, 0 replies; 23+ messages in thread
From: Austin S Hemmelgarn @ 2015-08-06 11:13 UTC (permalink / raw)
To: Chris Murphy, Btrfs BTRFS; +Cc: Hugo Mills
[-- Attachment #1: Type: text/plain, Size: 1301 bytes --]
On 2015-08-05 22:13, Chris Murphy wrote:
> On Wed, Aug 5, 2015 at 6:45 PM, Paul Jones <paul@pauljones.id.au> wrote:
>> Would it be possible to store this type of critical information twice on each disk, at the beginning and end? I thought BTRFS already did that, but I might be thinking of some other filesystem. I've had my share of these types of oops! moments as well.
>
> That option is metadata profile raid1. To do an automatic
> -mconvert=raid1 when the user does 'btrfs device add' breaks any use
> case where you want to temporarily add a small device, maybe a USB
> stick, and now hundreds of MiBs possibly GiBs of metadata have to be
> copied over to this device without warning. It could be made smart,
> autoconvert to raid1 when the added device is at least 4x the size of
> metadata allocation, but then that makes it inconsistent. OK so it
> could be made interactive, but now that breaks scripts. So... where do
> you draw the line?
>
> Maybe this would work if the system chunk only was raid1? I don't know
> what the minimum necessary information is for such a case.
>
> Possibly it make more sense if 'btrfs device add' always does
> -dconvert=raid1 unless a --quick option is passed?
>
Perhaps we could print out a big noisy warning that could be silenced?
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 3019 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2015-08-06 11:13 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-08-02 17:13 BTRFS disaster (of my own making). Is this recoverable? Sonic
2015-08-03 5:17 ` Duncan
2015-08-03 14:43 ` Sonic
2015-08-03 15:05 ` Sonic
2015-08-03 15:28 ` Hugo Mills
2015-08-03 16:03 ` Sonic
2015-08-03 16:14 ` Sonic
2015-08-03 16:22 ` Sonic
2015-08-03 16:32 ` Sonic
2015-08-03 19:26 ` Duncan
2015-08-04 2:20 ` Sonic
2015-08-04 2:45 ` Sonic
2015-08-04 5:10 ` Duncan
2015-08-04 20:23 ` Sonic
2015-08-05 12:31 ` Sonic
2015-08-05 12:39 ` Sonic
2015-08-05 16:53 ` Chris Murphy
2015-08-06 0:45 ` Paul Jones
2015-08-06 2:13 ` Chris Murphy
2015-08-06 11:13 ` Austin S Hemmelgarn
2015-08-03 5:42 ` Chris Murphy
2015-08-03 8:18 ` Hugo Mills
2015-08-03 13:12 ` Sonic
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).