Ubuntu 开机自动挂载第二块硬盘

我做服务器的笔记本有光驱位,买了个转换工具,当第二个SATA硬盘位,我数据不多,准备用它来做数据热备以及收藏一些平时不怎么访问的动作大片

这里会给出一些英文资料的链接,实在是因为关于这部分中文的解释不多,或是不全,而我又没有能力去翻译和解释,只能丢链接自助了

Linux 在CLI下使用 mount 命令就可简单挂载硬盘,但每次重启之后就没了,需要重新再来一次,而将分区号等信息写入 /etc/fstab 就能实现系统启动自动挂载

环境: Ubuntu 20.04 LTS

/etc/fstab 文件 

fstab文件中每行非注释信息都意味着系统会开机挂载一个文件资源,而每行又分为6个信息块,每个信息块中间用空格/TAB隔开,详细的解释参考这个链接,能看懂的就不用继续往下看了 >>> https://linux.die.net/man/5/fstab

这里只简单说一下挂载普通的 ext4 分区怎么操作,我就一个 ext4 分区要挂载,先看一下我的/etc/fstab 文件,前面几条都是安装系统时自动生成的,只有最后一条是我手动添加的

每行都有6个信息块,每个信息块之间用空格/TAB隔开,为了更好的说明,我给做成表格了

<file system><mount point><type><options><dump><pass>
/dev/disk/by-uuid/xxxx 
# 这是虚拟内存分区
none swap sw 00
/dev/disk/by-uuid/xxxx
#这是根目录
/ext4 defaults 01
/dev/disk/by-uuid/xxxx
#这是efi启动分区
/boot/efi vfat defaults 01
/swap.img
#好像是虚拟内存相关,但不懂,好像该是虚拟内存镜像文件,用于加载到swap分的?
noneswapsw00
/dev/disk/by-uuid/xxxx
#这就是我机器上的第二块硬盘
/mnt/Disk2ext4defaults 00

接来就是说一下 6 个信息块都是什么,需要怎么填空

  • file system:要挂载的分区或存储设备 <<< 这是重点,放后面说
  • mount point: <file systems>的挂载位置,挂载点,从这个文件夹对访问资源,我一般放到 /mnt/Disk, 自个随意
  • type:要挂载的文件系统类型,一般来说就是分区格式,比如 ntfs/ext 如果是网络资源,那就是协议名称  nfs/cifs 等,也可以设置成auto类型,mount 命令会猜测使用的文件系统类型,对 CDROM 和 DVD 等移动设备是非常有用
  • options: 挂载时使用的参数;硬盘一般使用 defaults 即可,如果是网络资源,建议在这个链接里找到”Filesystem Independent Mount Options“ 部分好好啃啃 >>>  https://linux.die.net/man/8/mount
  • dump:这部分不是很理解,涉及文件备份,不懂建议设置0 ,要了解的还是啃上面的那个链接
  • pass: 开机是否做硬盘检查,设置 0 不检查,设置为 2 开机做做体检也行。别设置 1 ,那是给 Root Filesystem 用的, Root Filesystem 大概、可能就是系统所在的根目录分区 >>> https://www.baeldung.com/linux/rootfs

所以如果像我这样只是一块普通的 ext4 分区的盘,那只要确认第一信息 file system 就好了,其它没什么好配置的,按我的抄

具体操作

每个分区都有独个的ID,所以要做的就是确认这个代表上分区的UUID,如下操作即可:

  1. 确认新硬盘的分区,我的第二块盘就一个分区,这里得到了/dev/sdb1 : sudo fdisk -l 
  2. 确认分区UUID: sudo blkid /dev/sdb1 
  3. 按我的格式将UUID替换到 /dev/disk/by-uuid/xxxx  里的xxxx 并保存即可:sudo nano /etc/fstab
  4. 测试能否正常挂载:sudo  mount -a
  5. 查看挂载情况: sudo df

如果有多个分区,那么每个分区都写一行信息就行了

打完,收工

<options>常用参数

下面是抄的别人的,不保证准确性,挂载时使用的参数,注意有些mount 参数是特定文件系统才有的。一些比较常用的参数有:

  • auto – 在启动时或键入了 mount -a 命令时自动挂载。
  • noauto – 只在你的命令下被挂载。
  • exec – 允许执行此分区的二进制文件。
  • noexec – 不允许执行此文件系统上的二进制文件。
  • ro – 以只读模式挂载文件系统。
  • rw – 以读写模式挂载文件系统。
  • user – 允许任意用户挂载此文件系统,若无显示定义,隐含启用 noexec, nosuid, nodev 参数。
  • users – 允许所有 users 组中的用户挂载文件系统.
  • nouser – 只能被 root 挂载。
  • owner – 允许设备所有者挂载.
  • sync – I/O 同步进行。
  • async – I/O 异步进行。
  • dev – 解析文件系统上的块特殊设备。
  • nodev – 不解析文件系统上的块特殊设备。
  • suid – 允许 suid 操作和设定 sgid 位。这一参数通常用于一些特殊任务,使一般用户运行程序时临时提升权限。
  • nosuid – 禁止 suid 操作和设定 sgid 位。
  • noatime – 不更新文件系统上 inode 访问记录,可以提升性能(参见 atime 参数)。
  • nodiratime – 不更新文件系统上的目录 inode 访问记录,可以提升性能(参见 atime 参数)。
  • relatime – 实时更新 inode access 记录。只有在记录中的访问时间早于当前访问才会被更新。(与 noatime 相似,但不会打断如 mutt 或其它程序探测文件在上次访问后是否被修改的进程。),可以提升性能(参见 atime 参数)。
  • flush – vfat 的选项,更频繁的刷新数据,复制对话框或进度条在全部数据都写入后才消失。
  • defaults – 使用文件系统的默认挂载参数,例如 ext4 的默认参数为:rw, suid, dev, exec, auto, nouser, async.
  • <dump> dump 工具通过它决定何时作备份. dump 会检查其内容,并用数字来决定是否对这个文件系统进行备份。 允许的数字是 0 和 1 。0 表示忽略, 1 则进行备份。大部分的用户是没有安装 dump 的 ,对他们而言 <dump> 应设为 0。
  • <pass> fsck 读取 <pass> 的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。 根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2. 0 表示设备不会被 fsck 所检查。

更多参考:

  • dump/pass 解释 >>>    https://blog.csdn.net/buxiaoxindasuile/article/details/49612867
  • 关于linux dump >>>  https://developer.aliyun.com/article/474880
  • https://blog.csdn.net/richerg85/article/details/17917129
  • https://blog.csdn.net/buxiaoxindasuile/article/details/49612867
  • https://blog.csdn.net/qq_35451572/article/details/79541106

本文是 居家服务器折腾笔记 的一部分,这个系列是一个缝合了很多外链的怪物,欢迎品鉴

3 thoughts on “Ubuntu 开机自动挂载第二块硬盘”

  1. 很多电影看过一遍后,很难得会再看,有些过了几年后出续集了,倒是会回过头去温习下前传。

Leave a Reply

Your email address will not be published. Required fields are marked *