Ubuntu系统root用户无法在FAT分区创建符号链接问题求助
解决思路
问题根源
FAT系列文件系统(FAT32、exFAT等)不支持Linux/Unix风格的符号链接,这是文件系统本身的设计限制,和用户权限(哪怕是root)无关,所以会出现「Operation not permitted」错误。
可行解决方案
1. 更换USB分区的文件系统(推荐)
将USB的FAT分区格式化为支持符号链接的Linux原生文件系统,比如ext4:
- 先备份USB上的所有数据(格式化会清空所有内容)
- 卸载USB分区:
umount /dev/sdX1(替换sdX1为你的USB分区设备名,可通过lsblk命令查看) - 格式化为ext4:
mkfs.ext4 /dev/sdX1 - 重新挂载分区:
mount /dev/sdX1 /mnt/usb
之后就可以正常创建符号链接了。
2. 使用绑定挂载实现类似引用效果(无需格式化)
如果不想格式化USB,可以用Linux的绑定挂载功能,将源文件挂载到USB的指定路径,实现类似符号链接的访问效果:
mount --bind /path/to/source/file /mnt/usb/target-path
注意:绑定挂载是基于文件系统的挂载点,不是真正的符号链接,卸载USB后需要重新执行该命令。
3. 用文件 deduplication 工具减少重复
如果只是想减少重复文件占用的空间,可以使用rsync的增量备份功能(需USB文件系统支持硬链接,建议配合方案1使用):
# 第一次复制文件到USB rsync -a /source/dir /mnt/usb/ # 后续复制时,重复文件会创建硬链接(节省空间) rsync -a --link-dest=/mnt/usb/source/dir /new/source/dir /mnt/usb/
内容的提问来源于stack exchange,提问作者Michal D.
相关产品推荐
相关产品推荐

