本文最后一次在 2020 年 07 月23 日更新,部分内容可能已经过时!

最近我笔记本的SSD出现了坏块,而且日渐增多,看样子好像是要挂的节奏。

正好,毕设也搞完了,树莓派又要开始吃灰了。我就寻思着把我新买的一个3T机械盘挂在树莓派上,当作一个备份盘来用,顺便做成家庭共享的那种。

树莓派搭建samba这种教程网上一搜就有,我也就不再赘述,实际做好之后速度也还可以接受——关键在于要用有线来连接树莓派和路由器,wifi连接的速度有点问题(顺便一提,我是树莓派3b+)。但当我想把这个samba磁盘设置开机挂载时候,出大问题了。网上也找不到什么人说这个,所以决定自己记录一下。

如果你在网上搜索fstab挂载samba或者类似的问题,会看到各式各样的fstab写法。

比如Archwiki的://SERVER/sharename /mnt/mountpoint cifs _netdev,username=myuser,password=mypass 0 0

又比如csdn某博客的//shwde7xxx.ccr.corp.xxxxx.com/SE_DailyBuild /home/12/345 cifs auto, username=gli16,password=xxxxx 0 0

等等,就不一一列举了。

但我一一试下来,都不行。因为系统在启动过程中是没有启动网络连接的,这就导致了当fstab打算加载这个samba设备时,由于找不到地址进而挂载失败。如此一来,我还是要在系统启动后,手动在终端进行挂载操作。

当时越搜越气,这帮博主真的就这么不负责任的?还是就我的系统有这个问题?

最终,我决定自己尝试。

尝试的过程就不多说了,难倒是不难,只是fstab各种可能的参数都加上去试一下,但操作还是挺麻烦的:因为问题出现在启动时不能联网,所以我必须重新启动系统来验证参数是否有效。如果按一般方法通过umountmount -a来测试的话,不管什么参数都是成功的(因为这种操作是在有网络连接的情况下进行的)。

最终我的fstab是这样的:

//SERVER/sharename /mnt/samba cifs username=xxx,password=xxx,comment=systemd.automount,nofail,rw,uid=1000,gid=1000

简单解释几点

  • rw:使有读写权限
  • uid=1000,gid=1000:这两个参数让非root用户也可对这个磁盘进行读写
  • nofail:最关键的参数。无论其他参数怎么写,只要有这个,就可以保证即使开机时挂载失败,在进入桌面后还可以直接挂载上而无需用户再通过终端进行操作。

不多说了,也许这也是我头一次遇到比较冷门的问题吧……

已有 4 条评论

  1. 你好,我遇到了一个问题,我笔记本有一固态和一机械,当我安装manjaro或者arch时将机械硬盘的分区挂载到home或者opt或者usr并安装完成后,我的系统就会变得巨卡无比,比开虚拟机都卡,我以为是我的机械硬盘有问题,但是当我用同样的方法安装deepin或者ubuntu后,系统就没有卡顿,但是我好想用arch系linux,求救!!! —— 乌克兰总统 乌克兰总统 发表。 回复TA
    1. 这我是每遇见过。试试把arch的内核降到lts试试吧,arch跟ubuntu的区别也就在内核版本不一样了——基础组件都装齐的前提下 —— 等我稍后补充昵称 等我稍后补充昵称 [作者] 于 发表。 回复TA
  2. 非常好工作,它救了我非常多,爱从大陆北方 —— bb bb 发表。 回复TA
    1. 什么英雄联盟 —— 飞蚊话 飞蚊话 [作者] 于 发表。 回复TA

添加新评论