Debian开机自动挂载ntfs分区

224 阅读4分钟

文章首发于个人博客

背景

由于是windebian双系统,并且需要在两个系统间共享使用资料分区,因此数据分区采用的是ntfs格式。虽说xfce桌面环境挂载ntfs分区不算麻烦(点下鼠标,再输个密码),但还是希望开机时就能自动挂载。

解决方案

以需要把win下的D:盘挂载到/mnt/d下为例进行说明。

准备工作

  1. 安装ntfs-3g驱动,已安装则忽略(桌面环境可挂载则证明已有驱动)
sudo apt update && sudo apt install ntfs-3g
  1. 查看待挂载的ntfs分区的设备名称UUID
lsblk -f # 假设设备名为 /dev/sda3,UUID 为 ABCDFE
  1. 手动创建挂载点
sudo mkdir /mnt/d
  1. 查看当前用户的uidgid
id # 一般第一个非root的用户的 uid 和 gid 均为 1000

修改配置

  1. 编辑/etc/fstab
sudo vi /etc/fstab
  1. 添加如下内容并保存
UUID=ABCDFE /mnt/d ntfs-3g defaults,uid=1000,gid=1000,dmask=022,fmask=133,noatime,windows_names 0 0
  1. 重启

配置详解

<file system> <mount point> <type> <options> <dump> <pass>
  1. <file system>要挂载的设备,常见格式如下:
格式示例说明
设备路径/dev/sda1直接指定分区(不推荐,设备名可能变化)
UUIDUUID=1234-5678唯一标识符(推荐,通过 blkid 或 lsblk -f 查看)
卷标LABEL=Data文件系统卷标(需提前用 e2label 等工具设置)
网络路径nas:/shareNFS/Samba 等网络共享路径
  1. <mount point>挂载点,必须是已存在的空目录,一般在/mnt

  2. <type>文件系统类型,必须与分区实际类型一致,常见类型如下:

类型说明
ext4Linux 原生文件系统
ntfs / ntfs-3gWindows NTFS 分区(需安装 ntfs-3g)
vfatFAT32/exFAT 分区
swap交换分区
nfs / cifs网络文件系统
  1. <options>挂载选项,控制挂载后的权限、性能和行为,详见<options>详解

  2. <dump>备份标志,已废弃

说明
0不备份(默认)
1需要备份(极少使用)
  1. <pass>文件系统检查顺序,控制fsck在启动时的检查顺序
说明适用场景
0不检查NTFS/FAT/swap 等非 Linux 分区
1优先检查根分区 /
2次级检查其他 Linux 分区(如 /home)

<options>详解

是一个以逗号分隔的列表(两个及以上时)。

挂载行为

选项作用示例说明
defaults启用默认选项defaults等价于 rw,suid,dev,exec,auto,nouser,async
rw / ro读写 / 只读ro只读挂载(保护数据)
exec / noexec允许 / 禁止执行文件noexec增强安全性(如数据分区)
suid / nosuid允许 / 禁用 SUID/SGIDnosuid防止提权攻击
dev / nodev是否允许挂载设备文件nodev防止访问设备(如 /dev/sda1)
auto / noauto是否开机自动挂载noauto手动挂载(如临时分区)
user / nouser是否允许普通用户挂载user允许非 root 用户挂载

权限控制

选项作用示例说明
uid设置文件所有者uid=1000指定用户 ID(id -u 查看)
gid设置文件所属组gid=1000指定组 ID(id -g 查看)
dmask目录权限掩码dmask=022目录权限 = 777 - dmask(如 755)
fmask文件权限掩码fmask=133文件权限 = 666 - fmask(如 644)
umask统一权限掩码umask=000同时控制文件和目录权限(不推荐)

性能与可靠性

选项作用示例说明
async / sync异步/同步写入sync同步写入更安全,但性能差
atime / noatime更新访问时间noatime减少磁盘写入(推荐)
relatime相对访问时间relatime平衡性能与兼容性
errors=remount-ro错误时只读挂载errors=remount-ro防止数据损坏

文件系统特定选项

NTFS/FAT 专用
选项作用示例说明
windows_names禁止非法文件名windows_names避免创建 *?<> 等 Windows 非法字符
utf8强制 UTF-8 编码utf8正确显示非 ASCII 文件名
shortname=mixed处理短文件名shortname=mixed兼容旧版 Windows 系统
ext4 专用
选项作用示例说明
journal / nojournal启用/禁用日志nojournal禁用日志(提升性能,但风险高)
discard启用 TRIMdiscard优化 SSD 性能
data=writeback日志模式data=writeback性能优先(默认 data=ordered)
swap 分区
选项系统说明
swOpenBSD等BSD必要的,用于标记交换分区
swLinux只是一个占位符