前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux中文件系统注册及mount过程分析3

Linux中文件系统注册及mount过程分析3

作者头像
用户3765803
发布2019-03-05 10:02:44
1K0
发布2019-03-05 10:02:44
举报
文章被收录于专栏:悟空被FFmpeg玩悟空被FFmpeg玩

mount命令要在应用程序里面做很多

[root@T-bagwell ~]# strace mount -t ext4 /dev/sdc1 /mntexecve("/bin/mount", ["mount", "-t", "ext4", "/dev/sdc1", "/mnt"], [/* 26 vars */]) = 0brk(0) = 0xb894c000……stat64("/sbin/mount.ext4", 0xbf90a8b8) = -1 ENOENT (No such file ordirectory)*********************************关键是这里****************************************mount("/dev/sdc1", "/mnt", "ext4", MS_MGC_VAL, NULL) = 0readlink("/dev", 0xbf90995b, 4096) = -1 EINVAL (Invalid argument)……rt_sigprocmask(SIG_UNBLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0exit_group(0) = ?[root@T-bagwell ~]# strace mount -t ext4 -o remount /dev/sdc1 /mntexecve("/bin/mount", ["mount", "-t", "ext4", "-o", "remount", "/dev/sdc1","/mnt"], [/* 26 vars */]) = 0brk(0) = 0xb7dee000mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =0xb7730000……readlink("/dev", 0xbf9fc3ab, 4096) = -1 EINVAL (Invalid argument)readlink("/dev/sdc1", 0xbf9fc3ab, 4096) = -1 EINVAL (Invalid argument)stat64("/sbin/mount.ext4", 0xbf9fd148) = -1 ENOENT (No such file ordirectory)rt_sigprocmask(SIG_BLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0stat64("/sbin/mount.ext4", 0xbf9fd108) = -1 ENOENT (No such file ordirectory)*********************************关键是这里**********因为是-o remount,所以这里多了一个MS_REMOUNT******************************mount("/dev/sdc1", "/mnt", 0xb7def0d8, MS_MGC_VAL|MS_REMOUNT, NULL) = 0readlink("/dev", 0xbf9fc1ab, 4096) = -1 EINVAL (Invalid argument)……rt_sigprocmask(SIG_UNBLOCK, ~[TRAP SEGV RTMIN RT_1], NULL, 8) = 0exit_group(0)

只说挂载就可以了,remount先忽略,do_new_mount

1669 /*1670 * create a new mount for userspace and request it to be added into the1671 * namespace's tree1672 */1673 static int do_new_mount(struct path *path, char *type, int flags,1674 int mnt_flags, char *name, void *data)1675 {1676 struct vfsmount *mnt;16771678 if (!type)1679 return -EINVAL;16801681 /* we need capabilities... */1682 if (!capable(CAP_SYS_ADMIN))1683 return -EPERM;16841685 lock_kernel();1686 mnt = do_kern_mount(type, flags, name, data);1687 unlock_kernel();1688 if (IS_ERR(mnt))1689 return PTR_ERR(mnt);16901691 return do_add_mount(mnt, path, mnt_flags, NULL);1692 }

里面有两个和mount有关的操作一个是do_kern_mount,一个是 do_add_mount,一个是做mount挂载,一个是将mount挂载的fs添加到mount的列表里

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2010-08-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档