我做服务器的笔记本有光驱位,买了个转换工具,当第二个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 | 0 | 0 |
/dev/disk/by-uuid/xxxx #这是根目录 | / | ext4 | defaults | 0 | 1 |
/dev/disk/by-uuid/xxxx #这是efi启动分区 | /boot/efi | vfat | defaults | 0 | 1 |
/swap.img #好像是虚拟内存相关,但不懂,好像该是虚拟内存镜像文件,用于加载到swap分的? | none | swap | sw | 0 | 0 |
/dev/disk/by-uuid/xxxx #这就是我机器上的第二块硬盘 | /mnt/Disk2 | ext4 | defaults | 0 | 0 |
接来就是说一下 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,如下操作即可:
- 确认新硬盘的分区,我的第二块盘就一个分区,这里得到了/dev/sdb1 :
sudo fdisk -l
- 确认分区UUID:
sudo blkid /dev/sdb1
- 按我的格式将UUID替换到 /dev/disk/by-uuid/xxxx 里的xxxx 并保存即可:
sudo nano /etc/fstab
- 测试能否正常挂载:
sudo mount -a
- 查看挂载情况:
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
本文是 居家服务器折腾笔记 的一部分,这个系列是一个缝合了很多外链的怪物,欢迎品鉴
很多电影看过一遍后,很难得会再看,有些过了几年后出续集了,倒是会回过头去温习下前传。