Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
kingofvir
V2EX  ›  Linux

关于 Linux 和 Windows 的 nfs 挂载

  •  
  •   kingofvir · Dec 25, 2019 · 8566 views
    This topic created in 2510 days ago, the information mentioned may be changed or developed.

    业务需求需要挂载 linux 文件到 window 上, 查看相关文章后发现可用进行 nfs 挂载: https://blog.51cto.com/ixdba/920290

    但在我在命令行中执行挂载命令之后,并未出现 “网络位置”下的挂载盘符,实际手动设置“映射网络启动器”之后才会在“网络位置”下出现相应的挂载目录。

    但是我的操作是希望行云流水般自动化操作,开机-ssh 连接-命令行挂载目录,现在变成了:开机-ssh 连接-命令行挂载目录-手动映射网络启动器,

    请教各位懂 windows 的大佬,能否 1、在命令行执行 mount 之后直接显示相应的挂载数据 2、有无方法通过脚本、命令的形式设置“映射网络启动器”

    多谢各位

    31 replies  •  2019-12-26 10:38:45 +08:00
    msg7086
    msg7086
    Dec 25, 2019 via Android
    1
    嗯? mount 不是直接出盘符的吗。
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    2
    @msg7086 因为出不了,所以我才疑问
    Linken404
    Linken404
    Dec 25, 2019
    3
    我理解的是你在 linux 上面做了 nfs,然后在 windows 上面挂载这个 nfs

    如果我理解的没问题的话,那么直接 windows 下写个 bat 文件:
    net use z: \\[ip]:\[pwd] [password] /user:[user]
    然后把这个文件的快捷方式丢到启动文件夹里面不就行了
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    4
    @Linken404 理解是没错,但是有个要求是:这些挂载目录都是动态的,我目前是等待 linux 启动后,用 ssh 连接 window ,执行动态的目录挂载
    GeminiPro
    GeminiPro
    Dec 25, 2019
    5
    samba 不能用吗
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    6
    @Linken404 我尝试了您的方式,以 ssh 远程连接 windows,在其命令行输入 net use U: \\192.168.3.111\mnt\disk2\project\user1 且显示 The command completed successfully. 然后进入 powershell 能进入 U 盘符,ls 查看也能看到相应的文件,但是在 windows 界面上依然看不大 U 盘符
    Linken404
    Linken404
    Dec 25, 2019
    7
    @kingofvir 动态的意思是 linux 需要重启,重启之后要挂载的目录路径会变吗?
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    8
    @tyrantZhao samba 尝试过,但是我的需要是:windows 其实是虚拟机,每次起来之后需要按登陆的用户,挂载或者共享他对应的自己的文件夹,在我理解(初步看了下 samba 的 demo 设置) samba 是多人共享一个文件夹比较适合。或者请教下能否对 samba 设置:一台 windows 一个文件夹访问方式,如果可以的话,我在 windows 虚拟机起来后手动更新 samba 配置也是可以的
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    9
    @Linken404 是按不同的用户起 windows 虚拟机,在 windows 虚拟机下挂载对应用户的个人文件
    Linken404
    Linken404
    Dec 25, 2019
    10
    @kingofvir 我没试过 ssh 到 windows 之后进行命令行操作,你先试试直接在 windows 的 cmd 里面执行这条命令,如果成功应该是会显示盘符的。
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    11
    @Linken404 上一个回复 “我目前是等待 linux 启动后” 错了,是“我目前是等待 windows 启动后”
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    12
    @Linken404 我试了下也么有出盘符,这个“自动加载盘符”这个操作是否在 windows 下需要设置下? 我没怎么接触过 window 下的开发,所以不太懂
    Linken404
    Linken404
    Dec 25, 2019
    13
    @kingofvir 如果 bat 执行后能看到盘符(以我平时的经历来看是肯定可以的),那么试试看能不能把流程变成:开机-ssh 连接-上传 bat 文件到 windows-本地或远程执行 bat 文件
    Linken404
    Linken404
    Dec 25, 2019
    14
    @kingofvir 呃...这个问题我真没碰到过
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    15
    @Linken404 其实如果能显示盘符,流程啥的都好办,烦就烦在他不显示,我的系统镜像是 Win10_1909_Chinese(Simplified)_x64.iso ,安装的时候选择的是专业版,但是未激活
    Linken404
    Linken404
    Dec 25, 2019
    16
    @kingofvir 你检查一下语法,或者修改一下盘符,命令正常的话理论上是直接在我的电脑下面出现盘符的...网上查了一下也没有和你这种同样的情况,不在现场确实是没什么别的思路了
    Linken404
    Linken404
    Dec 25, 2019
    17
    @kingofvir 激活试试,未激活有部分功能受限,我没在未激活的机器上测试过,有可能有联系
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    18
    @Linken404 多谢,我再研究下
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    19
    @Linken404 其实命令成功之后,进入 powershell 能进到 U 盘,ls 也能看到对应挂载下的文件,说明命令是正确的
    omph
    omph
    Dec 25, 2019
    20
    samba 支持独立配置文件,如:config file = /etc/samba/win.%U.conf,这是按用户名来分的
    独立配置里就可以写用户的文件夹了
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    21
    @omph 这个有了解过,但是我们的业务逻辑是,不同账号登陆我们平台,根据一个镜像启动多个 Windows 虚拟机,起来后这些 windows 的用户名都是相同的,唯一不同的就是 ip 地址,然后对这些 windows 挂载相应的文件
    szpunk
    szpunk
    Dec 25, 2019
    22
    NFS 挂载不能用管理员模式启动的 CMD,只能用普通权限的 CMD,否则不会出现盘符。
    omph
    omph
    Dec 25, 2019
    23
    config file = /etc/samba/win.%I.conf,按 IP 区分

    samba 变量:
    %S = 当前服务名(如果有的话)
    %P = 当前服务的根目录(如果有的话)
    %u = 当前服务的用户名(如果有的话)
    %g = 当前用户说在的主工作组
    %U = 当前对话的用户名
    %G = 当前对话的用户的主工作组
    %H = 当前服务的用户的 Home 目录
    %v = Samba 服务的版本号。
    %h = 运行 Samba 服务机器的主机名
    %m = 客户机的 NETBIOS 名称
    %L = 服务器的 NETBIOS 名称
    %M = 客户机的主机名
    %N = NIS 服务器名
    %p = NIS 服务的 Home 目录
    %R = 说采用的协议等级(值可以是 CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
    %d = 当前服务进程的 ID
    %a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95 )
    %I = 客户机的 IP
    %T = 当前日期和时间
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    24
    @szpunk 尝试过
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    25
    @omph 多谢,尝试下
    kwgkkwgk
    kwgkkwgk
    Dec 25, 2019 via iPhone
    26
    换个 server 版本的 windows
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    27
    这个不太行...用户是一般的小白用户
    msg7086
    msg7086
    Dec 25, 2019 via Android
    28
    我猜你挂载用的身份和你查看用的身份不同。
    挂载盘符是用户隔离的,意味着 A 用户挂载的网盘 B 用户是看不到的。同理管理员窗口下挂载的网盘,非提权环境也是看不到的。你看看 ssh 连上来以后是不是进入提权环境了?
    kingofvir
    kingofvir
    OP
    Dec 25, 2019
    29
    @msg7086 这个考虑过,但是在 window 虚拟机(win10 企业版)中用管理员身份运行挂载也看不到盘符,而且用公司物理主机( win10 专业般)挂载也看不到盘符,明天试试 win7
    maxwel1
    maxwel1
    Dec 25, 2019 via Android
    30
    Linux 上创建 FTP 服务,windows 去访问
    tankren
    tankren
    Dec 26, 2019
    31
    bat 里面的%username%了解一下? Linux 下的目录名做到跟 win 登录账号用户名一致就行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2410 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 05:16 · PVG 13:16 · LAX 21:16 · JFK 00:16
    ♥ Do have faith in what you're doing.