本人github
在 Linux 系统中,可以通过修改系统配置文件或使用自动挂载工具来实现硬盘的自动挂载。最常见的方式是通过编辑 /etc/fstab
文件,来实现开机或插入时的自动挂载。
1. 通过 /etc/fstab
实现自动挂载
/etc/fstab
文件是 Linux 系统的文件系统挂载表,定义了开机时哪些设备应该自动挂载及其挂载方式。
步骤:
1.1. 查找设备信息
首先,找到你要自动挂载的硬盘设备名称或者 UUID。
使用以下命令来查看系统中的所有设备:
sudo blkid
输出示例:
/dev/sda1: UUID="b1234567-89ab-4cde-0123-456789abcdef" TYPE="ext4" PARTUUID="00000000-01"
/dev/sdb1: UUID="c1234567-89ab-4cde-0123-456789abcdef" TYPE="ext4" PARTUUID="00000000-02"
/dev/sda1
和/dev/sdb1
是设备名称。UUID="b1234567-89ab-4cde-0123-456789abcdef"
是设备的唯一标识符,推荐使用 UUID 而非设备名,以防设备名称在重启后变化。
1.2. 创建挂载点
为需要挂载的设备创建一个目录作为挂载点(通常在 /mnt
或 /media
下),例如:
sudo mkdir /mnt/mydisk
1.3. 编辑 /etc/fstab
文件
使用文本编辑器打开 /etc/fstab
文件:
sudo nano /etc/fstab
在文件中添加类似以下内容(使用你查到的设备 UUID):
UUID=b1234567-89ab-4cde-0123-456789abcdef /mnt/mydisk ext4 defaults 0 2
- UUID:设备的唯一标识符。
- /mnt/mydisk:你之前创建的挂载点。
- ext4:文件系统类型(根据你的硬盘类型设置,可能是
ext4
,ntfs
,vfat
等)。 - defaults:挂载选项,可以使用默认值,或根据需要设置更多选项,如
rw
(读写)、ro
(只读)、noatime
(不更新访问时间)。 - 0 2:这些是用于备份和文件系统检查的设置,一般默认使用
0 2
。
1.4. 测试挂载
在不重启的情况下,你可以使用以下命令测试挂载:
sudo mount -a
这将挂载 /etc/fstab
文件中定义的所有文件系统。如果没有错误,说明配置正确。
1.5. 重启并验证
重启系统以确保设备在启动时自动挂载:
sudo reboot
重启后,使用以下命令确认设备是否已挂载:
df -h
你应该能够看到设备已经挂载到指定的挂载点。
2. 通过 systemd
实现自动挂载
如果你希望设备在插入时自动挂载,可以使用 systemd
的自动挂载功能。这特别适用于 USB 设备等外部存储。
步骤:
2.1. 创建挂载点
首先,和前面一样,创建一个挂载点:
sudo mkdir /mnt/myusb
2.2. 创建 systemd
自动挂载服务
你需要为设备创建两个 systemd
服务文件,一个用于挂载,一个用于自动挂载。
创建挂载文件 /etc/systemd/system/mnt-myusb.mount
:
sudo nano /etc/systemd/system/mnt-myusb.mount
文件内容:
[Unit]
Description=Mount USB Drive
[Mount]
What=/dev/sdb1
Where=/mnt/myusb
Type=ext4
Options=defaults
[Install]
WantedBy=multi-user.target
- What:设备路径,替换成你的 USB 设备路径或 UUID。
- Where:挂载点路径。
- Type:文件系统类型。
2.3. 创建自动挂载文件
创建自动挂载文件 /etc/systemd/system/mnt-myusb.automount
:
sudo nano /etc/systemd/system/mnt-myusb.automount
文件内容:
[Unit]
Description=Automount USB Drive
[Automount]
Where=/mnt/myusb
[Install]
WantedBy=multi-user.target
2.4. 启动并启用服务
启动并启用自动挂载服务:
sudo systemctl enable mnt-myusb.automount
sudo systemctl start mnt-myusb.automount
systemd
会在设备插入时自动挂载。
3. 使用 autofs
自动挂载(可选)
如果你需要动态挂载和卸载文件系统,可以使用 autofs
。
安装 autofs
:
sudo apt install autofs
编辑 /etc/auto.master
文件:
sudo nano /etc/auto.master
添加以下行:
/mnt/auto /etc/auto.misc
编辑 /etc/auto.misc
文件:
sudo nano /etc/auto.misc
添加挂载规则:
myusb -fstype=ext4 :/dev/sdb1
重新启动 autofs
:
sudo systemctl restart autofs
现在,系统会在访问 /mnt/auto/myusb
时自动挂载设备。
总结:
- 使用
/etc/fstab
文件进行开机时的自动挂载。 - 使用
systemd
自动挂载服务可以实现动态插入自动挂载。 - 使用
autofs
适合动态挂载和卸载设备。
你可以根据实际需求选择合适的自动挂载方案。