标签: device-mapper

通过/dev/dm-X条目获取目标设备

我必须通过 映射几个环回设备dmsetup

我可以跟踪哪个环回设备映射到特定的/dev/dm-X设备文件,但是有没有一种简单的方法可以单独获取此信息/dev/dm-X

dmsetup info在这里对我没有任何帮助。

linux loop-device device-mapper

5
推荐指数
1
解决办法
919
查看次数

lvmcache 和 dm-cache 有什么区别?

最近我发现一篇文章提到最近dm-cachelinux 有了显着的改进。我还发现在用户空间中您将其视为lvmcache. 这对我来说很困惑。我认为 LVM 缓存机制与dm-cache. 在我的服务器上,我dm-cache使用命令直接在设备映射器级别上进行设置dmsetup。不涉及 LVM 命令。

那么到底是什么?lvmcache仅使用 CLI就可以更轻松地dm-cache进行设置吗?使用它而不是原始dmsetup命令是更好的主意吗?

我当前的脚本如下所示:

#!/bin/bash

CACHEPARAMS="512 1 writethrough default 0"
CACHEDEVICES="o=/dev/mapper/storage c=/dev/mapper/suse-cache"
MAPPER="storagecached"

if [ "$1" == "-u" ] ; then
{
  for i in $CACHEDEVICES ; do
    if [ "`echo $i | grep \"^c=\"`" != "" ] ; then
      __CACHEDEV=${i:2}
    elif [ "`echo $i | grep \"^o=\"`" != "" ] ; then
      __ORIGINALDEV=${i:2}
  fi
  done

  dmsetup …
Run Code Online (Sandbox Code Playgroud)

cache lvm device-mapper

5
推荐指数
1
解决办法
1万
查看次数

为 rootfs 挂载带有读写覆盖的 squashfs 映像

我正在尝试更新自定义 initramfs init 脚本以将 squashfs 映像安装为根文件系统。我一直在测试以只读方式将壁球图像安装到循环设备,以读写方式将另一个空文件安装到另一个循环设备,并使用设备映射器创建 ro 循环设备的 rw 快照。

我已经用我的测试脚本(以 root 身份运行)做到了这一点:

mkdir /tmp/squash_rw
dev=$(losetup -f)
losetup -r $dev /mcp_fs.sqsh
ovl=/overlay
newdevname=overlay
size=$(blockdev --getsz "$dev")
loop=$(losetup -f --show -- "$ovl")
printf '%s\n' "0 $size snapshot $dev $loop P 8" | dmsetup create "$newdevname"
Run Code Online (Sandbox Code Playgroud)

然后,我使用 touch 来测试新设备是否以 rw 方式安装,但出现错误,并提示它是只读设备。

 # touch /tmp/squash_rw/test
touch: cannot touch '/tmp/squash_rw/test': Read-only file system
Run Code Online (Sandbox Code Playgroud)

我使用的是 gentoo 发行版和 Linux 内核 3.10.6,其中包含设备映射器和 squashfs 模块。许多参考资料建议使用 dracut initramfs,但我试图让供应商提供的 init 脚本工作。

我已经坚持了几天,非常感谢任何人可以提供的任何帮助。

在继续研究和实验之后,我正在制作的 devmapper 设备似乎假定第一个设备的文件系统正在合并在一起。如果我使用 squashfs 设备,则 devmapper 设备是只读的,如果我使用 rw …

mount initramfs loop-device squashfs device-mapper

5
推荐指数
0
解决办法
3214
查看次数

dm-integrity 独立映射器设备在重新启动后丢失

我目前尝试使用 dm-integrity 在独立模式下运行。为此,我在虚拟机虚拟机中安装了普通的 ubuntu 服务器 20.04。

在接下来的步骤中,我创建 dm-integrity 设备(一个 ext4 文件系统)并安装它:

integritysetup format /dev/sdb
integritysetup open /dev/sdb hdd-int
mkfs.ext4 /dev/mapper/hdd-int
mkdir /data
mount /dev/mapper/hdd-int /data
echo "/dev/mapper/hdd-int /data ext4 defaults 0 0" >> /etc/fstab
Run Code Online (Sandbox Code Playgroud)

注意:为了简化,我使用/dev/sdb而不是/dev/disk/by-id/<ID>.

现在我重新启动并看到设备 /dev/mapper/hdd-int 不存在,因此安装/data失败。

现在我的问题:如何永久保留 dm-integrity 设备的信息,以便重新启动后挂载已经存在?应该在 中创建一行/etc/fstab吗?或者还有其他配置文件吗?

mount integrity device-mapper

5
推荐指数
1
解决办法
2329
查看次数