如何将一个文件挂载到另一个文件上

Nec*_*twi 6 mount

我正在尝试安装/boot/config-4.14.90-v8/usr/src/linux/.config. 我试过了:

rpi-4.14.y:linux Necktwi$ sudo mount -o loop,ro -t vfat /boot/config-4.14.90-v8-g6d68e517b3ec /usr/src/linux/.config
mount: /usr/src/linux/.config: cannot mount /dev/loop0 read-only.
Run Code Online (Sandbox Code Playgroud)

注意错误cannot mount /dev/loop0 read-only

rootfsis btrfs
/bootis vfat
/usr/srcis nfs(我安装了远程服务器的/usr/src)


我试过了,mount --bind但失败了。

rpi-4.14.y:linux Necktwi$ sudo mount --bind /boot/config-4.14.90-v8-g6d68e517b3ec /usr/src/linux/.config
mount: /usr/src/linux/.config: bind /boot/config-4.14.90-v8-g6d68e517b3ec failed.
Run Code Online (Sandbox Code Playgroud)

fil*_*den 16

如果您想挂载单个文件,以便在挂载点上看到该文件的内容,那么您需要的是bind mount

您可以使用以下命令完成此操作:

# mount --bind /boot/config-4.14.90-v8 /usr/src/linux/.config
Run Code Online (Sandbox Code Playgroud)

您可以使用-o ro使其在/usr/src/linux/.config路径上只读。

有关更多详细信息,请在mount(8)的手册页中查找绑定安装。


循环设备做一些类似但不同的事情。他们将存储在常规文件中的文件系统挂载到另一个目录中。

所以,如果你有一个VFAT或EXT4文件系统等存储到一个文件,说/vol/myfs.img,然后你可以将其安装到一个目录,比方说/mnt/myfs,使用下面的命令:

# mount -o loop /vol/myfs.img /mnt/myfs
Run Code Online (Sandbox Code Playgroud)

您可以通过它-t vfat等来强制文件系统类型。

请注意,-o loop通常不需要 ,因为它mount会通过您尝试挂载文件来计算出来,并且会自动为您完成。

此外,使用-o loop(或自动检测到)挂载文件是将该文件映射到/dev/loopX设备的快捷方式,您也可以使用losetup,然后运行挂载命令,例如mount /dev/loop0 /mnt/myfs. 有关循环设备的详细信息,请参阅lossup(8)的手册页。

  • 不错,没想到可以`bind-mount`文件。 (4认同)