Создайте образ rootfs ext4 из образа без дистрибутива для firecracker

Мне нужно использовать дистрибутив на основе Debian с firecracker, и я пытаюсь сделать что-то похожее на то, что дали документы firecracker: здесь .

Я попытался запустить этот образ без дистрибутива gcr.io/distroless/base-debian10 и установите systemd и скопируйте файлы в смонтированные rootfs следующим образом:

      for d in bin etc lib root sbin usr; do tar c "/$d" | tar x -C /my-rootfs; done
for dir in dev proc run sys var; do mkdir /my-rootfs/${dir}; done

Затем изменил вызов API, чтобы добавить аргумент загрузки init=/bin/systemd

      curl --unix-socket /tmp/firecracker.socket -i \
      -X PUT 'http://localhost/boot-source'   \
      -H 'Accept: application/json'           \
      -H 'Content-Type: application/json'     \
      -d "{
            \"kernel_image_path\": \"hello-vmlinux.bin\",
            \"boot_args\": \"init=/bin/systemd reboot=k panic=1 pci=off\"
       }"

Но у меня нет вывода, когда я запускаю виртуальную машину, и она сразу же закрывается.

Как создать загрузочные образы ext4 с использованием минимальных образов без дистрибутива debian?

1 ответ

Я считаю, что образ, который вы используете, не имеет демона systemd. Если это так, Firecracker попытается запустить демон systemd при запуске (с учетом init=/bin/systemdопция ядра) и завершатся ошибкой, так как такого файла в файловой системе нет. Вы можете просто проверить, является ли /bin/systemdдоступен в вашей файловой системе.

Другие вопросы по тегам