hyper-v 虚拟机共享 win10 目录

1. 建立共享目录

在windows上建立共享目录

高级共享管理中开启以下配置


选中目录(study),右键->属性->共享


选择 Everyone


获取到win本机网络共享资源路径,//DESKTOP-NITNNV0/study

获取win当前登录用户名
win+r 输入 cmd,键入echo %username%回车,得到登录的用户名lin

2. 虚拟机安装samba

yum install samba samba-client

3. 访问windows指定共享目录

smbclient //IP/windows建立的共享目录名称 -U windows登录用户名%密码

[root@localhost data]# smbclient //DESKTOP-NITNNV0/study -U lin%密码
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Tue Sep 26 22:46:57 2023
  ..                                  D        0  Tue Sep 26 22:46:57 2023
  test                                D        0  Tue Sep 26 22:46:51 2023

        937684049 blocks of size 4096. 913265752 blocks available
smb: \> exit

4. 将目录直接挂载到虚拟机中

mount -t cifs -o username="windows用户名",password="密码" //宿主机IP/共享文件夹名称 /挂再到linux的指定目录

[root@localhost data]# mount -t cifs -o username="lpb",password="密码" //DESKTOP-NITNNV0/study /data/www/
mount: 文件系统类型错误、选项错误、//DESKTOP-NITNNV0/study 上有坏超级块、
       缺少代码页或助手程序,或其他错误
       (对某些文件系统(如 nfs、cifs) 您可能需要
       一款 /sbin/mount.<类型> 助手程序)

       有些情况下在 syslog 中可以找到一些有用信息- 请尝试
       dmesg | tail  这样的命令看看。

报错是应为使用了cifs但是没有安装它,安装下就好了,执行yum install -y cifs-utils
再次尝试:

[root@localhost data]# mount -t cifs -o username="lpb",password="密码" //DESKTOP-[root@localhost data]# ls /data/www/
test

测试win上再新建个test1目录



虚拟机上查看

[root@localhost data]# ls /data/www/
test  test1

5. 取消挂载

umount linux上挂载的文件路径

umount /data/www/

Win10 解决电脑重启后 需重新设置

Win10问题:之前用Win7,设置好网络共享后,每次开关机子网都能正常使用,但是升级Win10后,每次开机需要重新把共享开关下才能生效。如下图所示,将共享先取消勾选下,再勾上子网才能正常使用。

解决办法:
1、点击Win+R,弹出命令框,输入services.msc
2、选中Internet Connection Sharing这个服务右键,点击属性打开,启动类型选择“自动”,确定保存


3、点击Win+R,弹出命令框,输入regedit
4、找到路径:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedAccess下,添加一个注册表子项
5、在空白处右击鼠标,新建DWORD(32位)值(D),名称叫做EnableRebootPersistConnection,将数值数据改为1。

注意:编辑注册表时要小心。错误地修改注册表可能会导致严重问题。在操作之前请备份您的注册表。
设置好以后每次开关机,子网会自动进入共享状态。

特殊情况:
用以上方式挂载的目录用户权限是root的,chmodchown等命令无法生效,当我们运行项目写入日志时会没有权限,此时可以在挂载的时候指定挂载的用户,具体操作如下:

参数-o可以加入以某个账号的uid和gid的方式挂载,挂载成功后该目录下的所有文件属性都属于这个账号
比如说,我想让 /mnt/share_software 所属用户、用户组分别为 www、www。首先,得通过如下命令查找出 用户www的uid,和用户组www的guid分别为多少:

[root@hyperv ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
saslauth:x:997:76:Saslauthd user:/run/saslauthd:/sbin/nologin
unbound:x:996:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
www:x:1001:1001::/home/www:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

如上所示,www的uid为1001,gid为1001,最后调整挂载命令如下:

#先删除掉先前的挂载

umount /data/www

#挂载后,让Linux目录所属用户和用户组分别为 www:www

mount -t cifs -o username="lpb",password="密码",uid="1001",gid="1001" //P-1711/cn /data/www/

效果:

[root@hyperv ~]# ll /data/www/
总用量 0
drwxr-xr-x 2 www www 0 10月  7 10:50 test
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容