《Ubuntu 分区 / U 盘「能读不能写」通用修复教程(临时 + 永久方案)》
=====================================
先执行这两条命令,把挂载点的权限改成你的用户,马上就能写文件了:
bash
运行
# 把挂载点的所有者改成你自己 sudo chown -R $USER:$USER /media/BATOCERA # 给读写权限 sudo chmod 777 /media/BATOCERA
执行完,直接打开文件管理器,试试往里面复制文件、新建文件夹,是不是立刻能用了?
==================================================
适用场景
所有在 Ubuntu 中出现以下问题的分区 / U 盘,不分格式、不分自动 / 手动挂载,全部通用:
- 文件管理器能看到磁盘 / 挂载点,但无法写入、新建文件 / 文件夹,提示「权限不足」
- 手动挂载的 Btrfs/ext4 分区,只能查看不能修改
- Windows 格式(NTFS/FAT32)的 U 盘,插上后只读模式
- 之前配置了永久挂载,但重启 / 拔插后又恢复无权限状态
前置准备:先找到你的挂载点和分区信息
-
找到挂载点路径
- 方法 1:文件管理器里右键你的盘 → 属性 → 位置(例:/media/BATOCERA)
- 方法 2:终端执行lsblk,看分区的MOUNTPOINTS列(例:/media/BATOCERA)
-
记录关键信息
- 挂载点路径:记为你的挂载点(例:/media/BATOCERA)
- 分区设备路径:记为/dev/sdXX(例:/dev/sdc2)
- 文件系统格式:记为你的文件系统(例:btrfs/ext4/ntfs/vfat)
第一部分:临时方案(立刻生效,重启 / 拔插后失效)
适合临时测试、偶尔用一次的场景,不用修改系统配置,执行完马上就能写文件。
方案 A:Linux 原生文件系统(ext4/Btrfs 通用)
这类格式支持 Linux 原生权限,直接修改挂载点的所有者即可:
bash
运行
# 把挂载点的所有者改成你当前用户(立刻生效) sudo chown -R $USER:$USER 你的挂载点 # (可选)给所有用户开放读写权限(彻底放开) sudo chmod 777 你的挂载点
执行完直接往盘里复制文件,立刻就能写。
方案 B:Windows 文件系统(NTFS/FAT32 通用)
这类格式不支持 Linux 原生权限,chown无效,必须重新挂载并指定用户权限:
bash
运行
# 重新挂载分区,指定当前用户ID(立刻生效) sudo mount -o remount,uid=1000,gid=1000 你的挂载点
说明:uid=1000,gid=1000是 Ubuntu 默认普通用户的 ID,直接复制即可。
第二部分:永久根治方案(重启 / 拔插都有效,一次配置永久生效)
适合固定使用的 U 盘 / 硬盘,配置后不管重启多少次、拔插多少次,都默认有读写权限,核心是修改/etc/fstab挂载配置。
步骤 1:备份系统配置(必做,兜底恢复)
防止改错配置导致开机异常:
bash
运行
sudo cp /etc/fstab /etc/fstab.bak
出错时执行sudo cp /etc/fstab.bak /etc/fstab一键恢复。
步骤 2:获取分区 UUID(永久识别,不受盘符变化影响)
bash
运行
sudo blkid /dev/sdXX
复制输出中UUID=后面的一长串字符(去掉引号),记为你的UUID。
步骤 3:编辑/etc/fstab添加权限配置
bash
运行
sudo nano /etc/fstab
拉到文件最末尾,空一行,根据你的文件系统复制对应模板,替换你的UUID和你的挂载点:
模板 1:Btrfs 格式(你主力用)
bash
运行
UUID=你的UUID 你的挂载点 btrfs defaults,noauto,x-gvfs-show,subvol=@,uid=1000,gid=1000 0 0
- 新增uid=1000,gid=1000:强制指定挂载所有者为当前用户,彻底解决无权限问题
- 其他参数保持不变,和你之前的配置兼容
模板 2:ext4 格式
bash
运行
UUID=你的UUID 你的挂载点 ext4 defaults,noauto,x-gvfs-show,uid=1000,gid=1000 0 0
模板 3:NTFS 格式
bash
运行
UUID=你的UUID 你的挂载点 ntfs-3g defaults,noauto,x-gvfs-show,uid=1000,gid=1000 0 0
模板 4:FAT32(vfat)格式
bash
运行
UUID=你的UUID 你的挂载点 vfat defaults,noauto,x-gvfs-show,uid=1000,gid=1000 0 0
步骤 4:保存退出并测试
- 按Ctrl+O→ 回车 →Ctrl+X保存退出。
-
测试配置是否正确(无报错即成功):
bash运行
sudo mount -a
- 测试读写:往盘里复制文件、新建文件夹,确认权限正常。
第三部分:常见问题与兜底方案
1. 为什么 NTFS/FAT32 用chown改了还是没权限?
因为 Windows 格式(NTFS/FAT32)不支持 Linux 原生权限模型,chown/chmod对它们无效,必须在挂载时通过uid=1000,gid=1000参数指定用户权限。
2. 挂载点不存在怎么办?
手动创建挂载点并赋予权限:
bash
运行
sudo mkdir -p 你的挂载点 sudo chown $USER:$USER 你的挂载点
3. 自动挂载的 U 盘,每次插都没权限怎么办?
修改 Ubuntu 自动挂载规则,让所有 U 盘默认给用户权限:
bash
运行
sudo nano /etc/udisks2/mount_options.conf
在文件末尾添加:
plaintext
[defaults] ntfs_defaults=uid=1000,gid=1000 vfat_defaults=uid=1000,gid=1000
保存后重启电脑,以后所有自动挂载的 U 盘都会默认有读写权限。
4.fstab改错导致开不了机怎么办?
- 开机在 GRUB 界面按e进入编辑模式
- 找到linux开头的行,把ro quiet splash改为rw init=/bin/bash
-
按Ctrl+X进入单用户模式,执行恢复命令:
bash运行
cp /etc/fstab.bak /etc/fstab reboot
极简速查版(以后直接复制)
bash
运行
# 1. 备份fstab sudo cp /etc/fstab /etc/fstab.bak # 2. 查UUID sudo blkid /dev/sdXX # 3. 编辑配置 sudo nano /etc/fstab # 4. 测试挂载 sudo mount -a # 5. 临时权限修复(ext4/Btrfs) sudo chown -R $USER:$USER 你的挂载点 # 6. 临时权限修复(NTFS/FAT32) sudo mount -o remount,uid=1000,gid=1000 你的挂载点