0%

2016.11.05在京东买了一块Intel 535的固态硬盘, 容量为120G, 网上说这块盘性能一般但是比较稳定, 就选了它作为Gen8服务器的系统盘.
因为是服务器所以24小时开机, 但是写入量很少的.
可是这块硬盘有写入放大现象, 一直也没在意, 毕竟有五年质保呢.
snipaste20170228_100917.png

服务器是装的Windows Server, 有一天早上起来发现服务器访问不了, ping也不通, 一看提示找不到系统盘, 重启在硬盘列表那果然看不到Intel 535这块盘了.
直觉是掉盘了, 于是搜了些资料, 说是断电几分钟再插上即可. 试了下果然又找到了, 数据什么的都没丢.
因为怕到时候真的坏掉, 所以就开启了自动备份, 每天备份一次C盘.
直到今天2017.02.28, 也是早上, 已经醒了在看剧, 突然听到Gen8的开机声音, 因为在看剧也没在意.
过了一会儿停电了, 因为服务器电源是插在UPS上的, 我设置的UPS是断电和来电会自动发邮件给我的QQ邮箱, 并且收到新邮件手机会提醒.
可是一直没收到提醒, 打开邮箱看也没邮件, 之前测试好了是能成功发邮件的.
于是想连接下服务器看看是什么情况, 结果服务器出现了跟上次一样的情况, 就是找不到系统盘.
大概之前的那个开机声音就是掉盘重启了吧. 因为停电了, 所以没开机而是直接关机了.
等到来了电之后, 再开服务器就正常启动了, 也就是系统盘又能找到了.
因为发生了两次掉盘现象了, 不得不重视起来. 看了下上次的掉盘时间是2017.01.17, 这才间隔了一个多月又掉, 很是恐慌啊.
snipaste20170228_102341.png

不知道是什么原因导致的掉盘, 可能是24小时开机, 这块盘受不了. 也可能跟这个写入放大有关系.
反正现在有每日备份, 等第三次出现掉盘时就得找京东了.

2017.04.26又掉盘了, 这是第三次了.
snipaste_20170426_203758.png
snipaste_20170426_202533.png

重启还是找不到, 必须关机再开机才可以. 看样子应该是固件的问题.
最近有点忙, 而且服务器还要用, 等下次再联系京东退换货吧.
snipaste_20170426_203157.png
2017.06.19这块Intel 535已经在2017.05.04拿去京东售后了, 售后结果是原价退款, 这里赞一下京东的售后, 确实很棒!
申请售后当天新买的三星750 EVO也到了, 服务器基本没耽误使用, 除了恢复系统时遇到了点问题别的都一切正常.
不知道这块新的固态硬盘稳定性如何, 目前从2017.05.04用上之后一直到2017.06.08一直没出问题, 因为2017.06.08更新系统重启了一次, 所以时间要重新算了, 接下来就是让时间去见证稳定性了.

一直用YAML文件来做配置文件, 今天遇到要将某个目录的绝对路径(Windows平台)作为配置.
百度到一篇文章说双引号里面的不转义, 来自csdn, 只有截图, 具体链接就不贴了, 也可能是我理解错误.
看输出的内容应该是单引号里的不转义, 估计是笔误.
csdn截图

后来几经搜索确定单引号里面的才不转义, 记录下.

第一次遇到液晶显示器残影, 还以为是坏掉了, 所以发了这么个贴子: 戴尔 U2414H 永久残影了
现在看来还是孤陋寡闻了, 睡一觉自己就好了, 原理不明.
不过, 用过至少五个液晶显示器了, 真没遇到过残影现象, 只有一个三星的闪屏变色坏掉了, 其他的没坏过.
不知道是个案还是戴尔品控或者正常现象?

灰屏状态残影很容易就看到了
无信号时照样有残影

U大师是一款U盘启动盘制作工具
官网号称: U大师启动盘制作工具是目前用户认可度最高工具, 绝对不会捆绑任何软件及广告的启动盘工具
snipaste_20170716_181106.png

但是装上后发现IE和Chrome第一次打开会自动跳转到一个7654.com的导航站, 这个站是从xiaoxiangbz.com跳转过去的
火绒也没提示, 装个QQ电脑管家想清除下也没扫到.
百度了下根据知乎上的一篇文章找到了根源

explorer.exe被加了一个插件, 这个插件位于C:\Users\用户名\AppData\Local\umaster\这个目录里, 里面就一个dll, 因为我已经删掉了, 名字记不清了.

根据这个dll, 然后在注册表里找到相关入口. 删掉即可.

之前有几个svn的项目, 现在全都导入到git了.
还真是比较麻烦呢, 最后还是看的git-scm的文档才成功的.
有空再写具体过程.

2017.01.14
发现有个svn的项目还没转成git, 本来以前该记录怎么转的来, 结果由于懒现在还要去翻资料, 转了后一定要记录下来.

2017.03.04
那个项目是早就转成git了, 只是电脑上还留着svn的文件夹, 错以为还没转.
事实证明这随手记录的习惯还没养成.
01.14就该回来记录的, 结果到现在才记录.

最近刚换到Windows 10系统, 一切东西都重装的, 包括Visual Studio.
这次装的只有一个VS2015, 因为大部分时间用来写C#的了, C++很少写了, 还是新一点的版本比较好用.
之前有个项目是VC2010写的, 由于一些特殊原因不想升级到VC2015, 但是又不想再装个VS2010.
想到VS2015支持设置平台工具集编译, 就想着把VC2010里面的库拷贝到一个地方然后修改下平台工具集就行了.

开始折腾

因为VS2015用的是MSBuild来构建的, 就去把之前系统备份下来的MSBuild里面的VS2010相关的内容拷贝过来.
具体内容就是C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0这个里面的东西.
首先, 因为之前只装了一个VS2015, 所以这里只有一个V140目录, 把之前系统相关文件拷过来.
之前百度到的是VS2010和之前版本的都在Platforms目录里, 之后的都在V+版本号的目录里
(参考来源: http://blog.csdn.net/hillseas/article/details/47373313)

设置注册表

这个就是设置VC的Include和Lib目录啥的, 在Microsoft.Cpp.Win32.v100.props里面对着设置就行了
我是都设置到了D:\VCPlatformTools\里面

拷贝内容

一开始只拷贝了Platform\Win32\PlatformToolsets\v100里面的内容过来, 结果在项目属性里切换工具集的时候直接报错.
报的错是说缺少什么包含文件(不是VC的包含文件, 而是MSBuild脚本自己包含的文件), 于是干脆把所有觉得有关的文件都拷过来了.

Win32目录整个拷贝过来, 其中的PlatformToolsets目录里面就只有一个v100

v4.0目录整个拷贝过来, 因为旧系统没有这个v140, 所以不会覆盖什么, 如果拷贝之前就有就不要覆盖, 避免影响到VS2015

再次编译

重新打开VS2015, 这次切换到VS2010的平台工具集不出错了, 重新生成解决方案来试试.
结果提示无法执行CppClean, 因为缺少xxx程序集, 这里我就想到了刚才拷贝的时候那两个dll文件, 于是就去注册了一下.
一开始用的的regasm来注册, 有个警告好像是没有要注册的程序集名称, 既然是警告就没在意.
重新编译试试, 还是提示一样的内容. 这时又双击错误看了下出错的MSBuild脚本, 大概是用强名称加载了那个dll, 肯定是刚才没注册成功.
因为之前做.Net MVC开发的时候稍微了解点GAC(全局程序集缓存), 就想是不是这个也要放到GAC里去. 然后gacutil /i把他俩都加进去, 重新编译.
这次换了别的错误提示了:Required file "" is missing, 看到这个错误真的比较郁闷, 因为引号里面没内容.
百度谷歌了一通没结果, 搬出了Fiddler同公司出的Just Decompile, 把代码反编译了找到点头绪, 有几句代码如下:

1
2
3
4
5
if(string.IsNullOrEmpty(trackerPath))
{
// 原代码是从资源读取格式字符串, 这里直接写出来了
log.ErrorMessage("Required file \"{0}\" is missing", trackerPath);
}

这不就是那就代码输出的地方吗, 上面都判断了是否空或null了, 这里当然输出的就是空白了.
其实之前百度的时候就出现过几条Required file "tracker.exe" is missing的内容, 因为我这是空白内容就没看.
现在想起来, 可能还真的是这个tracker.exe找不到, 于是又去谷歌了一通.
最后发现这个tracker.exe是在D:\VCPlatformTools\Windows SDKs\Windows\v7.0a\Bin\NETFX 4.0 Tools\里面, 可是我里面有这个文件啊, 注册表里也把v7.0a的路径改过去了啊.

想起翻谷歌的时候有人说这个位置存的是Windows SDK的路径
CurrentInstallFolder

去看C盘的这个v7.0a(应该是安装SQL Server 2012时, 装了不完整版VS2010才出现的), 发现里面果然没有这个tracker.exe
拷贝进去, 再编译又提示找不到TrackerUI.dll. 找了找发现在2052目录下

拷贝过去, 顺利编译成功.

总算解决问题了, 后面研究了下为什么会读取的是CurrentInstallFolder无果, 不过既然是这样就这样吧.能用就行了.
后来想既然这个v7.0a不完整, 那干脆装个完整的咯. 去微软下了个v7.1的(v7.0a是VS2010自带的, 并没有直接提供下载, 所以就下了个v7.1的)结果安装不上, 原来是要装跟系统平台一样架构的版本, 也就是要装64位的, 结果又失败, 百度谷歌之后才知道要先卸载掉VC2010的运行库, 卸载后果然装成功.

但是, 装完了之后那个CurrentInstallFolder居然没变, 无语了, 就这么用吧

总结一下步骤

  1. 拷贝原来的MSBuild文件过来
  2. 用gacutil把Microsoft.Build.CPPTasks.Common.dllMicrosoft.Build.CPPTasks.Win32.dll加入到GAC
  3. 确保HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v7.0A\CurrentInstallFolder的值对应的SDK是完整的, 也就是有tracker.exe
  4. 记得把项目用到的平台工具集切换过来, 编译即可.

附上MSBuild相关文件的下载链接

MSBuild_VS2010.7z

百度云链接: https://pan.baidu.com/s/1nu5Ruxr 密码: 6rht

终于融入到这个大家庭了
备案耗时10天, 还算可以.
终于不用再忍受国外主机的龟速了, 其实也不是国外主机烂, 主要是国内访问国外就这样.
希望世界是美好的.

系统是MBP用Bootcamp装的WIN10, 用雷电接口(miniDP)接了个外接显示器做第二屏(1080p的).
设置的只在第二屏上显示, 最近启动的时候出现了第二屏分辨率变回1024*768的现象, 原因不清楚.
而且分辨率也只有1024*768和800*600的选项, 重启就好了.
不知道是接口问题, 还是系统问题, 也可能是MBP装WIN系统的不兼容.