Я пытаюсь смонтировать файловую систему ext4 в / mnt в mount_dir, который является временным каталогом, который я создал, используя mkdtemp (2) с MS_SHARED, а затем перемонтировать с помощью MS_PRIVATE. Идея заключается в создании пространства имен монтирования из файловой системы / mnt и предотвращение любых событий распространения из пространства имен в исходную файловую систему.
Я пробовал разные комбинации флагов и только MS_BIND | MS_PRIVATE работает, но события, похоже, все еще распространяются в исходную файловую систему.
fprintf(stderr,"-->Mounting file system from base image...");
if(mount("/mnt", mount_dir, NULL, MS_SHARED , NULL)){
fprintf(stderr, "%s Failed..%m\n",mount_dir);
return -1;
}else{
fprintf(stderr,"Success\n");
}
fprintf(stderr,"-->Remounting mount point as MS_PRIVATE...");
if(mount(NULL, mount_dir, NULL, MS_REMOUNT | MS_PRIVATE, NULL)){
fprintf(stderr,"Failed..%m\n");
return -1;
}else{
fprintf(stderr, "Success.\n");
}