正常情况下,使用 mount 挂载的位置重启之后就失效了,因此一些固定的挂载点需要写入 /etc/fstab 文件,实现开机自动挂载。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during curtin installation
#/dev/disk/by-uuid/b986dc3b-6b82-44d5-acb8-6cbad5e357d5 / ext4 defaults 0 0
UUID=b986dc3b-6b82-44d5-acb8-6cbad5e357d5 / ext4 defaults 0 0
https://dav.jianguoyun.com/dav/public /mnt/public davfs rw,uid=1000,gid=1000 0 0

fstab 中每一行是一个挂载点,使用空格或 TAB 分隔列,其中各列的含义如下:

列名 file system mount point type options dump pass
含义 文件系统,支持硬盘、虚拟文件等 本地挂载点目录,必须存在 文件系统格式 额外选项 是否进行备份 是否以fsck检验扇区
示例 /dev/vdb 或 UUID=ABC 或WebDAV地址 /mnt/abc 或 / 等 ext4 或 davfs 等 defaults 0 或 1 0 或 1 或 2

参考:配置启动挂载:fstab文件详解 - 走看看 (zoukankan.com)

挂载硬盘

首先执行 blkid 查看硬盘的 id,一般来说,挂载硬盘时,应使用硬盘的 UUID 进行挂载,以下是几个实例:

1
2
3
$ blkid
/dev/sr0: UUID="2021-10-07-17-25-53-00" LABEL="config-2" TYPE="iso9660"
/dev/vda2: UUID="b986dc3b-6b82-44d5-acb8-6cbad5e357d5" TYPE="ext4" PARTUUID="712793b8-3979-4596-a672-a7b0e0ca229e"

我们把 /dev/vda2 挂载到根目录,则 fstab 文件就这样写:

1
UUID=b986dc3b-6b82-44d5-acb8-6cbad5e357d5 / ext4 defaults 0 0

其中 UUID= 后面的一串就是我们执行 blkid 之后显示的 UUID,紧接着的 / 表示挂载到根目录,ext4 是文件系统格式,即执行 blkid 之后显示的 TYPE,defaults 是最常用的选项,最后两个一般都是 0。

挂载 WebDAV

这是今天要说的重点,以前的文章也说过了如何使用 davfs2 挂载坚果云,现在再进行一个集中描述。

1
2
3
# 安装 davfs2
$ sudo yum install davfs2
$ sudo vim /etc/davfs2/davfs2.conf

打开配置文件之后,在命令模式(默认)下输入 /ignore 进行搜索,搜到一行 # ignore_dav_header 0

将其改为 ignore_dav_header 1 (即去掉注释,将 0 改为 1)

这是因为坚果云的 WebDAV 服务器不支持 Class 1,修改之后可以使 davfs 跳过 Class 1 的验证,之后再进行挂载就不会有问题了。建议使用之前到坚果云网站,登录后点击[用户名]→账户信息→安全选项,在第三方应用管理中添加一个 davfs 专用的授权,使用时使用自动生成的应用密码进行登录。

假设我们要将坚果云中的 public 目录,挂载到 /mnt/public 中,则进行以下操作:

1
2
3
4
5
$ sudo mkdir /mnt/public
# 执行 id 可以显示出用户 id 和组 id,用于接下来挂载目录的权限设置
$ id
uid=1000(username) gid=1000(username) groups=1000(username),0(root)
$ sudo mount -t davfs -o rw,uid=1000,gid=1000 https://dav.jianguoyun.com/dav/public /mnt/public

接下来输入坚果云的账号和上述生成的应用密码就可以挂载成功了。这样,在命令行中成功挂载之后,再编辑 /etc/fstab 文件:

1
https://dav.jianguoyun.com/dav/public /mnt/public davfs rw,uid=1000,gid=1000 0 0

就可以实现开机自动挂载了(不需要再输入用户名和密码)

虚拟机共享文件夹挂载(Oracle VirtualBox)

首先需要在 VirtualBox 中进行设置,右键虚拟机,然后设置->共享文件夹,点击右边的加号新建一个共享文件夹

shared folder

弹窗中,共享文件夹路径选择主机的文件夹,名称随便起,为了方便最好用英文,挂载点不用写,勾选固定分配

image-20231021102354217

之后在 Linux 中手动挂载测试一下,命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
┌──(kali㉿kali)-[~]
└─$ mkdir share

┌──(kali㉿kali)-[~]
└─$ sudo mount -t vboxsf fx ./share

┌──(kali㉿kali)-[~]
└─$ cd share                      
                                                                             
┌──(kali㉿kali)-[~/share]
└─$ ls

要是能正常显示内容,说明确实可以挂载,然后编辑 fstab 文件:

1
2
┌──(kali㉿kali)-[~/share]
└─$ sudo vim /etc/fstab

在最下面新增一行,内容:

1
fx /home/kali/share vboxsf defaults 0 0

这样就实现了自动挂载虚拟机共享文件夹