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. > > # 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