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. > > > > > > > > > # echo '8 3774578664 linear /dev/mapper/backing-device 0' | dmsetup > > > create dmb > > > device-mapper: reload ioctl on dmb failed: Invalid argument > > > Command failed. > > > > > > I'm not sure about how it works. Is it not 8 sectors for 4k bytes? > > > > > > > It works on my side, my kernel is Linux v5.5-rc2, lvm2 version is > > 2.02.180, dmsetup version is 1.02.149. The difference is the device > > size, my disk size is much less. > > > > -- > > > > Coly Li