Прошу помощи у специалистов.
Пытаюсь пересобрать initramfs - делаю так :
-
распаковываю оригинальный - в папке, куда скопировал initrd.xz делаю «xz -d ./initrd.xz && cat ./initrd | cpio -i -d -H newc»
-
в этой же папке , ничего не меняя, делаю «find . -print | cpio -H newc -o | xz -z -F xz -C crc32 –x86 –lzma2=dict=8MiB > ../initramfs.cpio.xz» . Нужен именно xz, кернел понимает только его, опции «–x86 –lzma2=dict=8MiB» тоже важны, без них кернел не принимает созданную initramfs. А эти опции видно при «xz -lvv ./initrd.xz»
-
Пробую запускать под QEMU кернел и оригинальный или мой initramfs - оригинальный нормально отрабатывает /init из initramfs, а мой - выводит кучу строк «modprobe: FATAL: Error running install command for binfmt_0000» и потом «Failed to execute /init (error -8)»
-
распаковываю оба initramfs в разные папки и сравниваю их между собой :
-
размер папок по «du -sb .» одинаковый
-
делаю для папок «find . -type f -print | xargs md5sum -b > ../md5s.txt» и сравнимаю оба файла контр. сумм - отличий нет
-
делаю для папок «ls -lR» и сравниваю вывод - отличие только во времени распаковки
Т.е папки вроде бы не отличичаются, но мой initramfs не работает. Подскажите, куда копать ?