On 2020/1/18 8:22 下午, Clodoaldo Neto wrote: > On Sat, Jan 18, 2020 at 7:54 AM Clodoaldo Neto > <clodoaldo.pinto.neto@xxxxxxxxx> wrote: >> >> On Thu, Jan 16, 2020 at 9:59 PM Coly Li <colyli@xxxxxxx> wrote: >>> >>> On 2020/1/17 5:52 上午, Clodoaldo Neto wrote: >>>> >>>> Em seg, 13 de jan de 2020 11:19, Coly Li <colyli@xxxxxxx >>>> <mailto:colyli@xxxxxxx>> escreveu: >>>>> >>>>> On 2020/1/13 8:44 下午, Jens-U. Mozdzen wrote: >>>>>> Hi Coly, >>>>>> >>>>>> jumping in here, because I was looking for a way to revert from bcache >>>>>> to plain device: >>>>>> >>>>>> Zitat von Coly Li <colyli@xxxxxxx <mailto:colyli@xxxxxxx>>: >>>>>>> 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 -- Coly Li