Windows 和 Arch 双系统怎么设置共享文件夹
双系统不能同时运行,共享文件夹本质是共用一块 NTFS 数据分区。本文记录从关闭快速启动、划分分区,到 fstab 挂载与开机验证的完整步骤。
双系统不能同时运行,所以「共享文件夹」实质是共享一个磁盘分区,单独划一个数据分区(NTFS),Windows 和 Arch 各自挂载。
第 1 步:Windows 侧关掉快速启动和休眠#
管理员 CMD:
powercfg /h off
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabledcmd第二条应返回 0x0。powercfg /h off 会删除 hiberfil.sys 并关闭快速启动。
如果不关闭快速启动,Windows 关机时 NTFS 分区会停留在「脏」状态,Arch 侧挂载时报错:ntfs-3g 提示
NTFS is either inconsistent, or there is a hardware fault,内核驱动的 ntfs3 则提示volume is dirty,默认只能只读挂载。强行读写可以给 ntfs3 加force(ntfs-3g 则是force/remove_hiberfile),但存在损坏数据的风险,不建议这么做。
第 2 步:在 Windows 里划出并格式化分区#
Win + R 输入 diskmgmt.msc 打开磁盘管理。
如果有未分配空间,则:
右键未分配区域 → 新建简单卷 → 一路下一步,卷标填 DATA,文件系统选 NTFS,格式化选项里只勾选「执行快速格式化」,其余保持默认。
如果没有未分配的空间,则:
右键要缩小的分区(通常是系统盘 C:)→ 压缩卷 → 输入要腾出的 MB 数,生成未分配的空间,然后按上面的步骤操作即可。
完成后立刻在 Windows 里建几个文件测试读写,确认分区正常。
注意:这一步由于新建了分区,如果 arch 的分区在新建的分区之后,可能会导致 arch 的分区号发生偏移,无法启动,修复方案参考:
https://blog.csun.site/blog/2026-10-22-arch-linux-grub-rescue-after-adding-new-partition ↗
第 3 步:Arch 侧识别分区并取 UUID#
重启进 Arch:
lsblk -fbash找到那个 NTFS 分区,比如 /dev/nvme0n1p4,确认 FSTYPE 是 ntfs。然后:
sudo blkid /dev/nvme0n1p4
# /dev/nvme0n1p4: LABEL="DATA" UUID="8E1A2B3C4D5E6F70" TYPE="ntfs" ...bash记下 UUID= 后面那串。fstab 里一律用 UUID,不要用 /dev/nvme0n1p4——设备名可能变。
装驱动(内核自带的 ntfs3 模块会被自动加载,ntfs-3g 仅作备用):
sudo pacman -S ntfs-3gbash第 4 步:建挂载点、写 fstab#
sudo mkdir -p /mnt/data
id -u # 确认你的 uid,Arch 第一个用户通常是 1000
id -g # 通常是 1000bash编辑 fstab:
sudo cp /etc/fstab /etc/fstab.bak
sudo nano /etc/fstabbash追加一行(推荐内核 ntfs3 驱动):
UUID=8E1A2B3C4D5E6F70 /mnt/data ntfs3 uid=1000,gid=1000,umask=022,nofail,noatime 0 0ini各字段含义:
| 项 | 说明 |
|---|---|
ntfs3 | 内核驱动,比 FUSE 的 ntfs-3g 快,日常首选 |
uid=1000,gid=1000 | 分区内所有文件归你所有(NTFS 无原生 POSIX 权限) |
umask=022 | 目录 755 / 文件 644。单用户想彻底放开权限可用 umask=000(目录 777 / 文件 666) |
nofail | 分区缺失时系统照常启动,不会掉进 emergency shell |
noatime | 减少无谓写入,保护闪存 |
ntfs3 用不了就用 ntfs-3g(兼容性更好,速度略慢):
UUID=8E1A2B3C4D5E6F70 /mnt/data ntfs-3g defaults,uid=1000,gid=1000,umask=022,windows_names,nofail 0 0iniwindows_names 禁止创建 Windows 不允许的文件名(含 " * / : < > ? \ | 这些字符、<0x20 的控制字符,以及结尾的空格和点),避免回到 Windows 后打不开。
路径或卷标里有空格的话,fstab 里要写成
\040。所以挂载点尽量别用空格。
第 5 步:挂载与验证#
sudo findmnt --verify # 检查 fstab 语法,有错会直接报行号
sudo systemctl daemon-reload
sudo mount -a # 按 fstab 挂载全部
findmnt /mnt/data # 确认已挂上、驱动是 ntfs3bash写入测试:
touch /mnt/data/test.txt
ls -l /mnt/data/test.txt # 应显示 owner 是你要的 uid、权限 644
df -h /mnt/data # 容量对不对bash重启一次,确认开机自动挂载成功:
systemctl --failed # 应该没有失败的 mount unitbash