ubuntu-几种挂载磁盘的方式

目录

前言

方法一:使用systemd自动挂载

步骤:

[1. 获取设备的UUID](#1. 获取设备的UUID)

[2. 创建挂载点目录](#2. 创建挂载点目录)

[3. 创建systemd挂载单元文件](#3. 创建systemd挂载单元文件)

[4. 重新加载systemd守护进程并启用挂载](#4. 重新加载systemd守护进程并启用挂载)

[5. 验证挂载](#5. 验证挂载)

优点:

方法二:使用gnome-disks图形界面工具

步骤:

[1. 打开gnome-disks工具](#1. 打开gnome-disks工具)

[2. 选择目标磁盘和分区](#2. 选择目标磁盘和分区)

[3. 配置挂载选项](#3. 配置挂载选项)

[4. 设置自动挂载](#4. 设置自动挂载)

[5. 验证挂载](#5. 验证挂载)

方法三:使用udisks2命令行工具

步骤:

[1. 安装udisks2(如果未安装)](#1. 安装udisks2(如果未安装))

[2. 创建挂载脚本](#2. 创建挂载脚本)

[3. 创建systemd服务文件](#3. 创建systemd服务文件)

[4. 启用并启动服务](#4. 启用并启动服务)

[5. 验证挂载](#5. 验证挂载)

优点:

方法四:编写udev规则实现自动挂载

步骤:

[1. 创建挂载点目录](#1. 创建挂载点目录)

[2. 编写udev规则文件](#2. 编写udev规则文件)

[3. 重新加载udev规则](#3. 重新加载udev规则)

[4. 验证挂载](#4. 验证挂载)

注意事项:

总结


前言

ubuntu下我们一般可以直接编辑/etc/fstab文件来添加磁盘自动挂载,但是存在一定的风险,特别是在格式错误的情况下可能导致系统无法正常启动。幸运的是,还有其他方法可以在Ubuntu中自动挂载NVMe盘,以下是几种常用的方法:

  1. 使用systemd自动挂载
  2. 使用gnome-disks图形界面工具
  3. 使用udisks2命令行工具
  4. 编写udev规则

接下来,我将详细介绍每种方法的步骤和注意事项。

方法一:使用systemd自动挂载

systemd提供了强大的管理系统服务和挂载点的功能,通过创建mount单元文件,可以实现自动挂载,并且具有更好的错误处理和依赖管理。

步骤:

1. 获取设备的UUID

首先,获取NVMe盘的UUID:

cpp 复制代码
lsblk -f

输出示例:

cpp 复制代码
NAME        FSTYPE LABEL UUID                                 MOUNTPOINT
nvme0n1
├─nvme0n1p1 ext4         a1b2c3d4-5678-90ab-cdef-1234567890ab

2. 创建挂载点目录

选择一个挂载点并创建目录:

cpp 复制代码
sudo mkdir /mnt/nvme1

3. 创建systemd挂载单元文件

systemd使用特殊命名规则的单元文件来管理挂载。文件名基于挂载点路径生成,将斜杠替换为连字符,并添加.mount后缀。

**示例:**对于挂载点/mnt/nvme1,单元文件名应为mnt-nvme1.mount

创建单元文件:

cpp 复制代码
sudo nano /etc/systemd/system/mnt-nvme1.mount

在文件中添加以下内容:

cpp 复制代码
[Unit] Description=Mount NVMe Disk to /mnt/nvme1 After=network.target [Mount] What=UUID=a1b2c3d4-5678-90ab-cdef-1234567890ab Where=/mnt/nvme1 Type=ext4 Options=defaults [Install] WantedBy=multi-user.target

参数说明:

  • What:要挂载的设备,可以使用UUID或设备路径。
  • Where:挂载点目录。
  • Type:文件系统类型,根据实际情况设置(如ext4ntfs等)。
  • Options:挂载选项,defaults通常足够,但可以根据需要添加其他选项。

4. 重新加载systemd守护进程并启用挂载

cpp 复制代码
sudo systemctl daemon-reload sudo systemctl enable mnt-nvme1.mount sudo systemctl start mnt-nvme1.mount

5. 验证挂载

cpp 复制代码
df -h | grep /mnt/nvme1

如果看到挂载信息,说明成功。

优点:

  • 可靠性高systemd提供了更好的错误处理和依赖管理。
  • 易于管理 :可以使用systemctl命令方便地启动、停止和检查挂载状态。
  • 独立性 :不会直接修改/etc/fstab文件,降低了配置错误的风险。

方法二:使用gnome-disks图形界面工具

gnome-disks(也称为"磁盘")是GNOME桌面环境下的磁盘管理工具,提供了直观的图形界面来管理磁盘和分区,包括设置自动挂载。

步骤:

1. 打开gnome-disks工具

在终端中输入:

cpp 复制代码
gnome-disks

或者通过应用菜单搜索"磁盘"打开。

2. 选择目标磁盘和分区

在左侧列表中,选择你的NVMe磁盘,然后在右侧选择你想要挂载的分区。

3. 配置挂载选项

点击分区下方的齿轮图标,选择**"编辑挂载选项"**。

4. 设置自动挂载

在弹出的窗口中:

  • 将"用户会话默认值"开关关闭。
  • 勾选"在启动时挂载"选项。
  • 设置"挂载点"为你想要的目录,例如/mnt/nvme1
  • 其他选项可以根据需要进行设置,如"显示名称"、"文件系统类型"等。

示例设置:

  • 挂载点: /mnt/nvme1
  • 文件系统类型: 自动检测或手动指定(如ext4
  • 挂载选项: nosuid,nodev,nofail,x-gvfs-show

完成设置后,点击**"确定"**,可能需要输入管理员密码。

5. 验证挂载

重新启动系统后,检查分区是否自动挂载:

cpp 复制代码
df -h | grep /mnt/nvme1

优点:

  • 用户友好:无需手动编辑配置文件,适合不熟悉命令行的用户。
  • 可视化管理:通过图形界面直观地管理磁盘和分区。
  • 灵活性:可以轻松调整挂载选项和设置。

方法三:使用udisks2命令行工具

udisks2是一个提供磁盘管理功能的服务,可以通过命令行实现自动挂载。

步骤:

1. 安装udisks2(如果未安装)

通常Ubuntu默认已安装udisks2,如果没有,可以通过以下命令安装:

cpp 复制代码
sudo apt install udisks2

2. 创建挂载脚本

编写一个脚本,在系统启动时执行,使用udisksctl命令挂载分区。

创建脚本文件:

cpp 复制代码
sudo nano /usr/local/bin/mount-nvme.sh

添加以下内容:

cpp 复制代码
#!/bin/bash udisksctl mount -b /dev/nvme0n1p1 --no-user-interaction

修改权限:

cpp 复制代码
sudo chmod +x /usr/local/bin/mount-nvme.sh

3. 创建systemd服务文件

cpp 复制代码
sudo nano /etc/systemd/system/mount-nvme.service

添加以下内容:

cpp 复制代码
[Unit] Description=Mount NVMe Disk at Startup After=multi-user.target [Service] Type=oneshot ExecStart=/usr/local/bin/mount-nvme.sh RemainAfterExit=yes [Install] WantedBy=multi-user.target

4. 启用并启动服务

cpp 复制代码
sudo systemctl daemon-reload sudo systemctl enable mount-nvme.service sudo systemctl start mount-nvme.service

5. 验证挂载

cpp 复制代码
df -h | grep /dev/nvme0n1p1

优点:

  • 灵活性高:可以在脚本中添加更多逻辑,如条件检查等。
  • 权限管理udisksctl会自动处理权限,确保安全性。
  • 易于集成:可以与其他启动服务一起管理。

方法四:编写udev规则实现自动挂载

udev是Linux系统中的设备管理器,可以通过编写规则在设备插入时自动执行特定操作。

步骤:

1. 创建挂载点目录

cpp 复制代码
sudo mkdir /mnt/nvme1

2. 编写udev规则文件

cpp 复制代码
sudo nano /etc/udev/rules.d/99-nvme-auto-mount.rules

添加以下内容:

cpp 复制代码
KERNEL=="nvme0n1p1", ACTION=="add", RUN+="/usr/bin/systemd-mount /dev/nvme0n1p1 /mnt/nvme1"

参数说明:

  • KERNEL:设备节点名称,需根据实际情况修改。
  • ACTION:触发动作,此处为设备添加时。
  • RUN:执行的命令,使用systemd-mount进行挂载。

3. 重新加载udev规则

cpp 复制代码
sudo udevadm control --reload sudo udevadm trigger

4. 验证挂载

重新启动系统或重新插入设备,然后检查挂载状态:

cpp 复制代码
df -h | grep /mnt/nvme1

优点:

  • 实时响应:设备插入时立即挂载,无需等待系统启动完成。
  • 自动化程度高:适合可插拔设备的自动挂载。
  • 可定制性强:可以根据设备属性编写复杂的规则。

注意事项:

  • udev规则编写需要谨慎,错误的规则可能导致系统异常。
  • 确保指定的设备名称准确无误,可以使用lsblkudevadm info获取设备信息。

总结

以上介绍了在Ubuntu系统中自动挂载NVMe盘的多种方法,每种方法都有其适用的场景和优缺点:

  • systemd挂载: 适合需要稳定可靠挂载的场景,具有良好的错误处理和依赖管理。
  • gnome-disks工具: 适合喜欢图形界面的用户,操作简单直观。
  • udisks2工具: 适合需要在脚本中集成挂载操作的场景,灵活性高。
  • udev规则: 适合需要在设备插入时自动响应的场景,可实现高度自动化。

在选择具体方法时,可以根据自己的需求、熟悉程度和系统环境进行选择。无论选择哪种方法,都应确保配置的正确性,并在操作前备份重要数据,以避免意外情况的发生。

希望这些方法能帮助你安全且有效地实现NVMe盘的自动挂载!如有其他问题,欢迎继续提问。

相关推荐
叫我龙翔14 分钟前
【项目日记】仿mudou的高并发服务器 --- 实现缓冲区模块,通用类型Any模块,套接字模块
linux·运维·服务器·网络·c++
Learning改变世界29 分钟前
ubuntu24.04下Matlab安装踩坑记录
ubuntu·matlab
不撸先疯。1 小时前
docker镜像源配置、换源、dockerhub国内镜像最新可用加速源(仓库)
运维·docker·容器·dockerhub
荼靡6031 小时前
shell(三)
linux·服务器·数据库
zym大哥大1 小时前
Linux的权限
linux·服务器
Stark-C1 小时前
功能齐全,支持协作 | Docker部署一款支持多人共享的私密浏览器『n.eko』
运维·docker·容器
嘟嘟Listing2 小时前
设置jenkins时区记录
运维·jenkins
嘟嘟Listing2 小时前
jenkins docker记录
java·运维·jenkins
伴野星辰2 小时前
小乌龟TortoiseGit 安装和语言包选择
linux·运维·服务器
枫叶丹42 小时前
【在Linux世界中追寻伟大的One Piece】多线程(一)
java·linux·运维