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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2020/1/18 10:16 下午, Coly Li wrote:

>>>> 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.
> 
> The tricky part is to calculate the correct linear mapping size.
> 
> For example, I have a 500G hard drive, from fdisk I see its size is
> 1048576000 sectors. I use it as a bcache backing device and format an
> Ext4 file system on it. Then I use the following mistaken command line
> to setup a linear target to skip the first 8 sectors,
>  # echo '0 1048575000  linear /dev/sdc 16' | dmsetup create dmb
> Then mount /dev/mapper/dmb to /mnt fails, the kmesg hints me,
>  [1884572.477316] EXT4-fs (dm-0): bad geometry: block count 131071998
> exceeds size of device (131071875 blocks)
> 
> So I realize Ext4 file system will check the block device size, so I
> need to provide an exact accurate length number for the linear target.
> From the kmesg I see the correct sector size should be
> (131071998*8=)1048575984, then I re-create the linear target by,
>  # echo '0 1048575984  linear /dev/sdc 16' | dmsetup create dmb
> Then I mount /dev/mapper/dmb to /mnt, it works and I have the following
> line from command 'mount',
>  /dev/mapper/dmb on /mnt type ext4 (rw,relatime)
> 
> I don't use the encrpyt file system and I don't know the excact detail
> about it. But I guess, it might because the incorrect length number for
> your dm linear target as I show by the above example.
> 

Sorry I realize maybe I mislead you....

I re-read the first email, it seems you create the bcache backing device
on top of a raid raid1, then you cryptsetup on the bcache device.

So I guess the linear dm target should be created on top of the md
raid1, not /dev/mapper/backing-device. Which might be,
# echo '0 3774578656 linear /dev/md127 16' | dmsetup create dmb

The above line assumes luks has its superblock on offset zero from its
own LBA, and <0 3774578656> should be a correct pair.

If all the offset numbers are correct, dmb should be the block device
for your to run cryptsetup open. Then you will have a
/dev/mapper/backing-device for following mount.

-- 

Coly Li



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux