如何在 Linux 中挂载 Windows NTFS 磁盘

New Technology File System (NTFS - 新技术文件系统) 是由 Microsoft 创建的专有文件系统,广泛用于 Microsoft 的 Windows 操作系统。

默认情况下,大多数 Linux 发行版无法挂载 NTFS,但是可以安装允许我们执行此操作的驱动程序,以便我们可以读取和写入数据到 NTFS 磁盘。

在本示例中,我将 VMDK 文件从基于 Windows 的虚拟机添加到 CentOS 7 Linux 虚拟机。

当我们运行“fdisk -l”时,我们可以看到磁盘已被识别(在系统重新启动后),但它尚未挂载以供我们访问数据。
我们可以看到 Linux 系统的主磁盘 /dev/sda,而 /dev/sdb 是我们的 1GB NTFS 磁盘,它具有 /dev/sdb1 NTFS 分区。

[jack@onitroad ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0004c930
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      616447      307200   83  Linux
/dev/sda2          616448     4810751     2097152   82  Linux swap / Solaris
/dev/sda3         4810752    41943039    18566144   83  Linux
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xfc757b2a
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1             128     2091135     1045504    7  HPFS/NTFS/exFAT

默认情况下,当我尝试挂载 NTFS 磁盘时,会出现以下错误。

[jack@onitroad ~]# mkdir /windows
[jack@onitroad ~]# mount /dev/sdb1 /windows/
mount: unknown filesystem type 'ntfs'

安装所需的软件包

为了执行挂载,我们需要安装 ntfs-3g 包,它是一个 Linux NTFS 用户空间驱动程序。
如果我们使用的是 CentOS/RHEL,此软件包来自 EPEL,因此如果我们尚未将系统配置为使用 EPEL 存储库,请运行以下命令。

[jack@onitroad ~]# yum install epel-release -y

现在我们应该能够从 EPEL 存储库安装 ntfs-3g 包。

[jack@onitroad ~]# yum install ntfs-3g -y

否则,如果我们使用的是 Ubuntu/Debian,我们应该能够立即运行“apt-get install ntfs-3g”。
在我的 Debian 8 安装中,它已经可用,所以我能够毫无问题地挂载 NTFS。

挂载 NTFS 磁盘

我们现在可以成功执行挂载而没有任何错误。

[jack@onitroad ~]# mount /dev/sdb1 /windows/
[jack@onitroad ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="NTFS" UUID="CA4A1FD94A1FC0DD" TYPE="ntfs"

我们可以确认 NTFS 磁盘现在被视为已被操作系统挂载。

[jack@onitroad ~]# df -h /windows/
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1      1021M   11M 1011M   2% /windows

此时我们应该能够在已挂载的 NTFS 磁盘上读写数据。

自动挂载 NTFS

我们可以在 /etc/fstab 文件中创建一个条目,以便我们的 NTFS 磁盘在系统启动时自动挂载。
下面是我放入 fstab 文件的条目示例。
这会将磁盘挂载到 /ntfs 目录。

/dev/sdb1       /windows        ntfs-3g defaults        0 0

添加此配置后,NTFS 磁盘应在系统启动时自动挂载。
在执行重新启动之前,建议先运行“mount -a”命令并确认磁盘安装没有错误。
如果在引导期间发生错误,我们可能会遇到无法正常引导的系统,因此首先进行测试很重要。

日期:2020-07-07 20:56:27 来源:oir作者:oir