Centos 安装mtd-utils工具
centos仓库软件不像ubuntu那么齐全。如果你遇到了 /bin/sh:mkfs.ubifs:commandnotfound 错误,原因是系统里没安装mtd-utils这个工具,mkfs.ubifs是mtd-utils的一部分。
mtd-utils是一组用于管理和维护linux系统中Memory Technology Devices (MTD)的工具集合。mtd-utils为嵌入式Linux 系统提供了强大的存储设备管理功能,特别是在处理闪存设备如NAND flash和NOR flash时,这些工具不仅提供了基本的操作功能,还支持高级的分区管理和文件系统格式化操作。
其中,mkfs.ubifs用来创建UBIFS(嵌入式常用的闪存文件系统)的核心命令。
在ubuntu中,或许可以通过 apt install mtd-utils -y 直接安装mtd-utils,但是centos只能编译安装
下载相关依赖
[root@Test ~]# yum groupinstall "Development Tools" -y
[root@Test ~]# yum install epel-release -y
[root@Test ~]# yum clean all
[root@Test ~]# yum makecache
[root@Test ~]# yum install git zlib-devel lzo-devel bison flex autoconf automake libtool libuuid-devel uuid-devel e2fsprogs-devel libzstd-devel openssl-devel -y如果在第一步yum时候
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
One of the configured repositories failed (未知),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail.
Cannot find a valid baseurl for repo: base/7/x86_64 可以参考
[post cid="1407"/]
[post cid="1513"/]
下载源码
安装完相关依赖以后,可以开始下载源码准备编译工作
[root@Test ~]# git clone git://git.infradead.org/mtd-utils.git
[root@Test ~]# cd mtd-utils这里要专门说一下,mtd-utils对glibc的版本是有相关要求的,尤其是最新版的,如果你的glibc版本比较低,推荐安装mtd-utils 2.1.5之前的版本,特别是2.1.1以前的版本是没有glibc版本限制,可以通过ai等工具搜索下当前glibc版本最适合安装的mtd-utils版本,然后切换版本,这里以默认的glibc2.17安装mtd-utils 2.1.5为例。
# 切换到mtd-utils 2.1.5
[root@Test ~]# git checkout v2.1.5
# 由于仓库是没有Makefile文件的,需要先生成Makefile文件
[root@Test ~]# ./autogen.sh
[root@Test ~]# ./configure
[root@Test ~]# make
[root@Test ~]# make install
# 验证安装
[root@Test ~]# mkfs.ubifs --help步骤比较多,为了方便,我写了一个一键安装脚本,方便大家使用。
[root@Test ~]# cat>./aboutinstall.sh<<EOF
#!/bin/bash
# 安装相关依赖
echo "安装相关依赖..."
yum groupinstall "Development Tools" -y
yum install epel-release -y
yum clean all
yum makecache
yum install git zlib-devel lzo-devel bison flex autoconf automake libtool libuuid-devel uuid-devel e2fsprogs-devel libzstd-devel openssl-devel -y
# 下载mtd-utils源码
git clone git://git.infradead.org/mtd-utils.git
cd mtd-utils
# 选择指定版本
git checkout v2.1.5
# 生成Makefile文件
./autogen.sh
# 配置编译选项
./configure
if [ $? -ne 0 ]; then
echo "配置编译选项失败"
exit 1
fi
echo "正在编译mtd-utils..."
# 编译
make
if [ $? -ne 0 ]; then
echo "编译失败,请检查依赖"
exit 1
fi
echo "正在安装编译后的mtd-utils..."
# 开始安装
make install
if [ $? -ne 0 ]; then
echo "安装失败"
exit 1
fi
# 验证安装
echo "验证mkfs.ubifs是否安装成功..."
mkfs.ubifs --help
if [ $? -eq 0 ]; then
echo "mkfs.ubifs安装成功"
else
echo "安装失败,请检查"
exit 1
fi
EOF
[root@Test ~]# bash ./aboutinstall.sh