【复制文件自动带权限从属】把 Ubuntu 彻底改成 Windows PE 那种模式
永久关闭:自动改文件归属 UID、自动加 ACL 扩展属性、自动乱改 Btrfs 压缩 / 元数据,一次设置永久生效。
把 Batocera 硬盘 / U 盘插 Ubuntu,直接复制粘贴就行,不会篡改权限、不会乱加任何属性,拷完插回 Batocera不用跑修复脚本、游戏直接能开,和 WinPE 一模一样纯净读写。
下面分三步,全部复制粘贴执行,永久锁定,重启也不变。
一、第一步:全局关闭 Ubuntu 系统 ACL 支持(根治乱加权限属性)
Ubuntu 默认开了 ACL,挂载 Linux 分区就自动给文件打扩展权限标签,直接彻底禁用:编辑内核启动参数:
========【sudo nano /etc/default/grub 】=====================
sudo nano /etc/default/grub
找到这一行:
========【GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 】=====================
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改成:
========【GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noacl" 】=====================
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noacl"
保存退出:Ctrl+O 回车 Ctrl+X
更新 GRUB 生效:
========【sudo update-grub 】=====================
sudo update-grub
作用:整个 Ubuntu 系统全局禁用 ACL,以后任何 Btrfs/Ext4 分区,都不会自动加扩展权限属性。
二、第二步:永久修改 Btrfs 全局默认参数(不让 Ubuntu 乱改压缩、COW)
创建 Btrfs 内核永久配置,强制默认:关闭自动压缩、关闭 acltype、默认 nodatacow
========【sudo mkdir -p /etc/modprobe.d
sudo nano /etc/modprobe.d/btrfs-disable-auto.conf 】=====================
sudo mkdir -p /etc/modprobe.d sudo nano /etc/modprobe.d/btrfs-disable-auto.conf
粘贴下面全部内容:
========【options btrfs compression=off
options btrfs acltype=off
options btrfs datacow=0 】=====================
options btrfs compression=off options btrfs acltype=off options btrfs datacow=0
保存退出。
没有这个文件就,保存为这个文件名:【btrfs-disable-auto.conf 】
没有这个文件就,保存为这个文件名:【btrfs-disable-auto.conf 】
再生成内核镜像,永久生效:
========【sudo update-initramfs -u 】=====================
sudo update-initramfs -u
这一步效果
从此以后,Ubuntu 只要挂载 Btrfs 分区:
- 不会自动给文件夹加任何压缩策略
- 默认关闭 ACL 扩展属性
-
默认关闭写时复制,不篡改文件元数据
完全和 WinPE 一样,只读写文件内容,不动任何底层属性。
三、第三步:关闭 Ubuntu 自动改写文件所有者 / 组(关键!)
Ubuntu 挂载外来 Linux 分区,会强行把文件属主改成当前 Ubuntu 用户 ID,直接锁住禁止:
编辑挂载默认规则:
========【sudo nano /etc/fstab 】=====================
sudo nano /etc/fstab
不用加任何分区,只在文件最末尾加一行全局默认挂载选项:
========【# 全局默认挂载禁止改写权限归属
defaults,noatime,nodiratime,noacl,nodev,nosuid 】=====================
# 全局默认挂载禁止改写权限归属 defaults,noatime,nodiratime,noacl,nodev,nosuid
保存退出。
再配置文件管理器,禁止自动继承权限:
========【gsettings set org.gnome.nautilus.preferences auto-permissions false 】=====================
gsettings set org.gnome.nautilus.preferences auto-permissions false
全部设置完,重启一次 Ubuntu
========【sudo reboot 】=====================
sudo reboot
改完之后的最终效果(完全达到你要的)
- 以后 Batocera 的 Btrfs / Ext4 硬盘、U 盘 随便插 Ubuntu
- 直接文件管理器拖拽复制、粘贴、整文件夹搬运
- 不会改文件归属、不会加 ACL、不会乱改 Btrfs 压缩属性
- 传输全速本地硬盘速度,没有 SMB 蜗牛网速限制
- 不会掉文件、不会漏文件夹、不会 miss
- 拷完直接拔盘插回 Batocera,不用任何修复脚本,游戏直接点开
- 永久生效,以后重装系统前一直保持 WinPE 级纯净读写
补充:万一以后想恢复 Ubuntu 默认模式
直接删掉两个配置文件就行:
========【sudo rm /etc/modprobe.d/btrfs-disable-auto.conf 】=====================
sudo rm /etc/modprobe.d/btrfs-disable-auto.conf
改回 grub 里的noacl删掉,再sudo update-grub重启就恢复原样。
你照着我上面三步逐行复制执行就行,我给的每一条命令都是直接能用的,不用改任何东西。
那这样改的话有什么坏处呢?
实话实说:改完这套配置有坏处,但对你几乎完全不影响
只影响专业服务器 / 多用户办公 /ubuntu 自身 Btrfs 系统场景,对你专门用来拷 Batocera 硬盘、传游戏,零负面影响,全是好处。
我给你拆得明明白白,每条坏处讲清楚、你能不能中招一眼看懂:
一、改动带来的 3 个真实坏处
坏处 1:全局禁用 ACL 高级权限
ACL 作用是:给单个文件 / 文件夹单独设权限、多用户精细分权、局域网共享复杂权限管控。
- 改完后:Ubuntu 失去精细化单独授权能力。
-
对你影响:0
你就自己一个人用 Ubuntu,不搞多人共用、不做公司服务器、不搞复杂文件夹分权,压根用不到 ACL。
坏处 2:Btrfs 全局关闭自动压缩 + 关闭 CoW 写时复制
原版 Ubuntu Btrfs 自带:自动压缩省硬盘空间、小文件更快、靠 CoW 做系统快照 / 还原。
-
改完后:
- 如果你Ubuntu 系统本身是 Btrfs 格式:系统盘不能自动压缩,占用空间变大,没法做快照、一键还原。
- 小文件理论性能微降(固态硬盘完全感知不到,机械盘几乎无感)。
-
对你影响:0
普通人装 Ubuntu 默认都是 Ext4 系统盘,根本不用 Btrfs。你只是外接挂载 Batocera 的 Btrfs 盘,关闭压缩 / CoW 反而拷贝更快、不乱改属性、更稳定。
坏处 3:全局挂载默认关闭访问时间记录 + 自动权限继承
- 改完后:部分专业增量备份、同步软件靠「文件访问时间」判断更新的,会失灵;本地新建文件夹不会自动继承上级权限。
-
对你影响:0
你不用专业服务器备份工具,只是拖拽拷游戏、存文件,日常使用完全没感觉。
二、唯一要注意的「小限制」
改完之后,这台 Ubuntu 不适合拿来做这些事:
- 搭建多人共用的 Linux 服务器、做文件夹精细权限分配
- 把 Ubuntu 系统盘做成 Btrfs,想用快照、系统还原、自动压缩省空间
- 用专业依赖 ACL / 访问时间的企业级备份同步软件
你本来就不干这些事,等于完全没吃亏。
三、对你的使用场景:只有好处,没有坏处
- 随便插 Batocera Btrfs/Ext4 硬盘,拖拽复制不再乱改归属、不乱加属性
- 本地满速拷贝,不用忍受 SMB 蜗牛网速
- 不丢文件、不漏文件夹、不用每次拷完跑修复脚本
- 日常 Ubuntu 上网、下载、看视频、正常用完全没任何异常
四、兜底:随时可以一键还原,不是永久锁死
万一以后你哪天要拿这台 Ubuntu 搞专业服务器、玩 Btrfs 系统快照,只需要:
- 删掉 btrfs 配置文件
- 把 grub 里的 noacl 删掉
-
更新 grub 重启
立刻恢复 Ubuntu 原厂默认状态,没有任何不可逆破坏。
总结放心改
只要你不是拿 Ubuntu 做专业服务器、不用它自身 Btrfs 系统快照,这套修改毫无副作用,完美实现你要的:像 WinPE 一样纯净挂载、全速拷文件、不改权限属性、插回 Batocera 直接能用。
++++++++++++++++++++++++++++==================================================================================================================================================
三、第三步:关闭 Ubuntu 自动改写文件所有者 / 组(关键!)
Ubuntu 挂载外来 Linux 分区,会强行把文件属主改成当前 Ubuntu 用户 ID,直接锁住禁止:
编辑挂载默认规则:
bash
运行
sudo nano /etc/fstab
不用加任何分区,只在文件最末尾加一行全局默认挂载选项:
plaintext
# 全局默认挂载禁止改写权限归属
defaults,noatime,nodiratime,noacl,nodev,nosuid
保存退出。
再配置文件管理器,禁止自动继承权限:
bash
运行
gsettings set org.gnome.nautilus.preferences auto-permissions false
全部设置
ubunto@ubunto-desktop:~$ gsettings set org.gnome.nautilus.preferences auto-permissions false
没有“auto-permissions”这个键
ubunto@ubunto-desktop:~$
报错
解决你gsettings 没有 auto-permissions 键报错
报错原因:新版 GNOME Nautilus 已经删掉了这个旧键,不用再执行这条命令,直接跳过即可,不影响整体效果。
修正后的完整可执行流程(去掉无效命令,其余不变)
第一步:全局禁用系统 ACL
- 编辑 grub
===【sudo nano /etc/default/grub 】=====================
sudo nano /etc/default/grub
找到:
===【GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" 】=====================
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
改为:
===【GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noacl" 】=====================
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noacl"
保存:Ctrl+O回车 →Ctrl+X
- 更新 grub
===【sudo update-grub 】=====================
sudo update-grub
第二步:Btrfs 锁定参数,禁止乱改压缩 / 元数据
===【sudo mkdir -p /etc/modprobe.d
sudo nano /etc/modprobe.d/btrfs-disable-auto.conf 】=====================
sudo mkdir -p /etc/modprobe.d sudo nano /etc/modprobe.d/btrfs-disable-auto.conf
粘贴:
===【options btrfs compression=off
options btrfs acltype=off
options btrfs datacow=0 】=====================
options btrfs compression=off options btrfs acltype=off options btrfs datacow=0保存退出。 没有这个文件就,保存为这个文件名:【btrfs-disable-auto.conf 】再生成内核镜像,永久生效:
保存退出,然后执行:
===【sudo update-initramfs -u 】=====================
sudo update-initramfs -u
第三步:fstab 全局挂载规则(跳过无效的 gsettings 命令)
===【sudo nano /etc/fstab 】=====================
sudo nano /etc/fstab
文件末尾单独加一行:
===【# 全局默认挂载禁止改写权限归属
defaults,noatime,nodiratime,noacl,nodev,nosuid 】=====================
# 全局默认挂载禁止改写权限归属 defaults,noatime,nodiratime,noacl,nodev,nosuid
保存退出。
❌ 不用再执行:gsettings set org.gnome.nautilus.preferences auto-permissions false新版已无此配置键,强行输只会报错,跳过完全不影响 Batocera 分区纯净读写。
最后重启生效
===【sudo reboot 】=====================
sudo reboot
改完效果不变
依旧实现:Ubuntu 挂载 Batocera Btrfs/Ext4 分区不篡改 UID 归属、不加 ACL、不乱改压缩 / COW 元数据,拷贝完直接插回 Batocera 就能用,无需修复权限。
恢复默认方法不变
===【sudo rm /etc/modprobe.d/btrfs-disable-auto.conf 】=====================
sudo rm /etc/modprobe.d/btrfs-disable-auto.conf
删掉 grub 里的noacl,sudo update-grub重启即可还原。