You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure上Fedora 40主机挂载外部磁盘时VS Code SSH远程安装失败原因

Azure Fedora 40虚拟机挂载/home到数据盘后VS Code SSH远程安装失败

现象

  • 用户x的/home目录位于系统盘时,VS Code SSH远程服务器可正常安装并使用
  • 将/home挂载到Azure外部托管磁盘后,VS Code SSH远程服务器安装失败,日志显示权限拒绝

挂载配置(Ansible)

- name: Mount home dir
  ansible.posix.mount:
    path: /home
    src: /dev/disk/by-uuid/00fd83c8-54c2-xxx-xxx-a1d62d29418a
    fstype: xfs
    opts: noatime,defaults,noexec
    state: mounted

错误日志

Starting VS Code CLI... "/home/x/.vscode-server/code-dc96b837cf6bb4af9cd736aa3af08cf8279f7685" command-shell --cli-data-dir "/home/x/.vscode-server/cli" --on-port --parent-process-id 5064 &> "/home/x/.vscode-server/.cli.dc96b837cf6bb4af9cd736aa3af08cf8279f7685.log" < /dev/null
printenv:
[14:46:19.776] > SHELL=/bin/bash
HISTCONTROL=ignoredups
HOSTNAME=vm-xxx-devops-cappiedevbox-0-wht
EDITOR=/usr/bin/vim
PWD=/home/x
LOGNAME=x
XDG_SESSION_TYPE=tty
MOTD_SHOWN=pam
HOME=/home/x
LANG=en_US.UTF-8
VSCODE_AGENT_FOLDER=/home/x/.vscode-server
SSH_CONNECTION=xxxx 9769 10.0.2.4 22
XDG_SESSION_CLASS=user
SELINUX_ROLE_REQUESTED=
LESSOPEN=||/usr/bin/lesspipe.sh %s
USER=x
SELINUX_USE_CURRENT_RANGE=
SHLVL=2
XDG_SESSION_ID=11
XDG_RUNTIME_DIR=/run/user/2010
SSH_CLIENT=xxxx 9769 22
DEBUGINFOD_URLS=https://debuginfod.fedoraproject.org/
XDG_DATA_DIRS=/home/x/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
PATH=/home/x/.local/bin:/home/x/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
SELINUX_LEVEL_REQUESTED=
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/2010/bus
MAIL=/var/spool/mail/x
_=/usr/bin/printenv
[14:46:19.778] > Spawned remote CLI: 5082
[14:46:19.800] > Exec server process not found
[14:46:19.801] > main: line 321: /home/x/.vscode-server/code-dc96b837cf6bb4af9cd736aa3af08cf8279f7685: 权限拒绝
[14:46:19.804] > 0f332c591725: start
SSH_AUTH_SOCK====
DISPLAY====
listeningOn====
osReleaseIdfedora
archx86_64
vscodeArchx64
bitness64
tmpDir==/run/user/2010==
[14:46:19.804] > platformlinux
unpackResult====
didLocalDownload0
downloadTime====
installTime====
serverStartTime26
execServerTokenxxx-1111-1111-1a11-xxxx
0f332c591725: end
[14:46:19.804] 收到安装输出:
SSH_AUTH_SOCK====
DISPLAY====
listeningOn====
osReleaseIdfedora
archx86_64
vscodeArchx64
bitness64
tmpDir==/run/user/2010platformlinux==
unpackResult====
didLocalDownload0
downloadTime====
installTime====
serverStartTime26
execServerTokenxxx-x-xxx-xx-x

[14:46:19.804] 无法从服务器输出中解析远程端口
[14:46:19.804] 正在终止本地服务器
[14:46:19.805] ssh-remote+cdbj的执行服务器启动失败: 错误
[14:46:19.805] 打开ssh-remote+cdbj的执行服务器失败: 错误
[14:46:19.807] 本地服务器退出: 15

问题原因

挂载选项中的noexec是核心问题:该选项会禁止在挂载分区上执行任何二进制文件。VS Code远程服务器的二进制文件默认存放在用户home目录下的.vscode-server文件夹中,因此执行时触发权限拒绝。

解决办法

  1. 修改挂载配置:更新Ansible的挂载任务,移除noexec选项,修改后的配置如下:
- name: Mount home dir
  ansible.posix.mount:
    path: /home
    src: /dev/disk/by-uuid/00fd83c8-54c2-xxx-xxx-a1d62d29418a
    fstype: xfs
    opts: noatime,defaults
    state: mounted
  1. 重新挂载分区:执行Ansible任务应用修改,或者手动执行以下命令:
    umount /home
    mount /home
    
  2. 重新连接VS Code SSH远程:删除本地VS Code中对应的远程连接缓存,重新发起远程连接,此时VS Code远程服务器应该能正常安装并运行。

内容的提问来源于stack exchange,提问作者Pompey Magnus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:44:57