Chipmunk & Panda

-- 鼠熊部落格

All work and no play makes Jack a dull boy.

Ubuntu 开机自动挂载硬盘至指定位置

1 查看硬盘信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ sudo fdisk -l
Disk /dev/sda: 893.75 GiB, 959656755200 bytes, 1874329600 sectors
Disk model: INSPUR
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disklabel type: gpt
Disk identifier: 38B2784A-716D-44E3-8D03-F0DFD8398BF7

Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 1874327551 1873276928 893.2G Linux filesystem


Disk /dev/sdb: 8.73 TiB, 9599654559744 bytes, 18749325312 sectors
Disk model: INSPUR
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 262144 bytes / 262144 bytes
Disklabel type: gpt
Disk identifier: E3474383-72AE-1548-9A45-2082C0BD0FEF

Device Start End Sectors Size Type
/dev/sdb1 2048 18749325278 18749323231 8.7T Linux filesystem

大约有如上信息,根据分区大小等判断需要挂载的硬盘的位置。示例选择 /dev/sdb1

2 创建挂载点并挂载

一般情况下,需要创建一个目录作为挂载点。

1
$ sudo mkdir /mnt/data

接下来,执行命令将硬盘挂载至挂载点,即可通过挂载点访问硬盘。

1
$ sudo mount /dev/sdb1 /mnt/data

卸载硬盘则使用 umount 命令。

1
$ sudo umount /mnt/data

umount 既可以卸载挂载点,也可以卸载设备,二者等效。

1
$ sudo umount /dev/sdb1

3 挂载点已有内容

对待挂载点已有内容的情况(如挂载至 /home),挂载会暂时将原内容隐藏,直到卸载挂载点。

4 自动挂载

可以通过配置 /etc/fstab 文件实现开机自动挂载。

选择自己喜欢的编辑器(如 vim)打开文件,内容类似:

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo vim /etc/fstab
# /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/sda2 during installation
UUID=c3610f52-3ec7-46a2-9f1d-6cf49a3cf676 / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda1 during installation
UUID=F14C-F088 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw 0 0

根据注释,在文件末尾加入挂载信息(相关项根据实际情况配置)即可。

  • <file system>:指定要挂载的设备或分区的路径。可以是块设备文件(如 /dev/sdb1)、UUID(唯一标识符)、标签(partition label)等。这是挂载的源,表示从哪里读取文件系统。

注:UUID 可以通过 sudo blkid 命令查看。

1
2
3
$ sudo blkid
# ...
/dev/sdb1: UUID="e3e3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="e3474383-72ae-1548-9a45-2082c0bd0fef"
  • <mount point>:指定挂载点,即文件系统要被挂载到的目录。这是文件系统的目的地,文件系统的内容将在该目录下可见。
  • <type>:指定文件系统的类型,例如 ext4、ntfs、vfat 等。这表示挂载的文件系统使用的文件系统类型。
  • <options>:指定挂载时使用的选项。这可以包括各种挂载选项,例如读写权限、用户权限、自动挂载等。多个选项之间用逗号分隔。
  • <dump>:这个字段用于设置文件系统备份工具 dump 的行为。通常情况下,这个值设置为 0,表示不备份。如果设置为 1,表示应该备份。
  • <pass>:这个字段用于设置文件系统检查顺序。如果设置为 0,表示不进行文件系统检查。如果设置为大于 0 的值,表示在文件系统检查时的顺序,数字越小越早检查。
1
2
3
# /etc/fstab
# ...
UUID="e3e3e3e3-3e3e-3e3e-3e3e-3e3e3e3e3e3e" /mnt/data ext4 defaults 0 2

保存文件,重启系统即可。也可以手动执行挂载操作以测试。

1
$ sudo mount -a

可以使用 df 命令查看挂载情况。

1
2
3
$ df -h
# ...
/dev/sdb1 8.7T 315G 8.0T 4% /home