服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux系统下移植busybox中mkfs.vfat命令

Linux系统下移植busybox中mkfs.vfat命令

2022-09-09 13:45chenwr2018lv-1 Linux

为了延长磁盘寿命来存储音视频文件,打发在格式化磁盘过程中将簇的大小设置大点。这接下来通过本文给大家介绍移植busybox中mkfs.vfat命令,需要的朋友可以参考下

为了延长磁盘寿命来存储音视频文件,打发在格式化磁盘过程中将簇的大小设置大点。因为存储的音视频文件现对较大,那么将簇大小设置得尽可能大,这样可以增强磁盘读取数据的性能,同时也不会浪费太多空间。

但发现我们设备的mkfs.vfat不支持-s参数设置簇的大小。

Linux系统下移植busybox中mkfs.vfat命令

 

于是打算重新移植mkfs.vfat.

思路1

重新移植busybox

1.官网上下载最新的busybox源码

 

 
Linux系统下移植busybox中mkfs.vfat命令

 

2.修改makefile

?
1
2
3
arch =arm
 
cross_compile = /opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-

 

 
Linux系统下移植busybox中mkfs.vfat命令

 

2.make menuconfig

设置为静态库

 

 
Linux系统下移植busybox中mkfs.vfat命令

 

3.make

出现错误

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
make: *** [busybox_unstripped] error 1
root@chenwr-pc:/home/soft/busybox-1.31.0# make
 link  busybox_unstripped
your linker does not support --sort-section,alignment
your linker does not support --sort-common
static linking against glibc, can't use --gc-sections
trying libraries: crypt m resolv
failed: -wl,--start-group -lcrypt -lm -lresolv -wl,--end-group
output of:
/opt/hisi-linux-nptl/arm-hisiv100-linux/target/bin/arm-hisiv100nptl-linux-gcc -wall -wshadow -wwrite-strings -wundef -wstrict-prototypes -wunused -wunused-parameter -wunused-function -wunused-value -wmissing-prototypes -wmissing-declarations -wno-format-security -wdeclaration-after-statement -wold-style-definition -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -static-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-builtin-printf -os -static -march=armv7l -o busybox_unstripped -wl,--start-group applets/built-in.o archival/lib.a archival/libarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a klibc-utils/lib.a e2fsprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/udhcp/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libarchive/built-in.o console-tools/built-in.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o klibc-utils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libpwdgrp/built-in.o loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o procps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o -wl,--end-group -wl,--start-group -lcrypt -lm -lresolv -wl,--end-group
==========
networking/lib.a(ipcalc.o): in function `ipcalc_main':
ipcalc.c:(.text.ipcalc_main+0x24c): warning: gethostbyaddr is obsolescent, use getaddrinfo() instead.
libbb/lib.a(inet_common.o): in function `inet_resolve':
inet_common.c:(.text.inet_resolve+0x60): warning: gethostbyname is obsolescent, use getnameinfo() instead.
coreutils/lib.a(mktemp.o): in function `mktemp_main':
mktemp.c:(.text.mktemp_main+0x8c): warning: the use of `mktemp' is dangerous, better use `mkstemp'
networking/lib.a(nslookup.o): in function `add_query':
nslookup.c:(.text.add_query+0x70): undefined reference to `res_mkquery'
networking/lib.a(nslookup.o): in function `send_queries':
nslookup.c:(.text.send_queries+0x2d0): undefined reference to `__ns_initparse'
nslookup.c:(.text.send_queries+0x308): undefined reference to `__ns_parserr'
nslookup.c:(.text.send_queries+0x480): undefined reference to `__ns_get16'
nslookup.c:(.text.send_queries+0x5cc): undefined reference to `__ns_get32'
nslookup.c:(.text.send_queries+0x5e4): undefined reference to `__ns_get32'
nslookup.c:(.text.send_queries+0x5fc): undefined reference to `__ns_get32'
nslookup.c:(.text.send_queries+0x614): undefined reference to `__ns_get32'
nslookup.c:(.text.send_queries+0x628): undefined reference to `__ns_get32'
util-linux/lib.a(fallocate.o): in function `fallocate_main':
fallocate.c:(.text.fallocate_main+0x80): undefined reference to `posix_fallocate'
util-linux/lib.a(unshare.o): in function `unshare_main':
unshare.c:(.text.unshare_main+0x1ec): undefined reference to `unshare'
collect2: ld returned 1 exit status
note: if build needs additional libraries, put them in config_extra_ldlibs.
example: config_extra_ldlibs="pthread dl tirpc audit pam"
make: *** [busybox_unstripped] error 1

重新make menuconfig 进入设置把报错的模块关闭不勾选。

 

 
Linux系统下移植busybox中mkfs.vfat命令
 
Linux系统下移植busybox中mkfs.vfat命令
 
Linux系统下移植busybox中mkfs.vfat命令
 
Linux系统下移植busybox中mkfs.vfat命令

 

参考网上的说法,还是会有很多错误。而且关闭很多网络的东西和系统的配置,担心万一影响到其他命令呢。因为我发现原来移植后的busybox,比如ls命令,不是单独的一个bin文件。而是软连接到busybox中

 

 
Linux系统下移植busybox中mkfs.vfat命令

 

而且我发觉设备的空间有限,原先的busybox才800多k,即使新移植成功也要2m多。于是换个思路,单独源码移植mkfs.vfat

 

 
Linux系统下移植busybox中mkfs.vfat命令

 

到此该命令移植完毕。

总结

以上所述是小编给大家介绍的linux系统下移植busybox中mkfs.vfat命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

原文链接:https://juejin.im/post/5d2011c351882512a8102093

延伸 · 阅读

精彩推荐
  • LinuxLinux系统中使用dd命令来转换和拷贝文件

    Linux系统中使用dd命令来转换和拷贝文件

    这篇文章主要介绍了Linux系统中使用dd命令来转换和拷贝文件的方法,dd命令的使用是Linux入门学习中的基础知识,需要的朋友可以参考下...

    Linux命令手册6382019-06-25
  • Linux在Linux下使用avconv进行屏幕录像的教程

    在Linux下使用avconv进行屏幕录像的教程

    这篇文章主要介绍了在Linux系统中使用avconv进行屏幕录像的教程,当然也可以同时对声音的输入进行录制,示例基于Ubuntu系统进行操作,需要的朋友可以参考下...

    Linux之家3592019-09-25
  • Linux用grep恢复误删的文本文件

    用grep恢复误删的文本文件

    作为长期的电脑使用者,肯定会有误删文件的经历,在 Mac OS X 和 Windows 上删除的文件都会默认进 回收站。 ...

    Linux教程网4222020-03-31
  • LinuxLinux内核设备驱动之内核的时间管理笔记整理

    Linux内核设备驱动之内核的时间管理笔记整理

    今天小编就为大家分享一篇关于Linux内核设备驱动之内核的时间管理笔记整理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋...

    Engineer-Bruce_Yang10602022-08-09
  • Linux连接Linux的服务器时使用SSH密钥认证及解决自动断连问题

    连接Linux的服务器时使用SSH密钥认证及解决自动断连问题

    这篇文章主要介绍了连接Linux的服务器时使用SSH密钥认证及解决自动断连问题的方法,主要适用于利用putty等客户端连接服务器的情况,需要的朋友可以参考下...

    风再起时4532019-07-03
  • LinuxLinux系统找出大文件的方法

    Linux系统找出大文件的方法

    磁盘空间被耗尽的时候,免不了要清理一下,比如说/home目录太大,就可以使用下面命令看看到底是谁 ...

    Linux教程网4672020-03-21
  • Linuxlinux中ssh免密通信的实现

    linux中ssh免密通信的实现

    这篇文章主要介绍了linux中ssh免密通信的实现,详细的介绍了什么是ssh及其ssh免密通信,非常具有实用价值,需要的朋友可以参考下...

    刘景宇3842022-08-04
  • Linuxlinux如何修改主机名

    linux如何修改主机名

    如何修改linux主机名才能生效?很多人使用hostname 主机名 来修改,其实这个只是做为暂时的,重启后将恢复到原来的名字....

    Linux教程网4592020-04-18