在Ubuntu上自动挂载NTFS,并读写

自动挂载的姿势之一

我的电脑安装了双系统,HDD在Ubuntu中使用磁盘工具自动开机挂载没有写入权限,操作起来很不方便,使用以下方法解决:

1
2
3
4
5
6
7
8
9
10
# 查看所有的HDD分区
sudo fdisk -l

# 修复磁盘分区
sudo ntfsfix /dev/sdb1

# 以读写权限挂载磁盘
sudo mount -o rw /dev/sda1 /mnt/Data/
sudo mount -o rw /dev/sda2 /mnt/Entertainment/
sudo mount -o rw /dev/sda3 /mnt/Learn/

如果还是不行,请赋予/mnt中的文件夹最高的权限

1
2
3
sudo chmod 777 /mnt/Data/
sudo chmod 777 /mnt/Entertainment/
sudo chmod 777 /mnt/Learn/

使用开机脚本将分区自动挂载

在/home中创建一个脚本automount-rw.sh

1
2
3
4
5
6
# automount-rw.sh
#!/bin/bash
# auto mount NTFS 'ro' -> 'rw'
echo "密码"|sudo -S mount -o rw /dev/sda1 /mnt/Data/
echo "密码"|sudo -S mount -o rw /dev/sda2 /mnt/Entertainment/
echo "密码"|sudo -S mount -o rw /dev/sda3 /mnt/Learn/

这样做不好的地方是密码以明文的形式放在了脚本中,个人的电脑可以这么搞.

自动挂载的姿势之二

2021.2.15

今天看了鸟哥的私房菜的7.4 设置启动挂载,才知道原来根文件系统也是通过系统配置自动挂载的,以前从来都没有思考过。通过查看cat /etc/fstab就可以了解系统在开机时是如何自动挂载文件系统的,值得说的一点是/根文件系统是最先被挂载的,有了根文件系统,才能挂载其他的文件系统。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p3 during installation
UUID=d0be529a-c200-4bad-9086-bdbe580a4255 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p2 during installation
UUID=25A5-9DBA /boot/efi vfat umask=0077 0 1
# /home was on /dev/nvme0n1p4 during installation
UUID=6ad9690a-dfef-4fb0-a6da-a3aff8c8b622 /home ext4 defaults 0 2
/swapfile none swap sw 0 0
LABEL=Data /mnt/Data auto nosuid,nodev,nofail,x-gvfs-show,noauto 0 0
LABEL=Entertainment /mnt/Entertainment auto nosuid,nodev,nofail,x-gvfs-show,noauto 0 0
LABEL=Learn /mnt/Learn auto nosuid,nodev,nofail,x-gvfs-show,noauto 0 0

这是我的/etc/fstab文件的内容,可以知道先挂载了根文件系统,然后挂载了efi,方便bios启动后,引导内核的启动,然后挂载了/home目录,这里顺便再说一下/swapfile这个文件系统,根据我粗浅的了解,以前ubuntu在安装时,创建一个与内存大小相当的交换分区有助于提高性能,我将它理解为虚拟内存(不知道合不合理),但现在电脑的配置都比较高了,基本用不着交换分区了,比如我的电脑内存16G,很够用了。想起来以前安装ubuntu16.04的时候还是需要划分一个交换分区的。

后边的这三个应该就是之前写的自动挂载脚本所创建的内容了,可以看到,拿Data这个文件系统来说,挂载点是:/mnt/Data磁盘分区的文件系统是auto;文件系统参数是:nosuid,nodev,nofail,x-gvfs-show,noauto;最后两栏是能否被dump备份命令作用以及是否以fsck检验扇区,这两个都是0

之前写的自动挂载脚本在开机进入操作系统后才会被执行,今天看了书,可以优化一下了,原来的自动挂载脚本可以删掉了,鸟叔说挂载时最好还是用UUID去挂载,所以使用sudo blkid查看磁盘的UUID:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(base) wangtao@pc:~$ sudo blkid
[sudo] wangtao 的密码:
/dev/nvme0n1p3: UUID="d0be529a-c200-4bad-9086-bdbe580a4255" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9e9e48fc-c69b-4eb3-97e4-58b43f56de6c"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/nvme0n1p1: LABEL="MS" BLOCK_SIZE="512" UUID="C25E6DFF5E6DEC9B" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="ba4c815e-781d-44bf-ac01-cda07d2cfeab"
/dev/nvme0n1p2: UUID="25A5-9DBA" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="80565be5-f68a-470e-86c2-1c9bc74e88de"
/dev/nvme0n1p4: UUID="6ad9690a-dfef-4fb0-a6da-a3aff8c8b622" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="bf1e37df-7442-4c60-9312-bdb432e29c58"
/dev/sda1: LABEL="Data" BLOCK_SIZE="512" UUID="9AC8F872C8F84E4F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c5f722e6-b530-4fe4-a93b-e0c72e5fb08c"
/dev/sda2: LABEL="Entertainment" BLOCK_SIZE="512" UUID="1E0039C50039A4A5" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c11b7960-95c2-47ea-ac64-e39059a2daa6"
/dev/sda3: LABEL="Learn" BLOCK_SIZE="512" UUID="88123AB2123AA4DA" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="6cb3ae63-879c-4558-b483-77c6ff882408"
/dev/loop8: TYPE="squashfs"
/dev/loop9: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"

然后修改/etc/fstab的内容:

1
2
3
4
# automount HDD
UUID=9AC8F872C8F84E4F /mnt/Data auto defaults 0 0
UUID=1E0039C50039A4A5 /mnt/Entertainment auto defaults 0 0
UUID=88123AB2123AA4DA /mnt/Learn auto defaults 0 0

重启即可。

成功了记得去挂载点看看就行了,linux向来是报忧不报喜的,哈哈~


2021.2.27

今天打算上传一下博客,发现磁盘权限全都变成只读了,我还以为是/etc/fstab出了问题,可劲百度。后来才知道,双系统的Windows有个快速启动的功能,会占用磁盘,导致ubuntu进系统的时候只能以只读的方式挂载。所以需要关闭windows的快速启动:以管理员权限运行cmd:powercfg /h off即可。然后回到ubuntu把磁盘修复一下就可以了。最后可以用mount -l可以查看磁盘的挂载权限状态。