如何检查root文件系统是否已在linux中挂载

时间:2017-03-10 15:39:28

标签: linux file kernel ubuntu-14.04

我想知道是否可以知道rootfile系统是否已从内核挂载。我试图从/ bin读取文件但它在启动时不起作用。

static int ret_my_file()位于fs/exec.c

static int ret_my_file()  
{
struct file* f;

char *dbtext;
struct path dbpath;

mm_segment_t oldfs;
struct kstat dbstat;

kern_path("/bin/myfile", 0, &dbpath);
vfs_getattr(&dbpath, &dbstat);

dbtext = vmalloc(dbstat.size*sizeof(char));
f=filp_open("/bin/myfile", O_RDONLY, 0);

oldfs=get_fs();
set_fs (KERNEL_DS);
vfs_read(f, dbtext, dbstat.size, &f->f_pos);
set_fs(oldfs);
printk(KERN_CRIT "Db value is");
printk(KERN_CRIT "%s\n",dbtext);
vfree(dbtext);
return 0;
}

do_execveat_common()中的函数fs/exec.c中调用为

static int do_execveat_common(int fd, struct filename *filename,
                           struct user_arg_ptr argv,
                           struct user_arg_ptr envp,
                          int flags)
{
 char *pathbuf = NULL;
 struct linux_binprm *bprm;
 struct file *file;
 struct files_struct *displaced;
 int retval;

 retval=ret_my_file();
 ......}

但是在启动期间调用函数do_execveat_common()所以我想在retval=ret_my_file();之前设置一个条件,以便它只在挂载根文件系统之后运行

0 个答案:

没有答案