CentOS下如何正确挂载识别Windows的NTFS硬盘?

在双系统环境中,用户经常需要在 CentOS(一种流行的 Linux 发行版)中访问存储在 Windows 硬盘上的数据,由于 Windows 和 Linux 使用不同的文件系统,这一过程并非即插即用,但通过一系列明确的步骤,可以轻松实现,本文将详细介绍如何在 CentOS 中识别、挂载并访问 Windows 硬盘分区。

CentOS下如何正确挂载识别Windows的NTFS硬盘?

理解基础:磁盘与分区命名

在 Linux 系统中,硬盘和分区遵循特定的命名规则,SATA、SCSI 或 USB 硬盘被识别为 /dev/sda/dev/sdb 等,其中字母代表不同的物理硬盘,分区则在这些设备名后附加数字,/dev/sda1 是第一块硬盘的第一个主分区,/dev/sda2 是第二个分区,以此类推,Windows 通常使用 NTFS 或 FAT32 文件系统,而 CentOS 默认使用 ext4 或 XFS,识别 Windows 分区的关键在于找出哪个 /dev/sdXn 设备采用了 NTFS 或 FAT32 格式。

识别 Windows 硬盘分区

CentOS 提供了多种命令行工具来扫描和识别系统中的磁盘分区。

使用 lsblk 命令

lsblk(List Block Devices)是一个现代且直观的工具,它以树状结构展示块设备、分区及其挂载点。

lsblk

输出可能如下所示:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 238.5G  0 disk
├─sda1   8:1    0   260M  0 part /boot/efi
├─sda2   8:2    0   128M  0 part
├─sda3   8:3    0 238.1G  0 part
└─sda4   8:4    0     1K  0 part
sdb      8:16   0 465.8G  0 disk
├─sdb1   8:17   0   100M  0 part
├─sdb2   8:18   0    16M  0 part
├─sdb3   8:19   0 465.7G  0 part

从上例中,我们可以看到两块硬盘(sdasdb)。sdb 很可能就是 Windows 硬盘,因为它有多个小分区(如恢复分区)和一个大的主分区(sdb3)。lsblk 的缺点是不直接显示文件系统类型。

使用 fdisk -l 命令

fdisk 是一个经典的分区表操作工具,加上 -l 参数可以列出所有磁盘的分区信息。

sudo fdisk -l

输出会包含更详细的分区信息,特别是分区类型(Type)和系统标识(Id),对于 NTFS 分区,其标识通常是 HPFS/NTFS/exFAT

使用 blkid 命令

blkid 命令是识别文件系统类型的最佳工具,它会直接显示每个块设备的 UUID(通用唯一标识符)和文件系统类型(TYPE)。

CentOS下如何正确挂载识别Windows的NTFS硬盘?

sudo blkid

输出示例:

/dev/sda1: UUID="xxxx-xxxx" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
/dev/sda3: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4"
/dev/sdb3: LABEL="Windows" UUID="xxxxxxxxxxxxxxxxxxxxxxxx" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

我们可以清晰地看到 /dev/sdb3TYPEntfs,这正是我们需要寻找的 Windows 分区。

为了更直观地比较这三个工具,可以参考下表:

工具 主要功能 优点 缺点
lsblk 列出块设备树状结构 输出简洁直观,易于理解 不直接显示文件系统类型
fdisk -l 显示分区表详细信息 提供分区类型和ID等底层信息 输出信息较为冗杂
blkid 显示块设备属性(UUID, TYPE) 直接、准确地识别文件系统类型 不显示分区大小和挂载关系

安装必要的驱动程序并挂载分区

CentOS 默认支持读取 NTFS 分区,但写入功能需要安装第三方驱动 ntfs-3g

安装 ntfs-3g

使用 dnf(CentOS 8 及以上)或 yum(CentOS 7)包管理器进行安装:

sudo dnf install ntfs-3g

创建挂载点

挂载点是 Linux 系统中用于访问分区内容的目录,通常在 /mnt 目录下创建。

sudo mkdir /mnt/windows

挂载分区

使用 mount 命令将识别出的 Windows 分区(/dev/sdb3)挂载到创建的目录。

sudo mount -t ntfs-3g /dev/sdb3 /mnt/windows

你可以通过 /mnt/windows 目录访问 Windows 分区中的所有文件了。

CentOS下如何正确挂载识别Windows的NTFS硬盘?

实现开机自动挂载

手动挂载在系统重启后会失效,为了永久生效,需要修改 /etc/fstab 文件。

  1. 获取分区的 UUID:使用 blkid 命令复制目标分区的 UUID,xxxxxxxxxxxxxxxxxxxxxxxx,使用 UUID 而非设备名(如 /dev/sdb3)更稳定,因为设备名可能在重启后发生变化。

  2. 编辑 fstab 文件

    sudo vi /etc/fstab
  3. 添加新行:在文件末尾添加以下内容,将复制的 UUID 和你的挂载点填入。

    UUID=xxxxxxxxxxxxxxxxxxxxxxxx /mnt/windows ntfs-3g defaults 0 0
    • UUID=...:你的分区 UUID。
    • /mnt/windows:挂载点目录。
    • ntfs-3g:文件系统类型。
    • defaults:使用默认挂载选项(包括读写、执行等)。
    • 0 0:分别表示不进行 dump 备份和不进行 fsck 磁盘检查。

保存并退出编辑器,下次重启系统时,该分区将自动挂载,你也可以不重启,直接执行 sudo mount -a 来立即挂载 fstab 中所有未挂载的条目。

相关问答FAQs

问1:为什么我挂载的 NTFS 分区只能读取,无法写入文件?
答: 这通常是由 Windows 的“快速启动”功能引起的,该功能在关机时会将系统会话保存到硬盘,导致 Linux 认为分区处于“脏”状态,为了防止数据损坏而以只读模式挂载,解决方法是在 Windows 中完全禁用快速启动:进入“控制面板” -> “电源选项” -> “选择电源按钮的功能” -> “更改当前不可用的设置”,然后取消勾选“启用快速启动”。

问2:在 CentOS 文件管理器中,为什么没有自动显示我的 Windows 分区?
答: CentOS 的默认桌面环境(如 GNOME)通常会自动检测未挂载的分区并提供点击挂载的选项,但这依赖于后台服务,如果未自动显示,可能是因为 ntfs-3g 驱动未安装,或者分区已被系统以某种方式忽略,最可靠的方法还是通过本文介绍的命令行方式进行手动识别和挂载,并配置 fstab 以实现开机自动访问。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-04 09:23
下一篇 2025-10-04 09:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信