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

发布时间:2026/7/8 12:55:01

Windows + Ubuntu 双系统共享文件夹最稳的一套方案 双系统用久了之后会遇到一个很现实的问题Windows 下有资料Ubuntu 下也要用Ubuntu 下载了代码包Windows 下也想直接拿。每次靠 U 盘、微信、网盘来回传真的很麻烦。我这台机器是 Windows Ubuntu 双系统硬盘是 1TB SSD大概分区如下C盘Windows 系统盘300G D盘Data 数据盘200GNTFS Ubuntu /约208Gext4 Ubuntu /home约208Gext4 swap约15G最终我选择的方案是Windows 下D:\Share Ubuntu 下/mnt/winD/Share Ubuntu 快捷入口~/Share这样两个系统看到的是同一个文件夹。Windows 往D:\Share里放文件Ubuntu 在~/Share里就能看到反过来也一样。先说结论为什么选 D 盘我没有重新分区也没有再单独切一个 Share 分区因为现有 D 盘已经很适合做共享盘D盘200GNTFS剩余约190GNTFS 是 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 盘是 NTFSUbuntu 自己的/home是 ext4。Linux 编译环境更依赖 ext4 的权限、软链接、可执行属性、大小写敏感等特性。如果把 Linux 工程直接放在 NTFS 共享盘里编译可能遇到这些问题chmod x 权限异常 软链接行为不符合预期 Git 提示一堆权限变化 CMakeCache 缓存混乱 Makefile 大小写问题 大量小文件编译速度变慢 Windows 杀毒或索引锁文件所以我最后的习惯是共享盘放代码压缩包、SDK、版本包、资料 Ubuntu 编译复制到 /home/work 里再编译 Windows 编译可以直接放 D:\Code_Windows 编译比如D:\Share\CodePackagesUbuntu 里复制到本地 ext4 再处理mkdir-p~/workcp~/Share/CodePackages ~/workcd~/worktar-xvfmkdir -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 offpowercfgWindows 电源管理命令。/h off关闭休眠同时也会关闭快速启动相关功能。执行完之后正常关机再进入 Ubuntu。3. Ubuntu 安装 NTFS 支持进入 Ubuntu打开终端sudoaptupdatesudoaptinstall-yntfs-3gsudo apt update刷新软件源列表。sudo apt install -y ntfs-3g安装 NTFS 读写支持。4. 创建 D 盘挂载目录我准备把 Windows 的 D 盘挂载到/mnt/winDsudomkdir-p/mnt/winDsudo用管理员权限执行。mkdir -p /mnt/winD创建挂载目录目录已存在也不会报错。5. 手动挂载 D 盘测试我这台电脑的 D 盘 UUID 是F3...所以挂载命令是sudomount-tntfs-3g-ouid1000,gid1000,umask022,windows_namesUUIDF3... /mnt/winDmount挂载磁盘分区。-t ntfs-3g指定用 ntfs-3g 方式挂载 NTFS。uid1000,gid1000让当前普通用户拥有读写权限。umask022设置默认权限。windows_names禁止创建 Windows 不支持的文件名。UUIDF3...指定要挂载的 D 盘。/mnt/winD挂载到这个目录。挂载完成后检查一下df-hT|grepwinDdf -hT查看磁盘挂载情况和文件系统类型。grep winD只筛选包含 winD 的那一行。再看看 D 盘内容ls/mnt/winDls /mnt/winD查看 Windows D 盘根目录内容。如果能看到Share说明挂载成功。6. 测试 Ubuntu 能不能写入 D 盘在 Ubuntu 里创建一个测试文件touch/mnt/winD/Share/ubuntu_test.txttouch创建一个空文件。/mnt/winD/Share/ubuntu_test.txt这个文件实际会出现在 Windows 的D:\Share里。查看一下ls-l/mnt/winD/Sharels -l以详细列表方式查看文件。然后重启进 Windows打开D:\Share如果能看到ubuntu_test.txt说明双系统共享已经打通了。7. 创建 Ubuntu 快捷入口每次输入/mnt/winD/Share太麻烦可以给它做一个软链接ln-s/mnt/winD/Share ~/Shareln -s创建软链接类似 Windows 快捷方式。/mnt/winD/Share真实位置。~/ShareUbuntu 家目录下的快捷入口。以后在 Ubuntu 里直接访问cd~/Sharecd ~/Share进入共享文件夹。实际访问的就是Windows 的 D:\Share8. 设置 Ubuntu 开机自动挂载手动挂载成功后再配置开机自动挂载。先备份配置文件sudocp/etc/fstab /etc/fstab.bak.$(date%F-%H%M)cp复制文件。/etc/fstabLinux 开机自动挂载配置文件。$(date %F-%H%M)自动生成日期时间方便回滚。编辑配置sudonano/etc/fstabnano终端里的文本编辑器。/etc/fstab系统挂载配置文件。在文件最后加这一行UUIDF3... /mnt/winD ntfs-3g defaults,uid1000,gid1000,umask022,windows_names,nofail,x-gvfs-show00这行的意思是开机自动把 Windows D 盘挂载到 /mnt/winD 给普通用户读写权限 挂载失败也不影响 Ubuntu 启动 并且在文件管理器里显示保存方式Ctrl O Enter Ctrl X9. 测试自动挂载配置先卸载刚才手动挂载的 D 盘sudoumount/mnt/winDumount卸载挂载点不是删除文件。然后测试 fstab 配置sudomount-amount -a按/etc/fstab配置重新挂载所有分区。如果没有报错基本就稳了。再检查df-hT|grepwinD能看到/mnt/winD就说明自动挂载配置没问题。最后测试快捷入口cd~/Sharelscd ~/Share进入共享目录。ls查看目录内容。最终使用方式以后就很简单了。Windows 下D:\ShareUbuntu 下~/Share这两个位置看到的是同一份文件。我的最终目录习惯Windows 自己开发编译D:\Code_Windows D:\Work_WindowsUbuntu 自己开发编译/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/fstabcp把备份文件复制回原配置。/etc/fstab恢复后的自动挂载配置。最后总结这套方案适合大多数 Windows Ubuntu 双系统用户Windows D盘作为共享盘 Ubuntu 自动挂载 D盘 共享资料放 D:\Share Linux 编译仍然放 Ubuntu 自己的 ext4 分区 Windows 编译可以直接放 D盘一句话共享盘负责传资料系统盘负责跑环境开发编译各回各家。

相关新闻