Linux 挂载 Windows 磁盘

首先要确保设备加密和快速启动已经关闭,以下内容针对 Linux 5.15 及之后的内核中引入的 NTFS3 驱动

参考以下网址:

fstab -- Archwiki

使用 UUID/卷标

官方推荐的方法是使用 UUID,以分别挂载 C 盘和 D 盘到 /home/(user_name)/C 和 /home/(user_name)/D 为例,在终端中输入:

lsblk -f

在输出结果中可以发现 Windows 的硬盘分区,其中第一列(NAME)是卷标,第四列(UUID)是 UUID:

NAME       FSTYPE       LABEL   UUID
├─(name_C) ntfs         C       (UUID_C)
├─(name_D) ntfs         D       (UUID_D)

接着就来修改系统文件:

sudo vim /etc/fstab

在最后加入这两行:

UUID=(UUID_C)                     /home/(user_name)/C    ntfs3 defaults,umask=0 0 0
UUID=(UUID_D)                     /home/(user_name)/D    ntfs3 defaults,umask=0 0 0

重启电脑后,即可自动挂载

如果安装生成 fstab 文件时使用 -L 选项,即 genfstab -L /mnt >> /mnt/etc/fstab,则 /etc/fstab 中应加入:

(name_C)                     /home/(user_name)/C    ntfs3 defaults,umask=0 0 0
(name_D)                     /home/(user_name)/D    ntfs3 defaults,umask=0 0 0

如果需要格式化 C 盘或 D 盘,先从 /etc/fstab 中删去这两行,再操作,之后磁盘的 UUID 会被更改,再编辑 /etc/fstab ,重启挂载即可

使用图形化界面

只支持旧版 NTFS-3G驱动,需要 ntfs-3g 软件包

在系统应用“KDE 分区管理器(partitionmanager)”中卸载 C 盘、D 盘,右键选择编辑挂载点,编辑为 /home/(user_name)/C 和 /home/(user_name)/D,选项全部不用勾选(使用默认配置),点击“执行”即可

这相当于直接编辑 /etc/fstab,加入:

/dev/(name_C)                     /home/(user_name)/C    ntfs  0 0
/dev/(name_D)                     /home/(user_name)/D    ntfs  0 0

好处是格式化磁盘后内核名称不变,依然可以挂载

如果 Windows 磁盘挂载错误

首先检查 Windows 中是否关闭了快速启动

一般来讲是 Windows 开启了快速启动,或者进行了优化磁盘等操作导致的,若关闭快速启动不能解决问题,使用下面的方法:

检查占用进程:

sudo fuser -m -u /dev/(partition_name)

可以看到数字,就是占用目录的进程 PID,终止进程:

sudo kill (PID_number)

卸载磁盘分区:

sudo umount /dev/(partition_name)

执行硬盘 NTFS 分区修复(需要 ntfs-3g 软件包):

sudo ntfsfix -b -d /dev/(partition_name)

再重新挂载即可:

sudo mount -t ntfs3 /dev/(partition_name) (mount_path)/(mount_folder)

挂载 NTFS 移动硬盘

Dolphin 中可以用 NTFS3 驱动挂载 NTFS 移动硬盘,但是会因为不支持 windows_names 参数报错,解决方法是创建文件 /etc/udisks2/mount_options.conf 并写入:

[defaults]
ntfs_defaults=uid=$UID,gid=$GID
 

重启电脑即可

如果要设置自动挂载,可以在“系统设置 >> 可移动存储设备 >> 所有设备”中勾选“登录时”和“插入时”,以及“自动挂载新的可移动设备”


解决无法写和更新NTFS盘数据的问题:

创建 /usr/bin/fix_ntfs_disk_rw.sh 内容:

#!/bin/bash
# Fix NTFS Disk which can not be writen on linux system.
# Usage: sh fix_ntfs_disk_rw.sh /run/media/shmily/Entertainment /Entertainment
DEFAULT_MOUNT_POINT=$1
TARGET_MOUNT_POINT=$2
if [ "$(whoami)" != "root" ];then
  echo User root is necessary.
  exit 1
fi
current_point=$(df -h | grep $DEFAULT_MOUNT_POINT | awk '{print $1}')
echo "Remounting point $current_point from $DEFAULT_MOUNT_POINT to $TARGET_MOUNT_POINT"
sudo ntfsfix $current_point
sudo umount $DEFAULT_MOUNT_POINT
sudo mkdir -p $TARGET_MOUNT_POINT
sudo chmod 1777 $TARGET_MOUNT_POINT
sudo mount -t ntfs -o rw $current_point $TARGET_MOUNT_POINT
echo "All Done"

将系统默认挂载点重新挂载为自定义的挂载点 用法sh fix_ntfs_disk_rw.sh /run/media/shmily/Entertainment /Entertainment

refs:

https://github.com/Firestar-Reimu/Arch-and-Manjaro-KDE-Installation

https://tech.shmily-qjj.top/3f34ebe3/

posted @ 2022-12-25 17:26  petercao  阅读(1204)  评论(0编辑  收藏  举报