首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么使用cpio作为initramfs?

为什么使用cpio作为initramfs?
EN

Unix & Linux用户
提问于 2011-02-12 09:16:55
回答 3查看 6.9K关注 0票数 15

我正在按照Gentoo wiki制作我自己的initramfs。这个页面不是熟悉的targzip,而是告诉我使用cpiogzip维基百科说2.6内核的initramfs使用cpio,但没有解释原因。

这只是一个约定,还是cpio更适合initramfs?我还能用targzip吗?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2011-02-12 19:43:49

我不是百分之百确定,但是由于启动时初始的ramdisk需要由内核解压缩,所以使用cpio,因为它已经在内核代码中实现了。

票数 10
EN

Unix & Linux用户

发布于 2017-07-24 08:17:51

引用Documentation/filesystems/ramfs-rootfs-initramfs.txt

为什么是焦油而不是焦油?这项决定是在2001年12月作出的。讨论从这里开始:http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1538.html并产生了第二个线程(特别是在tar cpio上),从这里开始:http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1587.html快速和脏的摘要版本(不能代替读取上面的线程)是: 1) cpio是一个标准。它已经有了几十年的历史(从AT&T时代开始),并且已经广泛应用于Linux ( RPM内部,Red的设备驱动程序磁盘)。这里有一篇1996年的Linux文章:http://www.linuxjournal.com/article/1213不像tar那么受欢迎,因为传统的cpio命令行工具需要_truly_hideous_命令行参数。但是,这对归档格式没有任何意义,而且还有其他工具,例如:http://freecode.com/projects/afio 2)内核选择的cpio存档格式比任何(字面上是几十种)不同的tar存档格式都更简单、更简洁(从而更容易创建和解析)。完整的initramfs存档格式用buffer-format.txt解释,在usr/gen_init_cpio.c中创建,在init/initramfs.c中解压缩。这三者加在一起,人类可读性文本的总数不到26k。3)基于tar的GNU项目标准化与Windows在zip上的标准化大致相同。Linux并不是其中的一部分,它可以自由地做出自己的技术决定。4)因为这是一个内核内部格式,所以它很容易成为 --某种全新的东西。内核提供了自己的工具来创建和提取这种格式。使用现有的标准是可取的,但不是必要的。5) Al做出了决定(引用如下:"tar非常难看,在内核端不受支持“):http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1540.html解释了他的推理:http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1550.html http://www.uwsg.iu.edu/hypermail/linux/kernel/0112.2/1638.html,最重要的是,设计和实现了initramfs代码。

票数 15
EN

Unix & Linux用户

发布于 2011-02-13 14:32:53

据我所记得的我以前的SysV时代,cpio可以处理dev文件,但tar不能;这使得cpio成为转储出现之前选择的“原始”备份实用工具。处理部分文件集和硬链接也更容易,因此增量备份更容易。我认为GNU已经赶上了cpio特性,所以现在它只是一个用户舒适感的问题。默认情况下,应该同时安装cpio和tar。

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

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

复制
相关文章

相似问题

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