Я пытаюсь извлечь образ файловой системы ext2 initrd как часть сборки Dockerfile.
Я пробовал эти подходы до сих пор:
- Монтаж в качестве петлевого устройства. Это не может быть сделано из-за разрешений. Кажется, что вы можете переопределить это с --privileged, но это можно сделать только для 'docker run', а не 'docker build'.
- libguestfs. Я не мог заставить это работать, и для его запуска требовался огромный образ Fedora.
- Извлечение с использованием 7z. К сожалению, это не сохраняет права доступа, и символические ссылки преобразуются в обычные файлы. Я не могу найти какие-либо варианты, которые бы их сохранили.
Я почти готов попытаться загрузить initrd с помощью QEMU, создать архив rootfs и скопировать его с помощью виртуальной сети, но, конечно, есть более простой способ. Я удивлен, что нет пользовательских инструментов для простого извлечения образа файловой системы.
Я мог бы вручную подготовить тарбол, используя метод обратной петли, но смысл использования Docker состоит в том, чтобы автоматизировать это.