前言

不同于热插拔的设备,对于硬盘可能需要长期挂载在系统下,所以如果每次开机都去手动mount是非常痛苦的,当然Ubuntu系统的GNOME桌面自带的gvfsd也会帮你自动挂载,但是指向的路径却是按照uuid命名的,对于有强迫症的我而言,这是极其痛苦的,所以希望开机就可以自动挂载硬盘到指定路径。只关注具体如何实现可以直接跳过我的这些“废话”,直接移步到实现步骤

fstab

系统开机的时候会读取/etc/fstab这个文件中的内容,根据文件配置情况去挂载磁盘。vi /etc/fstab,打开fstab文件,具体如下图所示; fstab

参数含义

这里需要配置6个参数,<file system><mount point><type><options><dump><pass>;简单解释一下每个参数的含义,不能只见树木不见森林。

  • file system 文件系统,参考默认的fstab来看,这里只需要把硬盘的UUID正确配置即可;可以通过指令blkid,查看硬盘的UUID
  • mount point 挂载路径,最终硬盘会被挂载到配置的这个路径下,但是这个路径必须先存在,提前创建好这个路径即可;
  • type 硬盘的文件系统类型,相应的有ntfsext4fatvfat等等,这里要根据实际情况设置,同样的也可以通过指令blkid,查看硬盘的TYPE
  • options

| option | description | |–|–| |defaults | use default options: rw, suid, dev, exec, auto, nouser, and async. | | noauto | do not mount when “mount -a” is given (e.g., at boot time) | | user |allow a user to mount| | owner| allow device owner to mount| | comment or x- | for use by fstab-maintaining programs| | nofail | do not report errors for this device if it does not exist.|

  • dump 这个参数用来检查文件系统以多快频率进行备份,系统将认为其值为0,则不需要进行备份;设置成1暂时也没有实践过;
  • pass 这个参数用来决定在启动时需要被fsck扫描的文件系统的顺序,根文件系统”/”对应该字段的值应该为1,其他的应该逐渐递增,如果设置为0则表示不扫描。

    实现步骤

    1 查看硬盘信息,并找到需要进行挂载的硬盘

    sudo fdisk -l
    

    这里我需要对/dev/sdc进行挂载; 在这里插入图片描述

    2 sudo mkfs.ext4 /dev/sdc

    该指令会格式化硬盘,所以请先备份数据,如果硬盘的TYPE就是ext4则无需进行这个步骤的操作

    3 sudo mkdir /home/diska

    创建硬盘需要挂载的路径,这个路径可以根据自己的需要随意命名;

    4 查看UUID

    $ blkid /dev/sdc 
    $ /dev/sdc: UUID="b72a8f66-73d9-42d0-92cc-ae24bee6a309" TYPE="ext4"
    

    5 配置/etc/fstab

    打开/etc/fstab,根据对应的格式如下把UUID(步骤4中获取),挂载路径(步骤4中创建),配置到文件中;

    # /home/diska was my persional disk
    UUID=b72a8f66-73d9-42d0-92cc-ae24bee6a309 /home/diska   ext4 errors=remount-ro 0       0
    

    配置完之后如下图所,记得保存; 在这里插入图片描述 最后,重启系统,看一下硬盘是不是已经挂载上去了;

    $ cat /proc/mounts | grep sdc
    $ /dev/sdc /home/diska ext4 rw,relatime,errors=remount-ro,data=ordered 0 
    

    OK,最终sdc成功地挂载到/home/diska路径下了。