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

关于 Linux 和 Windows 的 nfs 挂载

  •  
  •   kingofvir · Dec 25, 2019 · 7998 views
    This topic created in 2335 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
        1
    msg7086  
       Dec 25, 2019 via Android
    嗯? mount 不是直接出盘符的吗。
    kingofvir
        2
    kingofvir  
    OP
       Dec 25, 2019
    @msg7086 因为出不了,所以我才疑问
    Linken404
        3
    Linken404  
       Dec 25, 2019
    我理解的是你在 linux 上面做了 nfs,然后在 windows 上面挂载这个 nfs

    如果我理解的没问题的话,那么直接 windows 下写个 bat 文件:
    net use z: \\[ip]:\[pwd] [password] /user:[user]
    然后把这个文件的快捷方式丢到启动文件夹里面不就行了
    kingofvir
        4
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 理解是没错,但是有个要求是:这些挂载目录都是动态的,我目前是等待 linux 启动后,用 ssh 连接 window ,执行动态的目录挂载
    GeminiPro
        5
    GeminiPro  
       Dec 25, 2019
    samba 不能用吗
    kingofvir
        6
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 我尝试了您的方式,以 ssh 远程连接 windows,在其命令行输入 net use U: \\192.168.3.111\mnt\disk2\project\user1 且显示 The command completed successfully. 然后进入 powershell 能进入 U 盘符,ls 查看也能看到相应的文件,但是在 windows 界面上依然看不大 U 盘符
    Linken404
        7
    Linken404  
       Dec 25, 2019
    @kingofvir 动态的意思是 linux 需要重启,重启之后要挂载的目录路径会变吗?
    kingofvir
        8
    kingofvir  
    OP
       Dec 25, 2019
    @tyrantZhao samba 尝试过,但是我的需要是:windows 其实是虚拟机,每次起来之后需要按登陆的用户,挂载或者共享他对应的自己的文件夹,在我理解(初步看了下 samba 的 demo 设置) samba 是多人共享一个文件夹比较适合。或者请教下能否对 samba 设置:一台 windows 一个文件夹访问方式,如果可以的话,我在 windows 虚拟机起来后手动更新 samba 配置也是可以的
    kingofvir
        9
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 是按不同的用户起 windows 虚拟机,在 windows 虚拟机下挂载对应用户的个人文件
    Linken404
        10
    Linken404  
       Dec 25, 2019
    @kingofvir 我没试过 ssh 到 windows 之后进行命令行操作,你先试试直接在 windows 的 cmd 里面执行这条命令,如果成功应该是会显示盘符的。
    kingofvir
        11
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 上一个回复 “我目前是等待 linux 启动后” 错了,是“我目前是等待 windows 启动后”
    kingofvir
        12
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 我试了下也么有出盘符,这个“自动加载盘符”这个操作是否在 windows 下需要设置下? 我没怎么接触过 window 下的开发,所以不太懂
    Linken404
        13
    Linken404  
       Dec 25, 2019
    @kingofvir 如果 bat 执行后能看到盘符(以我平时的经历来看是肯定可以的),那么试试看能不能把流程变成:开机-ssh 连接-上传 bat 文件到 windows-本地或远程执行 bat 文件
    Linken404
        14
    Linken404  
       Dec 25, 2019
    @kingofvir 呃...这个问题我真没碰到过
    kingofvir
        15
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 其实如果能显示盘符,流程啥的都好办,烦就烦在他不显示,我的系统镜像是 Win10_1909_Chinese(Simplified)_x64.iso ,安装的时候选择的是专业版,但是未激活
    Linken404
        16
    Linken404  
       Dec 25, 2019
    @kingofvir 你检查一下语法,或者修改一下盘符,命令正常的话理论上是直接在我的电脑下面出现盘符的...网上查了一下也没有和你这种同样的情况,不在现场确实是没什么别的思路了
    Linken404
        17
    Linken404  
       Dec 25, 2019
    @kingofvir 激活试试,未激活有部分功能受限,我没在未激活的机器上测试过,有可能有联系
    kingofvir
        18
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 多谢,我再研究下
    kingofvir
        19
    kingofvir  
    OP
       Dec 25, 2019
    @Linken404 其实命令成功之后,进入 powershell 能进到 U 盘,ls 也能看到对应挂载下的文件,说明命令是正确的
    omph
        20
    omph  
       Dec 25, 2019
    samba 支持独立配置文件,如:config file = /etc/samba/win.%U.conf,这是按用户名来分的
    独立配置里就可以写用户的文件夹了
    kingofvir
        21
    kingofvir  
    OP
       Dec 25, 2019
    @omph 这个有了解过,但是我们的业务逻辑是,不同账号登陆我们平台,根据一个镜像启动多个 Windows 虚拟机,起来后这些 windows 的用户名都是相同的,唯一不同的就是 ip 地址,然后对这些 windows 挂载相应的文件
    szpunk
        22
    szpunk  
       Dec 25, 2019
    NFS 挂载不能用管理员模式启动的 CMD,只能用普通权限的 CMD,否则不会出现盘符。
    omph
        23
    omph  
       Dec 25, 2019
    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
        24
    kingofvir  
    OP
       Dec 25, 2019
    @szpunk 尝试过
    kingofvir
        25
    kingofvir  
    OP
       Dec 25, 2019
    @omph 多谢,尝试下
    kwgkkwgk
        26
    kwgkkwgk  
       Dec 25, 2019 via iPhone
    换个 server 版本的 windows
    kingofvir
        27
    kingofvir  
    OP
       Dec 25, 2019
    这个不太行...用户是一般的小白用户
    msg7086
        28
    msg7086  
       Dec 25, 2019 via Android
    我猜你挂载用的身份和你查看用的身份不同。
    挂载盘符是用户隔离的,意味着 A 用户挂载的网盘 B 用户是看不到的。同理管理员窗口下挂载的网盘,非提权环境也是看不到的。你看看 ssh 连上来以后是不是进入提权环境了?
    kingofvir
        29
    kingofvir  
    OP
       Dec 25, 2019
    @msg7086 这个考虑过,但是在 window 虚拟机(win10 企业版)中用管理员身份运行挂载也看不到盘符,而且用公司物理主机( win10 专业般)挂载也看不到盘符,明天试试 win7
    maxwel1
        30
    maxwel1  
       Dec 25, 2019 via Android
    Linux 上创建 FTP 服务,windows 去访问
    tankren
        31
    tankren  
       Dec 26, 2019
    bat 里面的%username%了解一下? Linux 下的目录名做到跟 win 登录账号用户名一致就行
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5891 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 98ms · UTC 01:41 · PVG 09:41 · LAX 18:41 · JFK 21:41
    ♥ Do have faith in what you're doing.