首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ubuntu20.04上安装vdo/kvdo?

如何在Ubuntu20.04上安装vdo/kvdo?
EN

Unix & Linux用户
提问于 2021-11-23 06:40:08
回答 2查看 1.6K关注 0票数 1

我想知道是否有办法在Ubuntu20.04中安装红帽vdo

到目前为止,我尝试下载并编译来源,但是我得到了以下错误:

代码语言:javascript
复制
cc -fPIC -fpic -D_GNU_SOURCE -g -O3 -fno-omit-frame-pointer -Wall -Wcast-align -Werror -Wextra -Winit-self -Wlogical-op -Wmissing-include-dirs -Wpointer-arith -Wredundant-decls -Wunused -Wwrite-strings    -std=gnu99 -pedantic -Wbad-function-cast -Wcast-qual -Wfloat-equal -Wformat=2 -Wmissing-declarations -Wmissing-format-attribute -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wswitch-default   -I. -I../uds -Wno-write-strings -DCURRENT_VERSION="\"8.1.0.316\""   -c -MMD -MF .deps/vdoformat.d.new -MP -MT vdoformat.o -o vdoformat.o vdoformat.c
vdoformat.c:22:10: fatal error: blkid/blkid.h: No such file or directory
   22 | #include <blkid/blkid.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.

我不明白为什么我会得到错误,因为我已经安装了libblkid包。

真正让我烦恼的是,伊文夫多有一个手册(我猜是really对Ubuntu的“端口”),但它只说:

对于使用lvm(8)标准VDO用户空间工具的VDO,需要在系统上安装vdoformat(8)和当前非标准的内核VDO模块"kvdo“。

我确实在Ubuntu20.04中默认安装了lvm包,但是我找不到安装vdoformat或kvdo包的方法。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2021-11-26 23:41:11

经过几天的尝试和错误..。我找到了在Ubuntu中实际使用vdo的方法(至少在20.04年)。

首先,快速更新,然后安装一些必要的软件包:

代码语言:javascript
复制
apt update -y && apt upgrade -y && \
apt install git build-essential libdevmapper-dev libz-dev uuid-dev flex bison linux-source libblkid-dev -y

现在,为了确保将内核(默认值为5.4)升级到5.9,然后重新启动:

代码语言:javascript
复制
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-headers-5.9.0-050900_5.9.0-050900.202010112230_all.deb && \
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-headers-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb && \
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-image-unsigned-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb && \
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.9/amd64/linux-modules-5.9.0-050900-generic_5.9.0-050900.202010112230_amd64.deb && \
dpkg -i *.deb && \
shutdown now -r

现在您需要kvdo是内核实用程序才能使用vdo,接下来命令克隆回购,然后编译它:

代码语言:javascript
复制
git clone https://github.com/rhawalsh/kvdo.git && \
cd kvdo && \
make -C /usr/src/linux-headers-5.9.0-050900-generic/ M=$('pwd') modules

然后更新我们的Module.symvers,并将kvdo模块复制到相应的文件夹中:

代码语言:javascript
复制
cat Module.symvers >> /lib/modules/5.9.0-050900-generic/build/Module.symvers && \
mkdir /lib/modules/5.9.0-050900-generic/extra/ && \
cp /opt/kvdo/uds/uds.ko /lib/modules/5.9.0-050900-generic/extra/ && \
cp /opt/kvdo/vdo/kvdo.ko /lib/modules/5.9.0-050900-generic/extra/

现在,我们要求内核更新所有模块,然后检查是否安装了它(如果mod探针kvdo没有显示任何内容,那么就正确安装了):

代码语言:javascript
复制
depmod -a && \
modprobe kvdo

您可以测试已安装的kvdo版本:

代码语言:javascript
复制
modinfo kvdo

modinfo kvdo
filename:       /lib/modules/5.9.0-050900-generic/extra/kvdo.ko
version:        8.1.0.316
license:        GPL
author:         Red Hat, Inc.
description:    device-mapper target for transparent deduplication
srcversion:     F021DCCB4284C7E05BCCF77
depends:        uds
retpoline:      Y
name:           kvdo
vermagic:       5.9.0-050900-generic SMP mod_unload 

内核工具已经安装好了,现在我们需要用户空间工具(vdo),接下来命令克隆vdo并编译它:

代码语言:javascript
复制
git clone https://github.com/rhawalsh/vdo.git && \
cd vdo && \
make && \
make install

您可以测试它是否正确安装:

代码语言:javascript
复制
vdoformat --version

现在你可以像在CentOS一样使用vdo .

票数 2
EN

Unix & Linux用户

发布于 2021-11-23 07:15:02

我不明白为什么我会得到错误,因为我已经安装了libblkid包。

您需要包含libblkid-dev头文件的blkid/blkid.h包。

真正让我烦恼的是,有一个关于lvmvdo的手册(我猜是来自RedHat VDO的Ubuntu的“端口”),但它只说:

不,这不是VDO的一个端口,这是将VDO集成到LVM中,它允许您使用去重复和/或启用压缩来创建LVM逻辑卷。这不是VDO的重新实现,LVM使用现有的VDO代码-- vdoformat用户空间工具和kvdo内核模块,因此您仍然需要安装这两者才能使LVM实现工作。

我确实在Ubuntu20.04中默认安装了lvm包,但是我找不到安装vdoformat或kvdo包的方法。

VDO在Ubuntu (20.10的愿望列表错误)中不可用,所以您需要自己编译它(您已经开始编译了),但是您需要编译和手动安装包含用户空间工具(包括LVM使用的vdoformat )的dm-vdo/vdo项目和包含内核模块(在lvmvdo man页面中引用的kvdo "package“)的dm-vdo/kvdo项目。

票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/678689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档