У меня есть файл ramdisk.img, который я хотел бы изменить на ramdisk.cpio.gz, могу ли я просто переименовать файл или мне нужно пройти весь процесс архивации? Если мне нужно пройти процесс архивации, может ли кто-нибудь рассказать мне о необходимых для этого шагах.
решение1
Нет, ramdisk.img
это полная файловая система. Вам нужно будет
Смонтируйте .img в каталог, например
mkdir /mnt/ramdisk mount ramdisk.img /mnt/ramdisk
Теперь вы должны увидеть файлы в /mnt/ramdisk. (Вам может понадобиться
-o loop
команда mount — я никогда не могу вспомнить, когда она нужна.)Создайте новый cpio-архив в формате newc из содержимого /mnt/ramdisk
cd /mnt/ramdisk find . -print |cpio -H newc -o |gzip -9 > ~/ramdisk.cpio.gz
Размонтировать/очистить
umount /mnt/ramdisk rm -rf /mnt/ramdisk
Это все спонтанно, поэтому могут быть глупые ошибки. Надеюсь, это сработает!
решение2
Вы, вероятно, хотите заменить образ initrd архивом initramfs. В исходниках ядра есть скрипт для выполнения второй части. Он находится в scripts/gen_initramfs_list.sh.
Вы можете захотеть прочитатьэтот.