Я делаю свои собственные initramfs, следуя вики Gentoo . Вместо привычного tar
и gzip
, страница говорит мне, чтобы использовать cpio
и gzip
. Википедия говорит, что cpio
используется initramfs ядра 2.6, но не объясняет почему.
Это просто соглашение или cpio
лучше для initramfs? Могу ли я все еще использовать tar
и gzip
?
compression
cpio
initramfs
phunehehe
источник
источник
/init
и т. Д.), И ядро просто использует этот файл . Я не собираюсь генерировать initramfs genkernel или подобными методами.Ответы:
Я не уверен на 100%, но поскольку исходный ramdisk должен быть распакован ядром во время загрузки, используется cpio, потому что он уже реализован в коде ядра.
источник
cpio -H newc
архив.cpio
используется в качестве соглашения и который мы должны использоватьcpio
.Цитирование
Documentation/filesystems/ramfs-rootfs-initramfs.txt
:источник
Из того, что я помню о моих старых SysV-днях, cpio мог обрабатывать файлы dev, но tar не мог; это сделало cpio «необработанной» утилитой резервного копирования до появления дампа. Также было проще обрабатывать частичные наборы файлов и жесткие ссылки, поэтому инкрементное резервное копирование было проще. Я думаю, что GNU tar догнал функции cpio, так что теперь это просто вопрос удобства пользователя. И cpio, и tar должны быть установлены по умолчанию.
источник
cpio
может быть в состоянии обрабатыватьtar
архивы -формат, и наоборот в некоторых случаях, но это не имеет значения. Ядро могу только распакованныеnewc
-Stylecpio
-format архивы, которые неtar
я знаю производит.newc
, официально названasc
и, конечно, поддерживаетсяstar
.