Sun Blog

Back

Windows 和 Arch 双系统怎么设置共享文件夹

双系统不能同时运行,所以「共享文件夹」实质是共享一个磁盘分区,单独划一个数据分区(NTFS),Windows 和 Arch 各自挂载。

第 1 步:Windows 侧关掉快速启动和休眠#

管理员 CMD:

powercfg /h off
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Power" /v HiberbootEnabled
cmd

第二条应返回 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 -f
bash

找到那个 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-3g
bash

第 4 步:建挂载点、写 fstab#

sudo mkdir -p /mnt/data
id -u    # 确认你的 uid,Arch 第一个用户通常是 1000
id -g    # 通常是 1000
bash

编辑 fstab:

sudo cp /etc/fstab /etc/fstab.bak
sudo nano /etc/fstab
bash

追加一行(推荐内核 ntfs3 驱动):

UUID=8E1A2B3C4D5E6F70  /mnt/data  ntfs3  uid=1000,gid=1000,umask=022,nofail,noatime  0 0
ini

各字段含义:

项说明
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 0
ini

windows_names 禁止创建 Windows 不允许的文件名(含 " * / : < > ? \ | 这些字符、<0x20 的控制字符,以及结尾的空格和点),避免回到 Windows 后打不开。

路径或卷标里有空格的话,fstab 里要写成 \040。所以挂载点尽量别用空格。


第 5 步:挂载与验证#

sudo findmnt --verify            # 检查 fstab 语法,有错会直接报行号
sudo systemctl daemon-reload
sudo mount -a                    # 按 fstab 挂载全部
findmnt /mnt/data                # 确认已挂上、驱动是 ntfs3
bash

写入测试:

touch /mnt/data/test.txt
ls -l /mnt/data/test.txt         # 应显示 owner 是你要的 uid、权限 644
df -h /mnt/data                  # 容量对不对
bash

重启一次,确认开机自动挂载成功:

systemctl --failed               # 应该没有失败的 mount unit
bash
Windows 和 Arch 双系统怎么设置共享文件夹
https://blog.csun.site/blog/2026-10-22-windows-arch-dual-boot-shared-ntfs-partition
AuthorSun Xin
Published at2026年10月22日
Comment seems to stuck. Try to refresh?✨