盘点Nfs 文件服务在Windows上的坑??

🎯 盘点Nfs 文件服务在Windows上的坑??

先抛出问题:Nfs文件服务搭建在Centos7.9的服务器上,IP 192.168.31.147,映射在Windows11的本地磁盘,共享所有的文件包括Git仓库,所有心烦一并解决,烦恼就像裤衩里的屎,解决Ta,安排,GoGoGo!

一、Git 安全

错误信息 fatal: unsafe repository ('//192.168.31.147/home/wwwroot/shop/crmeb' is owned by someone else)原因是:该 Git 仓库位于网络路径 //192.168.31.147/home/wwwroot/shop/crmeb,Git 认为网络共享目录可能被其他用户控制,存在安全风险。

添加安全目录设置,Win的本地就可以正常显示Git的信息和操作了。

bash 复制代码
git config --global --add safe.directory '%(prefix)///192.168.31.147/home/wwwroot/shop/crmeb'

二、Git CRLF / LF 结束符的兼容

Git 抛出错误信息LF will be replaced by CRLF the next time Git touches it,总是在另一端搞出好多文件?

成因 :Unix/Linux/macOS 系统使用LF (Line Feed) 的行结束符,Windows 系统使用CRLF (Carriage Return + Line Feed)的行结束符,因为是共享文件所以每次都会修改很多文件,Git 检测到文件中的行结束符不一致,会在下次提交时自动进行转换。

解决办法:

如果已经有现有仓库,清除缓存并重置:

bash 复制代码
git rm --cached -r .
git reset --hard

打开Git Bash或命令提示符,执行以下Git配置命令:

bash 复制代码
# 禁止自动换行符转换
git config --global core.autocrlf false

# 设置不检查换行符
git config --global core.safecrlf false

在Windows11上使用编辑器是phpstrom 设置配置文件,在项目根目录创建 .editorconfig 文件

bash 复制代码
root = true

[*]
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
indent_style = space
indent_size = 4

[*.md]
trim_trailing_whitespace = false

三、Nfs 在Win上的卡顿

Nfs在Win上的卡顿是致命的,每次转了好多圈也不好使,尤其是程序崩溃后造成的各种诡异情况,针对这些我要分享你几条妙计:

有一种情况是删除了磁盘中映射的Nfs盘,但是它还是存在,分2步解决掉,第一就是删除映射的磁盘文件:

bash 复制代码
net use * /delete

删除如果无效可能是缓存的原因,就使用大招,删除网络驱动器缓存。

bash 复制代码
# 删除网络驱动器缓存
Remove-Item -Path "HKCU:\Network\Z" -Recurse -Force -ErrorAction SilentlyContinue

# 重启资源管理器
taskkill /f /im explorer.exe
Start-Process explorer.exe

可以写一个.bat脚本,每次关机前断开Nfs链接,在使用前在自动连接,跟方便也很实用:

bash 复制代码
@echo off
echo 正在连接 NFS 服务器...
mount -o anon \192.168.31.147\home\wwwroot Z:
echo 连接完成!
pause

我让DeepSeek生成了一个删除链接的.bat脚本,也放在下面了

bash 复制代码
@echo off
chcp 65001 >nul
title 网络驱动器清理工具

echo ========================================
echo     网络驱动器清理工具 - Windows 11
echo ========================================
echo.

echo 正在删除网络驱动器Z的缓存...
PowerShell -Command "Remove-Item -Path 'HKCU:\Network\Z' -Recurse -Force -ErrorAction SilentlyContinue"

if %errorlevel% == 0 (
    echo ✓ 网络驱动器缓存清理完成
) else (
    echo ⚠ 清理过程中可能出现问题(可能是驱动器不存在)
)

echo.
echo 正在重启资源管理器...
taskkill /f /im explorer.exe >nul 2>&1
timeout /t 2 /nobreak >nul
start explorer.exe

echo ✓ 资源管理器已重启
echo.
echo 操作完成!按任意键退出...
pause >nul

这样在Windows上的Nfs的坑就告一段落了,积极的去探索下一段探索,加油!

相关推荐
流浪0019 分钟前
Linux系统篇47——线程(十二) POSIX 信号量与环形队列,把判空判满提前到访问之前
linux·操作系统·线程·信号量·环形队列
咖丨喱34 分钟前
【MMC Core + hc16 Host(WiFi SDIO 如何落到控制器)】
linux
等我调个Bug43 分钟前
【Linux系统篇】权限
linux·服务器
~光~~2 小时前
【嵌入式linux学习】Cache 策略:Write-Through / Write-Back + Allocation
linux·学习·spring
峥无2 小时前
Linux NPTL线程:创建/终止/等待/分离/栈布局内核原理|线程下篇
linux·运维·线程
Patrick在香港2 小时前
同一份脚本,mac 正常 Windows 乱码:open() 默认编码实测(附 3.15 终局)
utf-8·windows·python·macos·跨平台·编码·标准库
是jin奥3 小时前
Ubuntu 访问 Windows 共享目录
linux·运维·ubuntu
星恒随风3 小时前
Linux基础IO万字详解:从文件描述符fd到重定向、FILE缓冲机制及MiniShell升级
linux·运维·笔记·学习·状态模式
yunwei373 小时前
eBPF 入门开发实践教程一:Hello World,基本框架和开发流程
linux·后端·性能优化
小雪崩4 小时前
嵌入式学习 day65:Linux驱动进阶——pinctrl 子系统和 platform 驱动框架
linux·学习·驱动