Вам также может быть интересно узнать, как Buildroot 2018.02 решает эту проблему.
Всякий раз, когда вы используете initramfs(BR2_TARGET_ROOTFS_INITRAMFS=y
)или initrd (BR2_TARGET_ROOTFS_CPIO=n
), он добавляет следующее /init
к вашим rootfshttps://github.com/buildroot/buildroot/blob/2018.02/fs/cpio/init
#!/bin/sh
# devtmpfs does not get automounted for initramfs
/bin/mount -t devtmpfs devtmpfs /dev
exec 0/dev/console
exec 2>/dev/console
exec /sbin/init "$@"
Копия сделанаhttps://github.com/buildroot/buildroot/blob/2018.02/fs/cpio/cpio.mk:
# devtmpfs does not get automounted when initramfs is used.
# Add a pre-init script to mount it before running init
define ROOTFS_CPIO_ADD_INIT
if [ ! -e $(TARGET_DIR)/init ]; then \
$(INSTALL) -m 0755 fs/cpio/init $(TARGET_DIR)/init; \
fi
endef
Также полезно знать, что путь инициализации /init
для initramfs, в отличие от /sbin/init
в противном случае:Что может привести к тому, что передача init=/path/to/program в ядро не запустит программу как init?
/run/user/1000/gvfs/ non-existent directory
Похоже, у вас не установлен gvfs. На каком ты дистрибутиве? Вам, вероятно, потребуется установить gvfs через менеджер пакетов.