Ale*_*xel -1 bash mount chrome-os
下面的命令,它用于在用户的主目录中生成可执行文件
mount -i -o remount,exec /home/chronos/user
Run Code Online (Sandbox Code Playgroud)
-o参数是针对选项的,在本例中重新安装并在用户主目录中生成可执行文件。-i, --internal-only
不调用 /sbin/mount.filesystem 帮助程序,即使它存在。
为什么不调用 sbin/mount 文件系统?
一些文件系统(通常是用FUSE实现的)有特殊的挂载程序/sbin,例如 NTFS FUSE 驱动程序 ntfs-3g 有它自己的mount.ntfs-3g。如果不使用-i该选项,则在挂载文件系统时将通过命令调用此程序,mount而不是调用挂载系统调用。
所以对于 NTFS 你可以这样做
$ sudo mount /dev/vdb2 /mnt/test -i
Run Code Online (Sandbox Code Playgroud)
强制内核 NTFS 驱动程序
$ mount | grep vdb2
/dev/vdb2 on /mnt/test type ntfs (ro,relatime,uid=0,gid=0,fmask=0177,dmask=077,nls=utf8,errors=continue,mft_zone_multiplier=1
Run Code Online (Sandbox Code Playgroud)
看到这里的类型是ntfs,文件系统被挂载为只读(ro),因为内核驱动程序不支持读写。
与默认情况相比,没有-i哪个将使用mount.ntfs-3g哪个使用FUSE驱动程序
$ sudo mount /dev/vdb2 /mnt/test
$ mount | grep vdb2
/dev/vdb2 on /mnt/test type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096)
Run Code Online (Sandbox Code Playgroud)
现在类型是fuseblk(因为 NTFS-3G 是 FUSE 驱动程序)并且文件系统以读写方式挂载。
您还可以使用LIBMOUNT_DEBUG=all环境变量来获取mount.
如果没有-i它调用/sbin/mount.ntfs助手:
2124: libmount: CXT: [0x5584880d2a50]: mount: do mount
2124: libmount: CXT: [0x5584880d2a50]: mount: executing helper /sbin/mount.ntfs
2124: libmount: CXT: [0x5584880d2a50]: mount: generate helper mount options
2125: libmount: CXT: [0x5584880d2a50]: argv[0] = "/sbin/mount.ntfs"
2125: libmount: CXT: [0x5584880d2a50]: argv[1] = "/dev/vdb2"
2125: libmount: CXT: [0x5584880d2a50]: argv[2] = "/mnt/test"
2125: libmount: CXT: [0x5584880d2a50]: argv[3] = "-o"
2125: libmount: CXT: [0x5584880d2a50]: argv[4] = "rw"
2124: libmount: CXT: [0x5584880d2a50]: /sbin/mount.ntfs executed [status=0, rc=0]
Run Code Online (Sandbox Code Playgroud)
它只-i调用 mount 系统调用:
2119: libmount: CXT: [0x559aa1a8ba50]: mount: do mount
2119: libmount: CXT: [0x559aa1a8ba50]: mount(2) [source=/dev/vdb2, target=/mnt/test, type=ntfs, mountflags=0x00000000, mountdata=<none>]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |