Linux开机自动挂载非系统硬盘到指定用户
Linux开机自动挂载非系统硬盘到指定用户
背景
自己在家捣鼓的Linux Mint 21,我的分盘是这样子的:原本1T固态,300多G给了Windows,300多G给了Linux,300多G当做数据盘(免得哪个系崩了把我数据给干没了)。
变故
本来开机手动挂载没啥事,但我觉得不优雅,我就给开机自动挂载了。不出意外的话那就得出意外了,我的数据盘里面有git项目,我一拉取它就让我增加安全目录git config --global --add safe.directory
,这我哪能忍啊,我上去就是一通搜索,原来是我数据盘挂载到root
用户了,我在非root
用户拉取当然没权限了。
曲折
相信看到这儿机智的你,应该和我想法是一样的,那当然是用chown -R了。可是但我敲完了sudo chown -R zhangsan:fawaikuangtu /d
(没错我的数据盘,我就叫它D盘,你爱咋地咋地吧。)敲下回车后,命令行竟然无动于衷地不执行。我这个/d
可是用户zhangsan
的目录啊,哦嚯还是没有权限。
解决
既然不能后续修改,那就从挂在的时候修改为指定用户嘛(其实我本来要写个执行开机挂载脚本,后来看了shell找到mount命令列表了),说干就干。
我就开机启动将/media/zhangsan/新加卷
挂载到zhangsan
名下/d
下。
- 查看磁盘UUID
执行命令sudo blkid
查看对应磁盘的UUID,因为我这块磁盘是NTFS格式的,很明显就是最后一个了。 - 查看用户编号和组编号
执行cat /etc/passwd | grep zhangsan
, 查看zhangsan的uid=1000,gid=1000 - 创建挂载点
执行sudo mkdir /d
来创建一个挂载磁盘的地方(我就叫它/d,因为在windows下它是我的D盘),执行sudo chown -R zhangsan:fawaikuangtu /d
来将挂载点/d目录授予fawaikuangtu用户组下的zhangsan用户 - 增加开机自动挂载
执行sudo nano /etc/fstab
编辑自动加载磁盘目录,追加
# 新增自定义磁盘
##UUID=步骤1查看的UUID 你要挂载的目录,步骤3创建的目录 磁盘格式(如果是ntfs的话就写ntfs-3g) 挂载的用户,用户ID和组id(步骤2查出来的),后面可写可读可操作 不备份 不检查磁盘
UUID=D56D7619-ADDB-9C96-F13D-E7D47CA89120 /d ntfs-3g username=zhangsan,uid=1000,gid=1000,rwx 0 0
- 重启
验证
cd /d/workspace/sourcecode/apache-kafka
git pull
这次直接就能拉取代码不用再去添加什么安全目录了
补充
如果你挂载以后发现目录右下角有个小锁或者执行操作的时候,看下带锁的目录里面是不是有个.Trash-1000d
的目录或者.Trash-其他数字
的目录。如果有的话,那就登录到Windows系统删除它再重启就好了。
你要问我为什么,那你就得先问问自己是不是之前登录过window系统而且还在windows里面删除文件到回收站了。那就是windows的回收站啊。
总结
主要是对mount的参数了解的不够,尤其是-a参数,其实修改了/etc/fstab开机自动挂载和手动mount执行是一样的,不过一个系统挂载一个手动而已。