Монтирование файловых систем при запуске VFS

Компонент VFS по умолчанию обеспечивает доступ к:

Если требуется монтировать другие файловые системы, это можно сделать как после запуска VFS, используя вызов mount(), так и непосредственно в момент запуска сущности VFS, передав ей следующие аргументы и переменные окружения:

Пример:

env.c

#include <env/env.h>

#include <stdlib.h>

int main(int argc, char** argv)

{

/* Для сущности Vfs1 будут монтированы файловые системы devfs и romfs. */

const char* Vfs1Args[] = {

"-l", "devfs /dev devfs 0",

"-l", "romfs /etc romfs 0"

};

ENV_REGISTER_ARGS("Vfs1", Vfs1Args);

/* Для сущности Vfs2 будут монтированы файловые системы, заданные через файл /etc/dhcpcd.conf, который расположен в ROMFS-хранилище. */

const char* Vfs2Args[] = { "-f", "/etc/dhcpcd.conf" };

ENV_REGISTER_ARGS("Vfs2", Vfs2Args);

/* Для сущности Vfs3 в корневой каталог будет монтирована файловая система ext2, на которой будет найден файл /etc/fstab для монтирования дополнительных файловых систем. ROMFS-хранилище будет удалено. */

const char* Vfs3Args[] = { "-f", "/etc/fstab" };

const char* Vfs3Envs[] = {

"ROOTFS=ramdisk0,0 / ext2 0",

"UNMAP_ROMFS=1"

};

ENV_REGISTER_PROGRAM_ENVIRONMENT("Vfs3", Vfs3Args, Vfs3Envs);

envServerRun();

return EXIT_SUCCESS;

}

См. также примеры net_with_separate_vfs, net2_with_separate_vfs, multi_vfs_dhcpcd, multi_vfs_dns_client и multi_vfs_ntpd в составе KasperskyOS Community Edition.

В начало