Thread (7 messages) 7 messages, 2 authors, 2020-01-18

Re: undo make-bcache (was: Re: Can't mount an encrypted backing device)

From: Clodoaldo Neto <hidden>
Date: 2020-01-18 13:50:14

On Sat, Jan 18, 2020 at 9:35 AM Coly Li [off-list ref] wrote:
On 2020/1/18 8:22 下午, Clodoaldo Neto wrote:
quoted
On Sat, Jan 18, 2020 at 7:54 AM Clodoaldo Neto
[off-list ref] wrote:
quoted
On Thu, Jan 16, 2020 at 9:59 PM Coly Li [off-list ref] wrote:
quoted
On 2020/1/17 5:52 上午, Clodoaldo Neto wrote:
quoted
Em seg, 13 de jan de 2020 11:19, Coly Li <colyli@suse.de
<mailto:colyli@suse.de>> escreveu:
quoted
On 2020/1/13 8:44 下午, Jens-U. Mozdzen wrote:
quoted
Hi Coly,

jumping in here, because I was looking for a way to revert from bcache
to plain device:

Zitat von Coly Li <colyli@suse.de <mailto:colyli@suse.de>>:
quoted
The super block location of the backing disk is occupied by bcache. You
cannot mount the file system directly from the backing disk which is
formated as bcache backing device [...] (bcache offset all I/Os on
bcache device 4KB behind the requesting
LBA on backing disk).
Assuming that no caching device is associated with a backing device (so
the backing device is "clean" as in "containing all data blocks with the
current content"), could one convert the content of a backing device to
a "non-bcached device" by removing the first 4096 octets of the backing
device content?

Something like "dd if=backingdev of=newdev skip_bytes=4096 ..."?
Hi Jens-U,

you may try dmsetup to setup a linear device mapper target, and the map
table just skipping the first 4KB (bcache superblock area). If you are
lucky, I mean the real file system is not corrupted, the created device
mapper target can be mounted directly.

I'm trying dmsetup but it does not accept anything other than 0 and 0
at the beginning and end of the table:

# echo '0 3774578672 linear /dev/mapper/backing-device 8' | dmsetup
create dmb
device-mapper: reload ioctl on dmb  failed: Invalid argument
Command failed.
The above line should work, if 3774578672 is a correct size number in
sectors.
I took it from the original map:

# dmsetup table /dev/mapper/backing-device
0 3774578672 crypt aes-xts-plain64
:64:logon:cryptsetup:7e2c0b40-8dec-4b13-8d00-b53b55160775-d0 0 251:0
32768
It works like this:

# echo '0 3774578664 linear /dev/mapper/backing-device 8' | dmsetup create dmb

But then I can't mount it:

# mount /dev/mapper/dmb /r
mount: /r: wrong fs type, bad option, bad superblock on
/dev/mapper/dmb, missing codepage or helper program, or other error.
It might be my fault, from bcache-tools, it seems the offset is
BDEV_DATA_START_DEFAULT (16 sectors). How about:
# echo '0 3774578656 linear /dev/mapper/backing-device 16' | dmsetup
create dmb
Still no luck

# echo '0 3774578656 linear /dev/mapper/backing-device 16' | dmsetup create dmb
# mount /dev/mapper/dmb /r
mount: /r: wrong fs type, bad option, bad superblock on
/dev/mapper/dmb, missing codepage or helper program, or other error.

Clodoaldo

--

Coly Li
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help