|
|
无风扇小主机,日常上网刷抖音追剧小游戏,第三年时wiin0偶尔死机,换11貌似好点,但游戏一会儿就随机卡顿然后到死,后换固态解决。原机固态512分5G给C,常用绿软放D,硬盘检测上看故障块在D,经常读写绿软的位置,看来固态真没机械抗造。
问了chatGPT5和Grok,综合二者建议,最后用最简方式实现保护SSD,思路:在RAM里跑chromium、小游戏和系统频繁写操作:cache、tmp、prefetch等,关机时再回写SSD保存状态,最大限度减少SSD写操作。
实现方式:将自动同步D盘软件到R盘的命令放入ps1脚本,调用powershell执行,关机或重启时回写。至于开机自动运行,有三种方式:
1,计划任务
2,启动项添加快捷方式
3,注册表
都试过,最终选择注册表方式一劳永逸。
下面是有用的文本,只做参考,不一定能在你机器上完美运行。
ps1脚本(示例只同步Chromium绿色版及部分系统写操作,如你常用wps或office,依法炮制,注意要绿色版,这里位置是D:\ProgramFiles)
===========================================
# D:\SyncToRam.ps1
# 精简安全版:只搬目录到 RAM,避免影响第三方程序启动
$ErrorActionPreference = "SilentlyContinue"
$ramRoot = "R:\"
# 应用路径
$srcChromium = "D:\Program Files\Chromium"
$dstChromium = "$ramRoot\chromium"
$srcUserData = "$srcChromium\userdata"
$srcCache = "$srcChromium\cache"
$dstUserData = "$ramRoot\chromium_userdata"
$dstCache = "$ramRoot\chromium_cache"
# 搬到 RAM 的系统目录
$dstTempSys = "$ramRoot\TempSys"
$dstPrefetch = "$ramRoot\Prefetch"
$dstWSUS = "$ramRoot\WSUS"
$log = "C:\SyncToRam.log"
function New-DirSilent {
param([string]$Path)
if (-not [string]::IsNullOrWhiteSpace($Path) -and -not (Test-Path $Path)) {
New-Item -ItemType Directory -Force -Path $Path | Out-Null
}
}
function Sync-Folder {
param(
[string]$From,
[string]$To
)
if (!(Test-Path $From)) { return }
New-DirSilent $To
robocopy $From $To /MIR /FFT /R:0 /W:0 /XO /NDL /NFL /NP /LOG+:$log | Out-Null
}
function New-JunctionIfNotExist {
param(
[string]$Source, # RAM 上真实目录
[string]$Link # 原路径,将变为联接
)
try {
if (Test-Path $Link) {
$attr = (Get-Item $Link -Force).Attributes
if ($attr.ToString().Contains("ReparsePoint")) {
return
}
$backup = $Link + ".bak_first"
if (-not (Test-Path $backup)) {
Rename-Item -Path $Link -NewName (Split-Path $backup -Leaf) -Force
}
}
New-DirSilent (Split-Path $Link -Parent)
New-DirSilent $Source
cmd /c "mklink /J `"$Link`" `"$Source`"" | Out-Null
} catch {}
}
# 0. 检查 RAM 盘
if (!(Test-Path $ramRoot)) { exit }
# 1. 开机:SSD -> RAM,同步 + 建联接
# 应用部分
Sync-Folder $srcChromium $dstChromium
if (!(Test-Path "$dstUserData\Local State")) {
Sync-Folder $srcUserData $dstUserData
}
Sync-Folder $srcCache $dstCache
Sync-Folder $srcSave $dstSave
New-JunctionIfNotExist -Source $dstUserData -Link $srcUserData
New-JunctionIfNotExist -Source $dstCache -Link $srcCache
New-JunctionIfNotExist -Source $dstSave -Link $srcSave
# 系统 Temp(只动 Windows\Temp)
$sysTempPath = "C:\Windows\Temp"
Sync-Folder $sysTempPath $dstTempSys
New-JunctionIfNotExist -Source $dstTempSys -Link $sysTempPath
# Prefetch
$prefetchPath = "C:\Windows\Prefetch"
Sync-Folder $prefetchPath $dstPrefetch
New-JunctionIfNotExist -Source $dstPrefetch -Link $prefetchPath
# Windows Update 下载缓存
$wsusPath = "C:\Windows\SoftwareDistribution\Download"
Sync-Folder $wsusPath $dstWSUS
New-JunctionIfNotExist -Source $dstWSUS -Link $wsusPath
# 2. 关机/重启:回写关键应用数据
Register-WmiEvent -Class Win32_ComputerShutdownEvent -Action {
$ErrorActionPreference = "SilentlyContinue"
try {
robocopy "R:\chromium_userdata" "D:\Program Files\Chromium\userdata" /MIR /FFT /R:0 /W:0 /XO /LOG+:C:\SyncToRam.log | Out-Null
robocopy "R:\chromium_cache" "D:\Program Files\Chromium\cache" /MIR /FFT /R:0 /W:0 /XO /LOG+:C:\SyncToRam.log | Out-Null
} catch {}
} | Out-Null
# 3. 常驻
while ($true) { Start-Sleep -Seconds 300 }
===============================================
下面是注册表开机启动,将文本另为REG文件双击添加一次即可,注意脚本路径,这里是在D:\
===============================================
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"SyncToRam"="powershell.exe -NoLogo -NonInteractive -WindowStyle Hidden -ExecutionPolicy Bypass -File \"D:\\SyncToRam.ps1\""
===============================================
以上。
再次提醒,脚本不一定适合你,最好自己问AI给出适合你的方案。
|
评分
-
查看全部评分
|