如何在启动时挂载分区?

Har*_*ker 239 fstab automount

你如何在 Ubuntu 上启动时挂载硬盘和分区?

我总是把我的媒体和数据文件放在不同的分区上——一个 2tb 的硬盘和一个 400 多的 gig 分区。我一直在尝试将主目录的默认文件夹位置交换到我的其他驱动器。

当我将/home/user_name/.config/user-dirs.dirs文件更改为我想要的目录时,它会起作用,但仅在我重新启动系统之前。我只是假设驱动器未安装是它的问题,但无论哪种方式都会有所帮助。如果有人知道为什么目录每次都改回默认值的另一个原因,那也很好。

Ev *_*nko 272

GUI 方法(推荐给新手) - 磁盘程序将自动/etc/fstab为您编辑,不会破坏任何内容。键入disks在发射或gnome-disks在终端启动磁盘的应用程序。

选择驱动器,然后分区,然后使用更多操作(齿轮图标)按钮访问“编辑安装选项”菜单。关闭用户默认值,因为如果它真的设置为自动挂载,你就不会在这里。其余的应该是显而易见的。

磁盘应用 磁盘应用程序 - cogs 图标菜单,即将单击 Edit Mount Options... 磁盘应用程序 - 装载选项对话框

  • 只是不要忘记取消选中“自动挂载选项”。我很困惑,因为即使在灰显的 UI 中选中了“启动时安装”复选框,自动安装也不起作用。 (46认同)
  • 比手动编辑 fstab 容易得多。这是最好的答案。 (20认同)
  • 不要在 GUI 工具中使用 `sudo`。`gnome-disks` 会在需要时请求许可。 (16认同)
  • 在 16.04 中,这种方式将磁盘挂载到 /mnt 而不是 /dev (3认同)
  • “休息应该是显而易见的”我喜欢它。 (2认同)
  • @艾蒂安。我使用的是 Ubuntu 22.04,但在任何地方都没有看到“自动安装选项”。您能否详细说明一下? (2认同)
  • @Adriaan 据我所知,这在 22.04 中称为“用户会话默认值” (2认同)

Aks*_*yal 204

终端方法仅供有经验的用户使用。这可能会破坏您的启动。
如果您对此感到满意,请启动终端。

  1. [重要] sudo cp /etc/fstab /etc/fstab.old - 创建 fstab 文件的备份,以防万一发生意外。如果发生什么事,您将需要一个可启动的(实时)USB。如果您没有,请改用 GUI 方法。

  2. sudo blkid - 记下要自动挂载的分区的 UUID。

  3. sudo nano /etc/fstab - 将以下行复制到文件末尾,保存并重新启动以检查它是否有效。

  4. mkdir /my/path/tomount # 引用:“您必须在挂载分区之前创建挂载点。” 见https://help.ubuntu.com/community/Fstab

例子

一个常见的设置是:

UUID=<uuid> <pathtomount> <filesystem> defaults 0 0
Run Code Online (Sandbox Code Playgroud)

使用lsblk -o NAME,FSTYPE,UUID找出你要挂载分区的UUID和文件系统。例如:

$ lsblk -o NAME,FSTYPE,UUID
NAME   FSTYPE UUID
sda
??sda2
??sda5 swap   498d24e5-7755-422f-be45-1b78d50b44e8
??sda1 ext4   d4873b63-0956-42a7-9dcf-bd64e495a9ff
Run Code Online (Sandbox Code Playgroud)

NTFS

UUID=<uuid> <pathtomount> ntfs uid=<userid>,gid=<groupid>,umask=0022,sync,auto,rw 0 0
Run Code Online (Sandbox Code Playgroud)

实例<>变量:

  • <uuid>=3087106951D2FA7E
  • <pathtomount>= /home/data/ # 在重启前创建这个
  • <userid>=1000
  • <groupid>=1000

使用id -u <username>来获取用户名和id -g <username>获得GROUPID。

(请注意,指定该sync选项会降低写入性能,因为它会禁用缓存。async 是默认设置。)

我电脑的 _fstab_ 文件的屏幕截图

  • +1'd,免费的 fstab 教程:http://www.linuxstall.com/fstab/ (15认同)
  • 小心不要对挂载选项过于规范;不是每个人的 uid 和 gid 都是默认的 1000。 (8认同)
  • 使用 'id -u &lt;username&gt;' 获取 uid 并使用 'id -g &lt;username&gt;' 获取组 ID。这应该在答案中说明。 (8认同)
  • 此处应避免使用 @bbodenmiller 同步选项。它会减慢磁盘写入速度,因为您要求立即刷新每个字节,而不是让您的计算机为您优化。答案应该删除同步 (6认同)
  • 我在`man mount` 中读到_在写入周期数有限的介质(例如某些闪存驱动器)的情况下,`sync` 可能会导致生命周期缩短_。 (3认同)

Ash*_*ada 25

在 Ubuntu 中,请按照以下步骤自动挂载您的分区:

  1. 打开文件管理器并在列出的设备上查看左侧。

  2. 选择要在启动时自动挂载的设备,只需单击它,您将在右侧窗格中看到该设备(分区)的文件夹,保持此窗口打开。

  3. 转到您的桌面 Ubuntu 搜索并输入磁盘,您将在结果中看到磁盘。

  4. 单击磁盘,磁盘管理器将启动。

  5. 您将看到左侧窗格中列出的 HDD 和右侧窗格中每个 HDD 的分区详细信息。

  6. 现在通过单击突出显示分区,重要(不要在启动时为所有分区设置挂载,因为它会减慢系统速度)。

  7. 通过查看文件管理器左上角的设备名称,将磁盘管理器中的分区与之前打开的分区窗口进行比较,确保要自动挂载的分区名称具有相同的名称较早打开),并在磁盘管理器中所选分区的内容字段中查看磁盘管理器中相同名称的驱动器或分区。

  8. 现在确保您选择了正确的分区后,在磁盘管理器中只需单击更多操作图标,将打开子菜单列表,选择编辑挂载选项,挂载选项将以自动挂载选项 = ON 打开,因此您将其关闭并默认情况下,您会看到启动时安装被选中并在用户界面中显示被选中,然后点击确定并重新启动系统,登录后转到文件管理器,您将看到您选择在启动时安装的部分-up 已经安装。


tho*_*ter 9

当系统启动时,它会检查文件/etc/fstab(代表“文件系统表”)以获取要自动挂载的分区列表。

此处描述了如何使用此文件。

简单来说:

fstab 条目的语法是:

[设备] [挂载点] [文件系统类型] [选项] [转储] [通过]

您可以添加自己的条目,但您需要知道设备路径(例如,/dev/sdb1)或它们的 UUID(一长串数字)以识别它们。

  • 尽管链接理论上可以解决问题,但在问题中包含重要部分是一种很好的做法 (6认同)
  • @Web-E 可能意味着*答案*。 (3认同)

小智 5

使用 fstab

echo '/dev/[VolumeGroup]/[VolumeName] [custom-directory] ext4 defaults 0 2' >> /etc/fstab
Run Code Online (Sandbox Code Playgroud)

例子:

echo '/dev/hdd/hdd /mnt/hdd ext4 defaults 0 2' >> /etc/fstab
echo '/dev/ssd/ssd /mnt/ssd ext4 defaults 0 2' >> /etc/fstab
Run Code Online (Sandbox Code Playgroud)


tok*_*fsj 5

所有答案都使用 GUI 工具,或者/etc/fstab. 我的问题是,我运行无头服务器(没有 GUI),最重要的是,我通常安装辅助 USB 硬盘驱动器,fstab如果驱动器丢失、损坏等,这将阻止您的系统启动。过去发生在我身上,它让原本功能完美的系统陷入困境。

我的解决方案是使用cron. 特别是,将此行添加到crontab -e您的系统的特定信息中。

@reboot mount /dev/sdX /mnt/my-usb/
Run Code Online (Sandbox Code Playgroud)

这样,cron将尝试在每次系统启动时安装您的驱动器。

警告:这依赖于/dev/sdX重新启动后保持不变,但不能保证这一点。换句话说,下一次启动时/dev/sda可能会出现该驱动器。/dev/sdb但在我的非专业环境中,它一直有效。

如果您需要更高的可靠性/dev/sdX,您可以创建一个shell或python脚本来根据序列号搜索正确的,然后挂载它,并使用cron@reboot触发器执行脚本。