我必须通过 映射几个环回设备dmsetup
。
我可以跟踪哪个环回设备映射到特定的/dev/dm-X
设备文件,但是有没有一种简单的方法可以单独获取此信息/dev/dm-X
?
dmsetup info
在这里对我没有任何帮助。
最近我发现一篇文章提到最近dm-cache
linux 有了显着的改进。我还发现在用户空间中您将其视为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) 我正在尝试更新自定义 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 …
我目前尝试使用 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
吗?或者还有其他配置文件吗?