如何挂载Windows分区至Linux

联启 电脑工具 2

如何挂载Windows分区至Linux:新手到高手的完整指南

📖 目录导读

  1. 为什么需要挂载Windows分区? —— 理解跨系统数据共享的价值
  2. 前期准备:确认分区与工具 —— 检查磁盘、安装必要驱动
  3. 手动挂载Windows分区(NTFS/FAT32) —— 一步步命令行操作
  4. 自动挂载:让Linux开机即读Windows盘 —— 修改fstab永久配置
  5. 常见问题与解决方案 —— 挂载失败、中文乱码、权限错误怎么办?
  6. 问答环节 —— 提炼核心疑问,一次讲透

为什么需要挂载Windows分区?

许多Linux用户采用双系统(Windows + Linux)工作流,你可能有这样一个场景:在Windows下下载的文档、图片或游戏存档,重启进入Linux后发现无法直接访问,这是因为Linux默认不识别Windows的NTFS或FAT32文件系统。

如何挂载Windows分区至Linux-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

挂载(Mount) 本质上是将Windows分区“接入”Linux的目录树,让Linux能像读取本地文件夹一样读取Windows磁盘内容,这样做能避免反复重启切换系统,大幅提升工作效率。


前期准备:确认分区与工具

1 查看磁盘分区信息

在Linux终端输入:

sudo fdisk -l

或更友好的版本:

lsblk

你会看到类似输出:

/dev/sda1   *  2048   409600    NTFS   Windows恢复环境
/dev/sda2      409600  4096000   NTFS   Windows C盘
/dev/sda3      4096000 5000000   NTFS   D盘数据分区

记下你希望挂载的分区设备名(如 /dev/sda2/dev/nvme0n1p3

2 安装必要驱动(NTFS-3G)

大多数现代Linux发行版自带NTFS支持,但老系统或精简版可能缺失:

# Debian/Ubuntu
sudo apt install ntfs-3g
# Fedora/RHEL
sudo dnf install ntfs-3g
# Arch Linux
sudo pacman -S ntfs-3g

FAT32/FAT16通常无需额外驱动。


手动挂载Windows分区

1 创建挂载点

挂载点是Linux中的一个空目录,用于访问分区内容,例如挂载到 /mnt/windows_c

sudo mkdir -p /mnt/windows_c

2 执行挂载命令

sudo mount -t ntfs-3g /dev/sda2 /mnt/windows_c

参数说明:

  • -t ntfs-3g:指定文件系统类型(FAT32使用 vfat
  • /dev/sda2:你的Windows分区设备名
  • /mnt/windows_c:挂载点

3 验证挂载

ls /mnt/windows_c

你会看到熟悉的 Users, Program Files, Windows 等文件夹,若出现乱码,则需添加编码参数(见第5节)。

4 卸载分区

用完记得安全卸载:

sudo umount /mnt/windows_c

自动挂载:让Linux开机自动读取Windows盘

手动挂载每次重启后失效,要想永久挂载,需修改系统的文件系统表 /etc/fstab

1 获取分区的UUID(推荐)

使用UUID而非设备名,因为设备名可能因磁盘顺序变化而改变:

sudo blkid /dev/sda2

输出示例:

/dev/sda2: UUID="7A8B9C0D1E2F" TYPE="ntfs" PARTUUID="12345678-01"

记下 UUID="7A8B9C0D1E2F" 部分。

2 编辑fstab文件

用你熟悉的编辑器打开:

sudo nano /etc/fstab

在文件末尾添加一行:

UUID=7A8B9C0D1E2F /mnt/windows_c ntfs-3g defaults,uid=1000,gid=1000,umask=022,locale=zh_CN.UTF-8 0 0

参数解读:

  • defaults:使用默认挂载选项
  • uid=1000,gid=1000:将文件所有者设为你的用户(用户ID 1000通常是第一个普通用户),避免权限不够
  • umask=022:赋予读写权限(022表示所有者rwx,组和其他用户r-x)
  • locale=zh_CN.UTF-8:解决中文文件名乱码
  • 末尾两个 0 0:分别表示不做dump备份、不检查文件系统错误

3 测试fstab配置

在保存前,先测试挂载是否正常:

sudo mount -a

若无错误提示,说明配置正确,重启后分区将自动挂载。


常见问题与解决方案

❌ 问题1:挂载后中文文件名显示为乱码

原因:挂载时未指定正确的字符编码。 解决:手动挂载时添加 iocharset=utf8locale=zh_CN.UTF-8

sudo mount -t ntfs-3g /dev/sda2 /mnt/windows_c -o locale=zh_CN.UTF-8

❌ 问题2:提示“permission denied”或“只读文件系统”

原因:Windows启用了快速启动(Fast Startup)或休眠(Hibernation),导致文件系统处于“非干净”状态。 解决方法(二选一)

  1. 在Windows中禁用快速启动:进入Windows电源选项 → 禁用“快速启动”,然后正常关机。
  2. 强制读写挂载(不推荐长期使用)
    sudo mount -t ntfs-3g /dev/sda2 /mnt/windows_c -o remove_hiberfile

    此命令会删除Windows休眠文件,请确保Windows已完全关机。

❌ 问题3:挂载后Windows系统分区无法写入

原因:Windows系统分区(C盘)可能带有“系统保护”属性。 解决:在Windows中取消C盘的“仅限于读取”属性,或仅挂载数据盘(D/E盘)进行读写,系统盘保持只读模式更安全。

❌ 问题4:fstab配置后开机卡住或无法进入桌面

可能原因:分区UUID写错、挂载点目录不存在、文件系统损坏。 急救方案:进入恢复模式后,用 mount -o remount,rw / 重新挂载根目录,然后注释掉或修改错误行。


问答环节

Q1:挂载后,Linux下修改的文件Windows能识别吗?

A:只要挂载时使用标准的ntfs-3g驱动,修改会直接写入磁盘,Windows能正常读取,但注意Linux的权限系统(如文件所有者、执行权限位)在Windows下可能无法保留。

Q2:FAT32分区挂载方式相同吗?

A:基本一致,只需把文件系统类型改为 vfat,并添加 uid=1000,gid=1000 保证全用户可读写。

sudo mount -t vfat /dev/sdb1 /mnt/usb -o uid=1000,gid=1000,umask=000

Q3:如何在桌面环境直接挂载?

A:大多数Linux桌面(GNOME、KDE、XFCE等)在文件管理器中单击Windows分区即可自动挂载,位置通常在“其他位置”或侧边栏的“设备”列表,自动挂载点位于 /media/用户名/分区标签

Q4:挂载后无法删除Windows中的文件怎么办?

A:通常是因为Linux用户没有Windows文件的所有权,有两种方式:

  • 在挂载时使用 uid=你的用户名,让所有文件归属为你。
  • 或者用 sudo rm -rf 强制删除(请谨慎操作,避免误删系统文件)。

Q5:双系统下,C盘被Windows标记为“脏”分区怎么办?

A:在Windows中完整启动一次并正常关机(不是休眠或快速启动),然后运行 chkdsk /f 检查修复,在Linux中可尝试:

sudo ntfsfix /dev/sda2

注意:ntfsfix仅修复元数据,无法代替Windows的chkdsk。


最佳实践建议

  1. 数据盘与系统盘分开:将个人数据存在D/E盘,C盘保持只读挂载,避免误删Windows系统文件。
  2. 优先使用UUID:设备名(/dev/sda2)可能因磁盘序号改变,UUID更稳定。
  3. 备份fstab:修改前备份 /etc/fstabsudo cp /etc/fstab /etc/fstab.bak
  4. 测试再重启:每次修改后执行 sudo mount -a 验证,再重启。

通过以上步骤,你应该能彻底掌握Windows分区在Linux下的挂载技术,遇到具体错误时,请先检查 dmesg | tail 输出日志,或访问Ubuntu中文论坛、Arch Linux Wiki获取更深入帮助。

标签: NTFS挂载 Linux挂载Windows分区

抱歉,评论功能暂时关闭!