Ubuntu中挂载使用nas服务器

建好群晖nas后,在Windows上做映射很简单,但在Ubuntu上使用,还是耗费了一些时间。
尝试过如下三种方法:

  1. smb
  2. Ubuntu自带的网络共享-afp
  3. mount

最终选择的方法是mount到本地,读写及用Python代码等直接访问很方便。

1. smb(尝试一,不用)

之前一直用smb在Windows和Ubuntu之间共享数据,所以第一个尝试使用samba连接nas服务器。
结果是可以访问,可以读写,但自己写代码读取数据比较困难,应该是有方法的,但没深究。

<span class="token function">sudo</span> <span class="token function">apt-get</span> upgrade <span class="token function">sudo</span> <span class="token function">apt-get</span> update <span class="token function">sudo</span> <span class="token function">apt-get</span> dist-upgrade
<span class="token function">sudo</span> <span class="token function">apt-get</span> upgrade <span class="token function">sudo</span> <span class="token function">apt-get</span> update <span class="token function">sudo</span> <span class="token function">apt-get</span> dist-upgrade 
sudo apt-get upgrade sudo apt-get update sudo apt-get dist-upgrade
<span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> samba samba-common
<span class="token function">sudo</span> <span class="token function">apt-get</span> <span class="token function">install</span> samba samba-common 
sudo apt-get install samba samba-common

设置共享文件夹略…

打开文件管理器,在【other locatios】中的【connect to server】中输入nas地址,弹出用户验证框输入用户名及密码即可。

2. Ubuntu自带的网络共享(尝试二,不用)

打开Ubuntu文件管理器,在【other locatios】中的【Networks】列表中即可找到nas共享文件夹,点击在弹出的验证框中输入用户名及密码即可。

3. mount到本地(非常好用)

前边两种方法对于读写来说都很好用,但是我要写代码与nas做数据交互,都比较困难,所以考虑直接mount。但中途又遇到了一些问题,最耗时的就是mount完后,归属与root,在普通用户下只能读,不能写,找了好久才解决。

<span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> cifs-utils
<span class="token function">sudo</span> <span class="token function">apt</span> <span class="token function">install</span> cifs-utils 
sudo apt install cifs-utils

将nas挂载到/mnt/nas下

<span class="token builtin class-name">cd</span> /mnt/ <span class="token function">sudo</span> <span class="token function">mkdir</span> nas
<span class="token builtin class-name">cd</span> /mnt/ <span class="token function">sudo</span> <span class="token function">mkdir</span> nas 
cd /mnt/ sudo mkdir nas
<span class="token function">sudo</span> <span class="token function">mount</span> -t cifs -o <span class="token assign-left variable">uid</span><span class="token operator">=</span>***,username<span class="token operator">=</span>***,password<span class="token operator">=</span>***,iocharset<span class="token operator">=</span>utf8 nas地址 本地地址
<span class="token function">sudo</span> <span class="token function">mount</span> -t cifs -o <span class="token assign-left variable">uid</span><span class="token operator">=</span>***,username<span class="token operator">=</span>***,password<span class="token operator">=</span>***,iocharset<span class="token operator">=</span>utf8 nas地址 本地地址 
sudo mount -t cifs -o uid=***,username=***,password=***,iocharset=utf8 nas地址 本地地址

各参数解析如下:

  • uid:最关键,可以指定所有者,解决只能root权限的问题,这里=Ubuntu用户名
  • username:在nas上的用户名
  • password:nas上用户名对应的密码,可以不写,回车后会有密码输入行
  • iocharset:路径中如有中文则添加此项,支持中文路径
  • nas地址:如"//192.168.0.1/share"
  • 本地地址:如"/mnt/nas"
<span class="token function">sudo</span> <span class="token function">vim</span> /etc/fstab
<span class="token function">sudo</span> <span class="token function">vim</span> /etc/fstab 
sudo vim /etc/fstab

添加一行信息

nas地址 本地挂载地址 cifs <span class="token assign-left variable">uid</span><span class="token operator">=</span>***,username<span class="token operator">=</span>***,password<span class="token operator">=</span>***,iocharset<span class="token operator">=</span>utf8 <span class="token number">0</span> <span class="token number">0</span>
nas地址 本地挂载地址 cifs <span class="token assign-left variable">uid</span><span class="token operator">=</span>***,username<span class="token operator">=</span>***,password<span class="token operator">=</span>***,iocharset<span class="token operator">=</span>utf8 <span class="token number">0</span> <span class="token number">0</span> 
nas地址 本地挂载地址 cifs uid=***,username=***,password=***,iocharset=utf8 0 0

保存退出后,输入

<span class="token function">sudo</span> <span class="token function">mount</span> -a
<span class="token function">sudo</span> <span class="token function">mount</span> -a 
sudo mount -a

可以看到,已经挂载成功。

一般不需要进行此项配置,在执行3.4后,重启后不自动挂载,可以执行此操作。

systemctl start remote-fs.target systemctl <span class="token builtin class-name">enable</span> remote-fs.target
systemctl start remote-fs.target systemctl <span class="token builtin class-name">enable</span> remote-fs.target 
systemctl start remote-fs.target systemctl enable remote-fs.target
<span class="token function">sudo</span> <span class="token function">vi</span> /etc/sudoers
<span class="token function">sudo</span> <span class="token function">vi</span> /etc/sudoers 
sudo vi /etc/sudoers
Defaults env_reset Defaults mail_badpass Defaults <span class="token assign-left variable">secure_path</span><span class="token operator">=</span><span class="token string">"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"</span> root <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> ALL <span class="token punctuation">[</span>username<span class="token punctuation">]</span> <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> ALL %admin <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL<span class="token punctuation">)</span> ALL %sudo <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> ALL <span class="token punctuation">[</span>username<span class="token punctuation">]</span> <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> NOPASSWD:ALL
        Defaults env_reset Defaults mail_badpass Defaults <span class="token assign-left variable">secure_path</span><span class="token operator">=</span><span class="token string">"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"</span>     root <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> ALL  <span class="token punctuation">[</span>username<span class="token punctuation">]</span> <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> ALL  %admin <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL<span class="token punctuation">)</span> ALL  %sudo <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> ALL  <span class="token punctuation">[</span>username<span class="token punctuation">]</span> <span class="token assign-left variable">ALL</span><span class="token operator">=</span><span class="token punctuation">(</span>ALL:ALL<span class="token punctuation">)</span> NOPASSWD:ALL   
Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" root ALL=(ALL:ALL) ALL [username] ALL=(ALL:ALL) ALL %admin ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL [username] ALL=(ALL:ALL) NOPASSWD:ALL

添加两处[# add user],[username]为当前Ubuntu用户名称。

<span class="token builtin class-name">cd</span> <span class="token operator">&&</span> <span class="token function">vi</span> .bashrc
<span class="token builtin class-name">cd</span> <span class="token operator">&&</span> <span class="token function">vi</span> .bashrc 
cd && vi .bashrc

在最后一行加入下面命令

<span class="token function">sudo</span> <span class="token function">mount</span> -a
<span class="token function">sudo</span> <span class="token function">mount</span> -a 
sudo mount -a

保存退出。

原文链接:https://blog.csdn.net/ShareProgress/article/details/121033909?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836987416800226511564%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836987416800226511564&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-18-121033909-null-null.nonecase&utm_term=%E7%BB%BF%E8%81%94NAS

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享