我想使用选项oflag=append来执行dd操作,以便将内容附加到文件中。这是为了增加循环设备的基础文件的大小,在这样的情况下,创建一个新的更大的文件太耗费资源。
无论如何,dd可能不是最好的选择,但它是我所知道的最好的选择。更好的建议欢迎!
我的CentOS 4.8 X86_64服务器正在运行coreutils5.2.1。随此版本的coreutils提供的dd版本不支持oflag选项。没有更新版本出现在官方回购。
我注意到最新版本的核心是8.5,并假设在5.2.1和8.5之间添加了oflag选项。
假设我需要将coreutils升级到比CentOS 4.8 x86_64当前提供的版本更新的版本:
dd支持oflag选项所需的最低版本是哪个?发布于 2010-08-01 18:23:27
我不知道有什么其他方法可以随心所欲地做你想做的事。
升级似乎很危险;在核心程序中的二进制代码列表中,很有可能出现向后不兼容的更改。您系统上的几乎每个脚本都使用来自coreutils的二进制文件,因此在错误的位置进行向后不兼容的更改可能会对您的框造成严重破坏。
下一步:为此获取一个二进制RPM。我认为这不太可能,除非你自己建造。
不过,您可以安全地构建coreutils源代码(从未这样做过,但它可能只是一个配置、制造、安装),直到并包含了' make‘部分。不要做“制造安装”。然后,从新生成的二进制文件中选择新的dd,并将其作为/bin放在dd_new中,这样就可以了。安然无恙。
也就是说,只要新的coreutils构建在以前的glibc :)
发布于 2010-08-01 18:51:55
我认为你可以不用构建一个新的核心程序就可以完成你想要的dd任务。
ls -l loopfile得到大小,除以1024,然后:
dd if=/dev/zero of=loopfile bs=1M seek=1024 count=2048(这是以1M块写入,因此跳过1G的输出,然后将2G添加到文件中。确保块大小均匀地划分为文件大小。很可能你需要一个1k的块大小和一个更大的搜索和计数号)
我会做一些小规模的实验。您可能还需要"conv=notrunc“。
https://serverfault.com/questions/166083
复制相似问题