Ubuntu自动挂载硬盘

在给旧笔记本装上固态后,发现访问原来的机械硬盘目录困难,于是上网查询后发现,把硬盘挂载到固定目录比较方便。于是按教程挂载后,由于文件备份需要,将机械硬盘取下,仅使用固态硬盘开机时报错。原因应该是未检测到之前添加的挂载命令的硬盘。
要实现让硬盘挂载到固定的目录,同时在移除硬盘后仍然能够正常开机,可以按照以下步骤操作:


1. 确定硬盘的UUID

每个硬盘分区都有一个唯一的UUID,用于在文件系统中标识。

运行以下命令,找到硬盘的UUID:

1
lsblk -f

或者:

1
blkid

输出示例:

1
/dev/sdb1: UUID="1234-5678" TYPE="ext4" ...

记下目标硬盘分区的UUID,如1234-5678


2. 创建挂载目录

选择一个固定的目录作为挂载点,例如:

1
sudo mkdir -p /mnt/mydisk

3. 编辑/etc/fstab文件

使用编辑器打开/etc/fstab文件:

1
sudo nano /etc/fstab

在文件末尾添加一行,指定挂载设置:

1
UUID=1234-5678 /mnt/mydisk ext4 defaults,noauto 0 2

参数说明:

  • UUID=1234-5678:目标分区的UUID。
  • /mnt/mydisk:挂载点目录。
  • ext4:文件系统类型,根据实际情况选择(如ntfsvfat等)。
  • defaults,noauto
    • defaults:默认挂载选项。
    • noauto:禁止系统在启动时自动挂载此分区,防止开机时找不到硬盘导致失败。
  • 0:是否需要备份,通常设为0
  • 2:是否需要进行文件系统检查,2表示次要分区。

保存并退出编辑器。


4. 挂载和测试

运行以下命令手动挂载硬盘,测试配置是否正常:

1
sudo mount /mnt/mydisk

如果挂载成功,你应该能访问/mnt/mydisk目录中的内容。

测试移除硬盘的启动:

  1. 断开硬盘连接。
  2. 重启系统,确保能正常启动且不会卡在挂载点。

5. 自动化(可选)

如果希望在硬盘连接时自动挂载,可以借助udev规则或脚本监测设备插入,但这对于一般需求可能不必要。

这样配置后,硬盘插入时可以手动挂载到固定目录,移除后系统也能正常启动。

按照上述设置,如果/etc/fstab中加入了noauto选项,系统启动时即使硬盘连接,也不会自动挂载。这主要是为了防止硬盘未连接时引发启动问题。

如果你希望硬盘连接时在启动过程中自动挂载到指定目录,可以将noauto选项移除,并保持其他配置不变。

修改后的/etc/fstab配置如下:

1
UUID=1234-5678 /mnt/mydisk ext4 defaults 0 2

更新后的行为:

  • 硬盘已连接:系统启动时会自动挂载到/mnt/mydisk
  • 硬盘未连接:启动时不会挂载,但由于现代系统的systemd通常会忽略不可用的挂载点(特别是非根文件系统),启动过程应该不会失败。

如何确保无硬盘时不影响启动?

尽管systemd通常可以跳过挂载失败的分区,为保险起见,你可以在/etc/fstab中加入nofail选项:

1
UUID=1234-5678 /mnt/mydisk ext4 defaults,nofail 0 2

参数说明:

  • nofail:允许系统在分区不可用时继续启动,不会因挂载失败中断开机。

验证自动挂载行为

  1. 确保硬盘已连接,重启系统。

  2. 检查挂载状态:

    1
    mount | grep mydisk

    如果输出中有/mnt/mydisk,说明挂载成功。

  3. 断开硬盘,重启系统,确保启动过程不会因挂载问题出错。

这样配置后,系统在硬盘连接时会自动挂载,无硬盘时正常启动,完全满足你的需求!

/etc/fstab中,最后一项数字(通常是第六列)指定了文件系统在启动时的检查优先级,用于决定fsck(文件系统检查工具)对该分区进行检查的顺序。这里的值对系统启动稳定性和性能有一定影响。


数字含义:

  1. **0**:不对该分区进行检查。通常用于非关键分区(如临时存储分区、外接硬盘等)。
  2. **1**:主要分区(例如根分区/),优先检查,启动时系统会先对它进行文件系统检查。
  3. **2**:次要分区,根分区检查完成后才会对它进行检查。这个值适用于大多数非根分区(如/home、外接硬盘等)。

为什么选用2而不是0

  • 如果硬盘是长期使用的分区(例如存储数据的重要分区):设置为2可以让系统在启动时定期检查文件系统的一致性,从而防止因潜在错误导致数据丢失或分区损坏。
  • 如果你不需要检查(例如偶尔插入的移动硬盘):可以设置为0,以避免启动时浪费时间检查非必要分区。

什么情况下需要用0

  1. 该硬盘不是长期使用,而是偶尔插入的。
  2. 你确定分区是可靠的,并且不需要频繁检查(如只用来存储非关键数据)。
  3. 你希望系统完全跳过这个分区的检查。

如果你设置为2,而硬盘未连接,结合nofail选项,启动时不会因为无法检查硬盘而中断,因此仍然是安全的。


选择建议:

  • 如果硬盘内容重要,建议用2以启用文件系统检查。
  • 如果硬盘为可移除设备或不重要,可以用0跳过检查以加快启动速度。