要挂载所有可用(且尚未挂载)的磁盘和文件系统/分区,可以使用
mount -a
但是,我想要挂载所有文件系统/分区的特定子集,但不是全部。例如:
mount -a /mnt/hotplugA # mount command does not support this
mount -a /mnt/hotplugB # mount command does not support this
umount -R /mnt/hotplugA # umount DOES support recursive unmounting
其中 hotplugA 和 hotplugB 是两个不同驱动器(我用于备份)的挂载点,并且还有多个额外的文件系统/分区可以挂载在顶层挂载点下方。
语义应该是 mount -a /mnt/hotplugA 应该挂载 /etc/fstab 指定在 /mnt/hotplugA 挂载的所有分区及以下,结果就是坐骑
/mnt/hotplugA
/mnt/hotplugA/fs1
/mnt/hotplugA/fs2
...
/mnt/hotplugA/fsN
基本上就是 /etc/fstab 指定的内容。现在,标准 mount 命令不支持我上面描述的功能(但 umount 知道如何实现,它支持 umount -R /path 并且将卸载包括 /path 及其以下的任何内容)。
对于上述需求有没有什么好的解决方案呢?
答案1
我找到了一个解决方案,其中包括创建和使用仅包含您要操作的文件系统的备用 /etc/fstab 文件:
grep PATTERN /etc/fstab >! /tmp/fstab.$$; mount -a --fstab /tmp/fstab.$$
grep /mnt/hotplugA /etc/fstab >! /tmp/fstab.$$; mount -a --fstab /tmp/fstab.$$
已经测试并正常运行。