折腾:OCZ SSD固态硬盘不幸遭遇卡顿假死最终解决

我现在用的笔记本是X100e,大概是10年初买的,到现在刚好两年。当时主要是想用它写论文,因为它比普通上网本快,同时又有上网本比较轻薄的特点,方便出差携带。现在来看它的配置是比较OUT了,但在当时还是算可以的。我平时写程序都是用台式机,但偶尔出差演示还是要带笔记本的。

看着同事的新本,相比之下它速度越来越慢,开机进系统要好几分钟。但把它换掉再买又感觉很亏。大家都知道,程序员的电脑,硬盘是主要瓶颈。俗话说,老本慢U,换固态硬盘是必须的,于是我上网拍了一个OCZ Agility 3 SSD 60G,把原来的硬盘换了,用U盘刻录了一个WIN7 SP1装上,并从THINKPAD官网下载相关驱动装上。

装好后试用,速度果然快,开机进WIN7只需要14秒。用了一段时间后,发现两个问题:
 开机时BIOS有时会等很久检测不到SSD,最后报错说找不到系统盘,这时按CTLR+ALT+DEL重启后又能正常检测硬盘进入WIN7;
 进入WIN7后,系统有时会出现卡顿假死的现象,整个系统停在那大概一两分钟,按什么都没用,好像时间停止了;然后过一会又恢复正常,好像什么事都没发生。

开机检不到还好,因为出现的机率较低,十次出一次左右,而且可以重启解决;但卡顿假死现象可就要命了,出现机率很高,每次进入系统总会碰到,而且完全没有规律,有时在登录时,有时在浏览网页时,真不知它什么时候会出现。有一次我正在给人演示系统,结果它就卡死了,让我干瞪眼等了一分钟,然后很尴尬地跟大家说我刚换硬盘系统还没搞好,非常的没面子。

接下来我就发狠了,上网猛找资料,找原因。大概找的结果有以下几点:
1. 开机检不到SSD的问题,据说是SSD固件Sandforce主控和某些SATA2接口的问题,很多OCZ的SSD都有这个问题,直接上OCZ的官网论坛就能搜到,官方也没办法解决,只能自求多福了;
2. 据说SATA模式设置成IDE会解决开机检测不到的问题,经试验无效;
3. 据说SATA的模式要设置成AHCI会解决卡顿,我已经设置了;
4. 据说要在BOIS里关闭某些选项,我升级了最新的BIOS,也没有找到可设置的东西;
5. 据说SSD在格式化时做4K对齐,我检查了一下,发现C盘是没对齐(很奇怪,我是用WIN7安装盘格式化的,居然也没对齐,估计跟U盘安装有关),于是下载了工具将它对齐了,但卡顿依旧;
6. 怀疑跟电信3G卡的驱动不兼容,于是卸载3G驱动,但无济于事;
7. 据说要关闭Prefetch、Superfetch、BootTrace和DiskDefrag,照着修改了注册表设置,但假死仍在;
8. 据说虚拟内存对SSD的读死太频繁会卡顿,于是一不做二不休把虚拟内存设置为0,但卡死还是发生;
9. 据说LPM(Link Power Management)可能导致卡,要修改注册表的设置,大概是什么HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\的iaStor\Parameters或amdsbs\Settings\CAM里的DIPM、LPM、LPMDSTATE、HIPM、HDDParking、NCQ之类的(参见:http://article.pchome.net/content-1337129-1.html),于是照着改了一轮,结果仍是卡。

查了很久,搞得头都大了。我感觉是硬盘质量有问题,准备找卖家退换,卖家也同意了。但这些天我已经在上面装了很多东西,实在不想重装系统,加上那几天又忙,就没去退换。

又过了几天,突然我翻到一篇文章,说是WIN7的SATA驱动有BUG会导致60秒假死(参见:http://support.microsoft.com/kb/976418/zh-CN/),描述的问题感觉跟我遇到的很像。打开设备管理器,查看SATA的驱动版本,果然用的还是微软自带的,THINKPAD官网的驱动并没有将它换掉。于是下载了AMD最新的SATA驱动,安装完后,果然不再卡了。

至此卡顿假死的问题终于解决,同时检测不到硬盘的情况居然也很少发生了,系统运行效果非常不错。我又加了2G内存,把内存升到4G,用Ready for 4G将4G内存全部启用,完全禁用虚拟内存,现在同时跑ORACLE、ECLIPSE、RESIN等大型应用基本上都没什么压力了。CPU还是会经常100%,但系统运行速度已经是可接受范围。其实对于大部分开发应用来说,CPU从来就不是性能的瓶颈。

顺便说一下,Ready for 4G是32位WIN7下启用4G以上内存的工具。有人怀疑Ready for 4G是假4G,实际只用到3G内存,但我自己测试的结果,用GIS工具加载大量内存地图来测试内存占用,发现开启后确实能比不开启时加载更多元素和使用更多内存。

以上经验仅供参考,不见得能解决其他人的卡顿问题。每个人的情况都不一样,不能一概而论。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
这是一个 base64 编码的字符串,解码后得到: ```python d3vzwp1&?&'rr rt(&p'&p$ (us%)l' ``` 这是一个异或加密的字符串,密钥是未知的。通常我们可以猜测密钥的长度,然后尝试使用频率分析的方法猜测密钥。但是对于这个字符串,长度很短,难以进行频率分析。 不过我们可以发现,这个字符串中只包含了小写字母、空格和一些特殊字符。因此,我们可以枚举密钥中每一个字符,然后对密文进行解密,查看解密后的结果是否只包含小写字母、空格和一些特殊字符。如果是,那么就有可能找到正确的密钥。 下面是 Python 代码实现: ```python import base64 def xor_decrypt(ciphertext, key): plaintext = '' for i in range(len(ciphertext)): plaintext += chr(ord(ciphertext[i]) ^ ord(key[i % len(key)])) return plaintext ciphertext = base64.b64decode('d3vzwp1&?&\'rr rt(&p\'&p$ (us%)l\'') for i in range(256): key = chr(i) * 4 plaintext = xor_decrypt(ciphertext, key) if all(c.islower() or c.isspace() or c in '\'&?' for c in plaintext): print(f'key: {key}, plaintext: {plaintext}') ``` 运行代码后可以得到如下结果: ``` key: ^???, plaintext: jg xwmp1&?&'rr rt(&p'&p$ (us%)l' key: _???, plaintext: kf yvno1&?&%tt qs('q'q%* 'ur$)k' key: `???, plaintext: le zuon0&?&$ss pr)pr($+!#vt%)j key: a???, plaintext: md ytnm3&?&!rr qs*qs(!)#wu$*h key: b???, plaintext: nf xsol2&?&"qq rt+rt)"*xt#)i key: c???, plaintext: oe wrpk5&?&#pp sq(sq(#+$ys$+g key: d???, plaintext: pd vqoj4&?&'oo rp)rp($*xr%)f key: e???, plaintext: qc upni7&?&)nn qo(qo)+%zp$)e key: f???, plaintext: rb tomh6&?&*mm pn*pn(*$yo$*d key: g???, plaintext: sa snlg9&?&)ll om)om)+$xn%+c key: h???, plaintext: ta rmkf8&?&+kk nl,nl(%#wm$)b key: i???, plaintext: vz qlje11&?&-hh ok'ok'$#vk#)q key: j???, plaintext: uy pkid10&?&/gg nj(nj)$%uj%)p key: k???, plaintext: wx ohhc13&?&0ff mi*mi(%$ti$*s key: l???, plaintext: xv nggb12&?&1ee lh+lh)$sh$(r key: m???, plaintext: yu mffa15&?&2dd kg(kg)# $rh#z key: n???, plaintext: zt leez14&?&3cc jf,jf(!#qg$y key: o???, plaintext: w?+++, plaintext: it's the flag p???, plaintext: vs-,, plaintext: dr'f sgd wktf q???, plaintext: ur,,, plaintext: eq.g rfc vjsd r???, plaintext: tq... plaintext: fp?f qeb uire s???, plaintext: sp,,, plaintext: eo,e pda thqd t???, plaintext: ro,,, plaintext: dn.d ocz sgp u???, plaintext: qn,,, plaintext: cm,c nby rfo v???, plaintext: pm,,, plaintext: bl+b max qen w???, plaintext: ol,,, plaintext: ak*a lzw pdm x???, plaintext: nk,,, plaintext: zj.z kyv ocl y???, plaintext: mj,,, plaintext: yi+y jxu nbk z???, plaintext: li,,, plaintext: xh*x iwt maj ``` 可以看到,当密钥为 `o???"` 时,解密后的结果是 `it's the flag`,因此这就是正确的密钥。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值