Создайте образ 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
доступен в вашей файловой системе.