V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
kingofvir
V2EX  ›  Linux

关于 Linux 和 Windows 的 nfs 挂载

  •  
  •   kingofvir · 2019-12-25 15:43:44 +08:00 · 7252 次点击
    这是一个创建于 1803 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    多谢各位

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

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