windows与linux间互相挂载文件记录

windows与linux间互相挂载文件记录

参阅博客:

https://www.cnblogs.com/bfhxt/p/9871833.html

https://blog.51cto.com/u_12126819/5105936

需要注意的是,本人的虚拟机是NAT模式,然后所有操作均处于root账号

一、Windows互相访问共享文件夹

可参阅本人另一篇博客,在此就不重写了。

https://www.cnblogs.com/dayq/p/16103721.html

实际体验的话,共享文件夹感觉比ftp方便一些。

二、linux挂载Windows的共享文件夹

这一步的前提是做好上面的第一步,也就是有一个可用的Windows共享文件夹。

系统:主机win10,虚拟机CentosMini(最小安装);实测的话ubuntu和centos的操作没有区别

1.创建一个空白文件夹

[root@localhost ~]# pwd
/root
[root@localhost ~]# mkdir share
[root@localhost ~]# 

所以,空白文件夹的路径就是/root/share,等下用来挂载,挂载后的效果就是,打开share文件夹,就和打开windows下共享的那个文件夹一样。

2.输入命令

mount -t cifs  //win10的IP地址/aliyun  /root/share -o username=win10的账号,password=win10的密码
mount -t cifs  \\\\win10的IP地址\\aliyun  /root/share -o username=win10的账号,password=win10的密码

这两条都是命令都是等价的,无非是斜杠和反斜杠的区别罢了。

怎么看账号:

image-20220609221916537

win+R,进入cmd,Users后面的就是账号了,非要用命令也是可以的,直接net user即可查询。

此外,本人为微软账号登录,所以上面的账号也可以改成微软账号的邮箱,密码相应的改为微软账号的密码。

(话说,微软账号登录的电脑,登录系统的密码好像本来就和微软账号的密码是一样的)

我这里是把一个叫做aliyun的文件夹设置为共享目录罢了。

image-20220609221338177

实际共享文件夹的名称,根据自己的设置进行修改即可。

需要注意的是虽然共享路径是

\\YYJEQHC\aliyun

但是linux是无法识别的。

[root@localhost ~]# mount -t cifs  //YYJEQHC/aliyun  /root/share -o username=username,password=password
mount: wrong fs type, bad option, bad superblock on //YYJEQHC/aliyun,
       missing codepage or helper program, or other error
       (for several filesystems (e.g. nfs, cifs) you might
       need a /sbin/mount.<type> helper program)

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

也就是,不能用计算机名来代替IP地址

3.开启自动挂载

还有想要开机自动挂载的话,需要修改文件/etc/fstab

//win10的IP地址/aliyun  /root/share cifs username=win10账号,password=win10密码 0 0

需要注意的是末尾就是两个0,中间有个空格。

其他的地方,和上面挂载命令对比就明白了。

4.取消挂载

umount /root/share

简简单单一条命令即可。

其实吧,日常编程学习之类的话,这样也就够了,毕竟,共享是相互的;然而,就算共享再方便,文件夹的所有权始终不是你的

三、windows挂载linux共享文件夹

这里以新建的/root/nowtest文件夹为例

[root@localhost share]# pwd
/root/share
[root@localhost share]# ls
[root@localhost share]#

本来是空白的文件夹,现在想让windows写文件进去。

1.安装samba

yum install samba

安装挺多的,这个应该不会失败吧。

2.修改smaba的配置文件

vi /etc/samba/smb.conf

显而易见,[home]、[printers]、[print$]为配置名称,下面缩进的是配置属性。

image-20220609223942354

这里就根据别人的教程,把这3个配置项删除吧。

别人是这么说的,虽然不知道为什么要删除,但是既然我删除了能正常用,那就删除吧。

然后,仿照格式,添加自己的配置项吧。

[centos]	#挂载以后,别人显示的挂载文件夹名称
    path = /root/nowtest	#共享的路径
    writable = yes		#是否可写
    create mask = 0664	#文件的权限
    directory mask = 0775	#目录的权限
上面这么写,只是为了方便解释,反正大家都默认#后面是注释嘛,但是这个配置文件不一样,这样写会出问题,下面会提到
所以,按照下面这样写就好了
[centos]	
    path = /root/nowtest	
    writable = yes		
    create mask = 0664	
    directory mask = 0775	

3.创建用于共享文件夹访问的账号

[root@localhost share]# pdbedit -a -u share
new password:
retype new password:
Failed to add entry for user share.
[root@localhost share]# 

这里想直接添加一个share账户,可以看见失败了;因为系统里面没有这个账户;(这个其实和windows那个共享账户一样的理解)

[root@localhost share]# pdbedit -a -u root
new password:
retype new password:
Unix username:        root
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-1106122905-1178100701-3434043431-1000
Primary Group SID:    S-1-5-21-1106122905-1178100701-3434043431-513
Full Name:            root
Home Directory:       \\localhost\root
HomeDir Drive:        
Logon Script:         
Profile Path:         \\localhost\root\profile
Domain:               LOCALHOST
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          Wed, 06 Feb 2036 07:06:39 PST
Kickoff time:         Wed, 06 Feb 2036 07:06:39 PST
Password last set:    Thu, 09 Jun 2022 07:47:25 PDT
Password can change:  Thu, 09 Jun 2022 07:47:25 PDT
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@localhost share]# 

我这里就不加账户了,直接用root。密码设为123456,和登录系统的root密码是不一样的。

这里就不用chown命令了,不太熟,而且本来文件夹也属于root账户;读者可自行测试。

4.开启smb服务

[root@localhost share]# systemctl start smb
Job for smb.service failed because the control process exited with error code. See "systemctl status smb.service" and "journalctl -xe" for details.
[root@localhost share]# 

不关闭防火墙,直接来这么一句就报错,然而真的是防火墙的问题吗,答案是否定的。

上面写配置文件的时候,就留了个心眼,因为不知道那个配置文件是不是那样加注释的,经过反复测试,就是那个配置文件的问题,上面也已经改正了。

果然,改好以后,直接就行了。

[root@localhost ~]# vi /etc/samba/smb.conf
[root@localhost ~]# clear
[root@localhost ~]# systemctl start smb
[root@localhost ~]# 

5.windows进行访问

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6f:df:40 brd ff:ff:ff:ff:ff:ff
    inet 192.168.133.130/24 brd 192.168.133.255 scope global noprefixroute dynamic ens33
       valid_lft 1581sec preferred_lft 1581sec
    inet6 fe80::df52:60d5:58e1:590/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@localhost ~]# 

首先获得虚拟机IP地址192.168.133.130

image-20220609231017067

image-20220609231000667

这样看来,应该就是防火墙的关系了,到这里,再关闭防火墙即可。

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# 

然后再试,果然就好了。

image-20220609231203257

这里提示不正确,只是因为默认请求不带账号和密码罢了,弹出输入框后进行输入即可。

账号和用户名就是上面专门为共享设置的那个。我这里是root账号,密码123456罢了。

image-20220609231232937

输入以后,就能看见文件夹了,名称就是配置项填写的名称。

image-20220609231613479

竟然还是不能访问文件夹里面的内容。

[root@localhost ~]# setenforce 0
[root@localhost ~]# 

这个时候,来上这么一句,就可以访问了。

image-20220609231813749

https://blog.csdn.net/weixin_45663905/article/details/107344304

原来,还需要关系setlinux的防火墙。

空白的文件夹,随便新建个txt,写点内容好了。

image-20220609231901525

[root@localhost ~]# cd /root/nowtest
[root@localhost nowtest]# ls
hello.txt
[root@localhost nowtest]# ll
total 4
-rw-rw-r--. 1 root root 27 Jun  9 08:18 hello.txt
[root@localhost nowtest]# 

windows改好的,linux也能同步显示,这就是共享成功了。

四、linux之间的共享文件夹

这个就容易了,对于挂载别人文件夹的linux来说,其实是无感的,不管被挂载的是windows的文件夹,还是linux的文件夹,命令都是一样的。

[root@localhost ~]# mount -t cifs  //192.168.133.130/centos  /root/share -o username=root,password=123456
[root@localhost ~]# cd share
[root@localhost share]# ls
hello.txt
[root@localhost share]# ll
total 1024
-rwxr-xr-x. 1 root root 27 Jun  9 08:18 hello.txt
[root@localhost share]# 

这个结合前面的教程,基本就不用解释了。

被挂载的路径就是 //ip/配置文件里面配置项的名称;username就是给文件夹专门设置的账号;password也是专门给文件夹设置的密码,不同于root账号登录的密码。

其实吧,大多数教程我都在centos和ubuntu试过了,基本来说,挂载文件方面的命令,是不区分linux系统的;除了windows挂载ubuntu的文件夹没试过,不过其实也没什么变化,只是安装软件的命令不同罢了,此外,ubuntu启动smb服务的命令是这个:"systemctl start smbd"。

posted @ 2022-06-09 23:34  念秋  阅读(793)  评论(0编辑  收藏  举报