Windows + Ubuntu 双系统共享文件夹最稳的一套方案

📅 2026/7/8 13:18:12 👁️ 阅读次数 📝 编程学习
Windows + Ubuntu 双系统共享文件夹最稳的一套方案

双系统用久了之后,会遇到一个很现实的问题:
Windows 下有资料,Ubuntu 下也要用;Ubuntu 下载了代码包,Windows 下也想直接拿。每次靠 U 盘、微信、网盘来回传,真的很麻烦。

我这台机器是 Windows + Ubuntu 双系统,硬盘是 1TB SSD,大概分区如下:

C盘:Windows 系统盘,300G D盘:Data 数据盘,200G,NTFS Ubuntu /:约208G,ext4 Ubuntu /home:约208G,ext4 swap:约15G

最终我选择的方案是:

Windows 下:D:\Share Ubuntu 下:/mnt/winD/Share Ubuntu 快捷入口:~/Share

这样两个系统看到的是同一个文件夹。
Windows 往D:\Share里放文件,Ubuntu 在~/Share里就能看到;反过来也一样。


先说结论:为什么选 D 盘?

我没有重新分区,也没有再单独切一个 Share 分区,因为现有 D 盘已经很适合做共享盘:

D盘:200G,NTFS,剩余约190G

NTFS 是 Windows 原生文件系统,Ubuntu 也能稳定读写。
所以最简单、最安全的方案就是:直接用 D 盘建一个 Share 文件夹。

最终规划:

D:\Share\Docs 文档、PDF、笔记 D:\Share\CodePackages 代码包、SDK包、版本包 D:\Share\Installers 安装包 D:\Share\Images 镜像、截图 D:\Share\Backup 备份 D:\Share\FromUbuntu Ubuntu 临时传给 Windows 的文件

一个关键点:共享盘能不能放代码?

可以放代码包,但不建议 Ubuntu 直接在共享盘里编译。

更准确一点:

Windows 在 D 盘开发/编译:可以,没问题。 Ubuntu 在 D 盘读写资料:可以,没问题。 Ubuntu 直接在 D 盘编译 Linux 工程:不推荐。

原因也不复杂。D 盘是 NTFS,Ubuntu 自己的/home是 ext4。
Linux 编译环境更依赖 ext4 的权限、软链接、可执行属性、大小写敏感等特性。

如果把 Linux 工程直接放在 NTFS 共享盘里编译,可能遇到这些问题:

chmod +x 权限异常 软链接行为不符合预期 Git 提示一堆权限变化 CMakeCache 缓存混乱 Makefile 大小写问题 大量小文件编译速度变慢 Windows 杀毒或索引锁文件

所以我最后的习惯是:

共享盘:放代码压缩包、SDK、版本包、资料 Ubuntu 编译:复制到 /home/work 里再编译 Windows 编译:可以直接放 D:\Code_Windows 编译

比如:

D:\Share\CodePackages

Ubuntu 里复制到本地 ext4 再处理:

mkdir-p~/workcp~/Share/CodePackages ~/workcd~/worktar-xvf

mkdir -p ~/work:创建 Ubuntu 本地开发目录。cp …:把共享盘里的代码包复制到 Ubuntu 本地。cd …:进入开发目录。tar -xvf …`:解压源码包。


正式配置步骤

下面开始配置。


1. Windows 里创建共享文件夹

先进入 Windows,打开 D 盘,新建:

D:\Share

建议顺手建几个子目录:

D:\Share\Docs D:\Share\CodePackages D:\Share\Installers D:\Share\Images D:\Share\Backup D:\Share\FromUbuntu

目录尽量用英文,尤其是代码、SDK、工具包相关目录,少用中文和空格,后面跨系统会省很多事。


2. Windows 关闭快速启动

这一步非常重要。
如果 Windows 开了快速启动或休眠,Ubuntu 可能会提示 NTFS 分区被锁,只能读不能写。

管理员方式打开 PowerShell,执行:

powercfg/h off

powercfg:Windows 电源管理命令。
/h off:关闭休眠,同时也会关闭快速启动相关功能。

执行完之后,正常关机,再进入 Ubuntu。


3. Ubuntu 安装 NTFS 支持

进入 Ubuntu,打开终端:

sudoaptupdatesudoaptinstall-yntfs-3g

sudo apt update:刷新软件源列表。
sudo apt install -y ntfs-3g:安装 NTFS 读写支持。


4. 创建 D 盘挂载目录

我准备把 Windows 的 D 盘挂载到/mnt/winD

sudomkdir-p/mnt/winD

sudo:用管理员权限执行。
mkdir -p /mnt/winD:创建挂载目录,目录已存在也不会报错。


5. 手动挂载 D 盘测试

我这台电脑的 D 盘 UUID 是:

F3...

所以挂载命令是:

sudomount-tntfs-3g-ouid=1000,gid=1000,umask=022,windows_namesUUID=F3... /mnt/winD

mount:挂载磁盘分区。
-t ntfs-3g:指定用 ntfs-3g 方式挂载 NTFS。
uid=1000,gid=1000:让当前普通用户拥有读写权限。
umask=022:设置默认权限。
windows_names:禁止创建 Windows 不支持的文件名。
UUID=F3...:指定要挂载的 D 盘。
/mnt/winD:挂载到这个目录。

挂载完成后检查一下:

df-hT|grepwinD

df -hT:查看磁盘挂载情况和文件系统类型。
grep winD:只筛选包含 winD 的那一行。

再看看 D 盘内容:

ls/mnt/winD

ls /mnt/winD:查看 Windows D 盘根目录内容。

如果能看到Share,说明挂载成功。


6. 测试 Ubuntu 能不能写入 D 盘

在 Ubuntu 里创建一个测试文件:

touch/mnt/winD/Share/ubuntu_test.txt

touch:创建一个空文件。
/mnt/winD/Share/ubuntu_test.txt:这个文件实际会出现在 Windows 的D:\Share里。

查看一下:

ls-l/mnt/winD/Share

ls -l:以详细列表方式查看文件。

然后重启进 Windows,打开:

D:\Share

如果能看到ubuntu_test.txt,说明双系统共享已经打通了。


7. 创建 Ubuntu 快捷入口

每次输入/mnt/winD/Share太麻烦,可以给它做一个软链接:

ln-s/mnt/winD/Share ~/Share

ln -s:创建软链接,类似 Windows 快捷方式。
/mnt/winD/Share:真实位置。
~/Share:Ubuntu 家目录下的快捷入口。

以后在 Ubuntu 里直接访问:

cd~/Share

cd ~/Share:进入共享文件夹。

实际访问的就是:

Windows 的 D:\Share

8. 设置 Ubuntu 开机自动挂载

手动挂载成功后,再配置开机自动挂载。

先备份配置文件:

sudocp/etc/fstab /etc/fstab.bak.$(date+%F-%H%M)

cp:复制文件。
/etc/fstab:Linux 开机自动挂载配置文件。
$(date +%F-%H%M):自动生成日期时间,方便回滚。

编辑配置:

sudonano/etc/fstab

nano:终端里的文本编辑器。
/etc/fstab:系统挂载配置文件。

在文件最后加这一行:

UUID=F3... /mnt/winD ntfs-3g defaults,uid=1000,gid=1000,umask=022,windows_names,nofail,x-gvfs-show00

这行的意思是:

开机自动把 Windows D 盘挂载到 /mnt/winD 给普通用户读写权限 挂载失败也不影响 Ubuntu 启动 并且在文件管理器里显示

保存方式:

Ctrl + O Enter Ctrl + X

9. 测试自动挂载配置

先卸载刚才手动挂载的 D 盘:

sudoumount/mnt/winD

umount:卸载挂载点,不是删除文件。

然后测试 fstab 配置:

sudomount-a

mount -a:按/etc/fstab配置重新挂载所有分区。

如果没有报错,基本就稳了。

再检查:

df-hT|grepwinD

能看到/mnt/winD就说明自动挂载配置没问题。

最后测试快捷入口:

cd~/Sharels

cd ~/Share:进入共享目录。
ls:查看目录内容。


最终使用方式

以后就很简单了。

Windows 下:

D:\Share

Ubuntu 下:

~/Share

这两个位置看到的是同一份文件。


我的最终目录习惯

Windows 自己开发编译:

D:\Code_Windows D:\Work_Windows

Ubuntu 自己开发编译:

/home/work /home/project

双系统共享资料:

D:\Share

也就是:

D盘可以给 Windows 正常开发编译。 Ubuntu 不在 D 盘编译 Linux 工程。 D:\Share 只负责资料、代码包、版本包、安装包共享。

这样分工最清楚,也最不容易踩坑。


常见问题

Ubuntu 提示 D 盘只能读,不能写

大概率是 Windows 快速启动或休眠没关。

回 Windows 管理员 PowerShell 执行:

powercfg/h off

然后正常关机,不要休眠。


Ubuntu 开机后没看到 Share

先检查 D 盘是否挂载:

df-hT|grepwinD

如果没输出,手动测试:

sudomount-a

看有没有报错。


不小心 fstab 写错怎么办

因为前面做过备份,可以恢复:

sudocp/etc/fstab.bak.你的备份时间 /etc/fstab

cp:把备份文件复制回原配置。
/etc/fstab:恢复后的自动挂载配置。


最后总结

这套方案适合大多数 Windows + Ubuntu 双系统用户:

Windows D盘作为共享盘 Ubuntu 自动挂载 D盘 共享资料放 D:\Share Linux 编译仍然放 Ubuntu 自己的 ext4 分区 Windows 编译可以直接放 D盘

一句话:
共享盘负责传资料,系统盘负责跑环境,开发编译各回各家。