Operation Systems

Windows XP”进程性能计数器已禁用”问题解决办法

一大早接到同学的求救电话,说升级社保管理系统时,系统报“进程性能计数器已禁用”的错误,没法升级。

388689530456590452

心里想着无非是小事一桩,上网搜了搜解决方法,无非是两种方式,把性能进程计数器打开就好。

1.修改注册表,把Disable Performance Counters键参数设置为0

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance

2.在命令行运行lodctr /r

依葫芦画瓢把解决方法告诉同学,结果回复说系统重启后还是报错。只好自己远程登录到同学的电脑上,发现那兄弟还在用着Windows XP系统,自己又照着解决方法试了一遍,问题依旧。

看来是老革命碰上了新问题,为了保全哥在亲友圈中“电脑高手”的名声,只好打开一台XP虚机做试验了,经过一番折腾,总算把问题解决了。

原来同学的System32目录上,两个与性能计数器相关的文件,perfc009.dat与perfh009.dat不知啥原因,分别被改名为perfd009.dat和perfi009.dat了,把这两个文件名字改回去再运行升级程序,顺利完成。

懒得去探究为何文件会被改名了,不过想不明白的是社保系统的升级为毛需要去取性能进程计数器呢?

解决升级Ubuntu 16.04LTS后网卡不能启动方法

最近迷上了Docker,偷得两日闲想把Docker与公司的开发流程结合。下午手贱把试验的Ubuntu 14.04的版本升级至16.04LTS,更贱的顺手把公司的文件服务器也同时进行升级。

sudo do-release-upgrade -d

升级完成后提示需要重启,于是当然的

sudo reboot now

结果印证了什么叫No Zuo No Die, 系统报了个错就再也连不上了。

Failed to start reboot.target: Failed to setup environment correctly
See system logs and ‘systemctl status reboot.target’ for details.

u1

这下傻眼了,还有公司的文件服务器也是同样的问题。这SSH连接不上,只好乖乖地起个VMware vSphere Client连到公司的ESX服务器上去查怎么回事。发现原来的网卡eth0不见了,取之是一个名为ens32的网卡,想手工启动这个网卡,但系统报没有权限,用root用户也不行,看来此路不通。把虚拟机的网卡删除再重新安装,重启除了网卡名字变了外,还是然并卵。

u2

傻眼了,肠子都悔青了。自己做的坏事,怎么着也只能自己解决了。查了各种资料、各种折腾,最后总算搞明白是因为ubuntu 15版本的-udev升级,导致出现这个网卡丢失的问题。多种尝试后用以下方法解决。

1.先取得网卡的MAC地址

ip link

u3

由上图可知00:0c:20…..是俺丢掉的宝贝网卡的地址,把此地址记下来。

2. 创建/etc/udev/rules.d/10-network.rules 文件,增加网卡信息。

sudo vim  /etc/udev/rules.d/10-network.rules 

在文件中增加以下一行,保存并退出。

SUBSYSTEM==”net”, ACTION==”add”, ATTR{address}==”00:0c:29:de:d9:c1″, NAME=”eth0″

3.重启系统,可以发现丢失的网卡又回来了。

u4

NND,吓出一身冷汗。:)

Note: If no DNS resolution after upgraded, solve the problem as following code:

sudo rm /etc/resolv.conf
sudo ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u

俺的解法是简单粗暴直接,删掉了resolv.conf后直接创建一个新的:)。

 

修改固件在TL-WRD3310安装DD-WRT

家里的无线路由已经用了接近10年,加上随着设备的日渐增多,每次访问Google都要翻墙实在是一件麻烦的事情,于是动了自己写个DD-WRT的念头路由器。刚好公司有个TP-LINK的TL-WRD3310旧路由,刚好利用周五下午无心工作的时间做做试验。

上网找了一下,没能找到WRD3310的rom(严重鄙视)。继续Google,得知WRD3310在国外的对应型号是WRD3600,在DD-WRT官网可以找到WRD3600的rom,所以打着用这个rom刷到WRD3310的念头。翻墙下载了最新的Beta rom,连上WRD3310,选择刚下载的rom升级,结果报了一个“上传文件版本与机型不符”的错误,升级自动退出。

上传文件的版本与机型不符

一时卡壳了,但如果这样就认输不弄了,怎么能称爱折腾呢?重新上TP-Link的中国官网,下载了官方固件,用WinHEX打开固件文件,与DD-WRT的固件比较,终于找出通过修改固件写入的办法。

首先,把DD-WRT固件文件开头Offset=0x00000040处把机型从3600改为3100.

3

 

WRD3310

再把Offset=0x0000004C开始的16个字节暂时改为DC D7 3A A5 C3 95 98 FB DD F9 E7 F4 0E AE 47 38,然后保存。

MD5

用Hash计算出修改后固件文件的MD5,并复制下来。

Hash

再次用WinHex打开修改后的固件文件,用上面算出来的MD5替换掉刚才修改过的从Offset=0x0000004C开始的16个字节并保存。

更新MD5

再次通过网页连接WRD3310,用修改后的固件升级,这次顺利升级成功。

Update

升级成功后第一次登录设置路由器的用户名与密码,可以玩DD-WRT的各项设置了,把Shadowshocks写入,就可以实现自动翻墙功能了。同时,设备型号也变成了WRD3600了。

DD-WRT

 

PS: 别说我没提醒你,这个方法适用于所有型号的无线路由写入固件:)

解决Windows 10下Vmware桥接网络无法工作问题

系统升级到Windows 10后有一阵子没用Vmware,今天装了个新虚拟机,启动后发现虚拟机用桥接的方式拿不到IP地址。以为是用的Vmware Workstation 10版本过低的原因,重新装了个Vmware Workstation 12,结果更惨,桥接的网络服务压根就安装不成功。看来实在是有问题,只能求助Google,发现还真不少人碰到同样的问题。有微软社区的,也有Vmware社区的。

难道只能采用NAT模式来使用网络。做为一个多年习惯使用Bridge网络模式强迫症患者,让俺去用NAT实在是不能接受。在只要肯折腾,办法总比困难多的信念支持下,试验了接近1个小时,终于找到了把问题克服的方法。既然Windows不让安装程序去修改NIC接口,手动去修改呢?试试果然能行,步骤如下:

1.在Windows打开网络适配器,选择属性,打开属性窗口,点击“安装…”

网络属性

2. 在网络功能类型窗口选择服务,然后点“添加”

网络功能类型

3.选择要安装的网络服务,厂商选择Vmware Inc.,网络服务选择“Vmware Bridge Protocol”,点确定。

选择网络服务

4. 选择Vmware Workstation安装目录下的“vmnetbridge.dll”所在目录。

选择文件来源

5. 返回网络适配器属性窗口,确认Vmware Bridge Protocol已成功安装。

属性

6. 如果虚拟机正在运行,关闭虚拟机。打开虚拟网络编辑器,点击左下角的“还原默认设置”,把网络配置还原到默认值。

还原网络设置

7. 此时应该会显示桥接方式出来。强迫症的人伤不起,俺还是把桥接设置成唯一可选的网络连接方式。

bridge

8.重新启动虚拟机,此时应该可以看到虚拟机已正常连接网络,并成功拿到IP地址。

getip

 

OS X El Capitan创建U盘引导及Bootcamp破解

事先声明,谁再跟俺提说拿Macbook装Windows俺就抽谁。才不会跟你说弄一台破旧硬盘分区损坏导致系统进不去,俺弄了个通宵才搞好。

从来没有想像到过有一天会这样折腾,一个朋友的MBA磁盘分区误操作损坏,没法进入系统。之前电脑买回来后也不知道让人怎么弄,Apple Recovery之类的分区均进不去,想了N多招都不管用,只好出大杀器,重装系统。在网上找啊找资料,发现大部分文章都很傻,写着怎么在Macbook上安装windows均假设OS X系统是完好的,然后在同一台电脑上安装windows,很少有描述在另外一台电脑上安装的。因为朋友的电脑第二天办公要用,只好用笨办法,先安装OS X再安装Windows。

1.制作OS X安装引导U盘

如果没有OS X安装程序,自行到APP Store下载。 Jeet比较好运,自己的MBA上下载了OS X El Capitan的升级程序,但因为忙一直没有升级,所以节省了大量的下载时间。准备一只4GB以上的U盘或移动硬盘,利用createinstallmedia命令创建USB启动引导盘。默认情况下,OS X El Capitan的安装文件位于/Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia目录。

打开终端窗口,运行命令:sudo /Applications/Install\ OS\ X\ El\ Capitan.app/Contents/Resources/createinstallmedia –volume /Volumes/MyVolume –applicationpath /Applications/Install\ OS\ X\ El\ Capitan.app

创建USB引导盘。注意把/Volumes/MyVolume替换你实际的卷名。提示是否格式化U盘,选是,然后会开始拷贝文件,等待文件复制完成。

2.利用制作好的引导U盘安装OS X

把制作好的U盘插入MBA,开机时按住Option键,选择U盘启动。OS X安装过程省略。

3. 破解OS X El Capitan的Bootcamp

装好OS X El Capitan后,兴冲冲的打开Bootcamp助理,准备安装Windows 7,结果一看傻眼了。

1

明明没有光驱的一MBA,居然提示俺说有光驱,没法制作Windows安装盘。不怕,网上一大堆bootcamp破解的秘技,照着做就是了。但是,在OS X El Capitan中,修改完Info.plist文件后,压根没办法替换Content包中的文件,不管怎么改chmod\chown都不行。天哪,不要这样玩俺啦。

又是一番Google,最后方知道原来是OS X El Capitan系统完整性保护(System Integrity Protection)的关系,导致没去替换Content包中的文件。重新以修复模式进入电脑(开机Command+R),打开终端命令窗口,运行csrutil disable,然后重启电脑。终于可以成功替换Info.plist。再打开终端,运行sudo codesign -fs – /Applications/Utilities/Boot\ Camp\ Assistant.app/ –deep完成bootcamp破解。

再运行Bootcamp助理,终于可以制作Win7安装盘了。

2

4.总结

  • 如非必要,建议不要在MAC上安装Windows,想测试可以用虚拟机。
  • 备一个OS X安装启动盘很有必要。
  • Bootcamp工具的版本跟电脑型号、批次有关系,不同的机器需要不同的bootcamp工具,请仔细核对自己Macbook的版本选择相应的bootcamp工具。

感谢,本文图形来自极限苹果的这篇文章

在Ubuntu 13.10上安装WordPress

1.安装配置LAMP Server

  • 进入root用户模式
 sudo –s –H 
  • 安装MySql 
    apt-get install mysql-server mysql-client 
  • 安装Apache
apt-get install apache2 
  • 安装PHP支持 
 apt-get install php5 libapache2-mod-php5 
  • 创建info.php文件,确认PHP文件能够正常解析 
 vi /var/www/info.php 

           <?php

               phpinfo();

            ?>   

/etc/init.d/apache2 restart 

http://localhost/info.php

2. 安装并配置Wordpress

  • 安装Wordpress 
apt-get install wordpress 
  • 创建web要目录与wordpress的软链接 
ln –s /usr/share/wordpress  /var/www 
  • 解压并安装wordpress数据库 
gzip -d /usr/share/doc/wordpress/examples/setup-mysql.gz bash /usr/share/doc/wordpress/examples/setup-mysql -n wordpress localhost 
  • 重启web服务,确认wordpress可以访问 
/etc/init.d/apache2 restart

访问 http://localhost/wordpress可进行wordpress的设置.

3. 注意事项

  • 如果要使用WordPress的自动更新功能,必须把WordPress安装文件夹的所有权改为www-data用户 
chown -R www-data /usr/share/wordpress 
  • 若是要使用IP地址访问WordPress,必须做以下设置 

a).更改数据库中wp_options表下的siteurl内容,将其更改为宿主机的ip。如http://192.168.2.16/wordpress

b).更改数据库中wp_options表下的home内容(这个大概在第二页),同样改为http://192.168.2.16/wordpress

c).连接配置文件

ln -s /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php 
  • 如果模板或插件不能上传,需要改变wordpress配置文件WP_CONTENT_DIR指向到实际目录 
vi /etc/wordpress/config-localhost.php 

define(‘WP_CONTENT_DIR’, ‘/var/www/wordpress/wp-content’);

 

Installing RHEL EPEL Repo on Centos 5.x or 6.x

习惯了用yum来安装东西,试了下这篇文章提到的做法workable,再做一次搬运工。
原文出处: http://www.rackspace.com/knowledge_center/article/installing-rhel-epel-repo-on-centos-5x-or-6x

  • Authored by: Rackspace Support

How to install RHEL EPEL repository on Centos 5.x or 6.x

The following article will describe how to configure a CentOS 5.x-based or Centos 6.x-based system to use Fedora Epel repos and third party remi package repos. These package repositories are not officially supported by CentOS, but they provide much more current versions of popular applications like PHP or MYSQL.

Install the extra repositories

The first step requires downloading some RPM files that contain the additional YUM repository definitions. The instructions below point to the 64-bit versions that work with our Cloud Server instances.

Centos 5.x

wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
sudo rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

Centos 6.x

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
sudo rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

Once installed you should see some additional repo definitions under the /etc/yum.repos.d directory.

$ ls -1 /etc/yum.repos.d/epel* /etc/yum.repos.d/remi.repo
/etc/yum.repos.d/epel.repo
/etc/yum.repos.d/epel-testing.repo
/etc/yum.repos.d/remi.repo

Enable the remi repository

The remi repository provides a variety of up-to-date packages that are useful or are a requirement for many popular web-based services. That means it generally is not a bad idea to enable the remi repositories by default.
First, open the /etc/yum.repos.d/remi.repo repository file using a text editor of your choice:

sudo vim /etc/yum.repos.d/remi.repo

Edit the [remi] portion of the file so that the enabled option is set to 1. This will enable the remi repository.

name=Les RPM de remi pour Enterprise Linux $releasever - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority

You will now have a larger array of yum repositories from which to install.

    Linux增加swap空间

    为了测试Oracle的虚拟化解决方案,随便装了一台新的Linux虚拟,安装时报swap空间不够,通过以下步骤增加swap空间:

    修改/etc/fstab文件,增加如下一行:

    /opt/swap              swap                    swap    defaults        0 0

    使系统重启后swap设置生效。

    Install JDeveloper 11g on Mac OS 10.7

    让W510折腾得每天老是肩膀疼,而且觉得总不能老是把Mac Air当成在StarBucks装13工具,总得把它用起来吧。周末开始在Mac上折腾开发环境,Eclipse解压后就能运行,但是装JDeveloper还是费点劲才弄好。。
    1. 首先确认JDK已正确安装,在终端窗口运行”java -version“,如果没有安装可按系统向导步骤进行安装;
    2.确认Java 1.6是默认的JDK,打开实用工具—>Java 偏好设置,Java SE 6 64位应该在第一位,如果否调整64位JDK至第一位。
    3.创建Symbol Link

    cd /SystemLibrary/Frameworks/JavaVM.framework/Versions/1.6.0/Home/
    sudo mkdir jre
    cd jre
    sudo mkdir lib
    cd lib
    sudo ln -s ../../../Classes/classes.jar rt.jar

    3. 现在在终端窗口运行Java -version,提示信息类似如下:

    java version “1.6.0_31”
    Java(TM) SE Runtime Environment (build 1.6.0_31-b04-415-11M3635)
    Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_31-b01-415, mixed mode)

    4.到OTN网站http://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html 下载JDeveloper 11g 11.1. 1.6.0的通用版本jdevstudio11116install.jar。

    5. 运行jdevstudio11116install.jar,安装程序正确找到本地JDK,下一步下一步即可完成安装。

     更详尽的信息可以在https://blogs.oracle.com/shay/entry/installing_jdeveloper_on_mac_os 找到, thanks Shay。

    64位OEL 6.1下UCM 11g OracleTextSearch的Text Conversion错误

    客户系统上线前,发现在生产环境的Oracle Enterprise Linux 6.1上的UCM 11gR5打开文件时,一直显示索引错误,信息“Text conversion of  the file …… failed. Content has been indexed with Info only. Resubmit should only be performed if the problem has been resolved.”如下图所示:

    打开indexer的trace,点击重新提交后,得到以下信息,初步判断是因为textexport找不到必要的库文件导致。

    >indexer/7 01.13 14:10:03.450   index update work InputFilePath is:   indexer/7  01.13 14:10:03.450   index update work OutputFilePath is: >indexer/7    01.13 14:10:03.450   index update work Sending document to conversion >(internal)/7  01.13 14:10:03.496  TextExport #7531#8FDB#7A0B ‘TextExport’ #610F#5916#4E2D#6B62#3002 intradoc.common.ServiceException: !csErrorReturnedByProcess,TextExport!$/u01/app/oracle/Middleware/Oracle_ECM1/ucm/idc/components/ContentAccess-linux/linux/lib/contentaccess/textexport: error while loading shared libraries: libz.  (internal)/7   01.13 14:10:03.496   TextExport         at intradoc.taskmanager.TaskLauncher.launchExe(TaskLauncher.java:381)  (internal)/7  01.13 14:10:03.496  TextExport         at intradoc.taskmanager.TaskMonitor$1.run(TaskMonitor.java:116)  (internal)/7  01.13 14:10:03.496   TextExport         at java.lang.Thread.run(Thread.java:662)

    没有仔细看trace信息内容,开始在网上和oracle support网站找text conversion相关的信息,相关的解决方案主要是确认textexport的执行权限或者是设置LD_LIBRARY_PATH和ContentAccessExtraLibDir(在intradoc.cfg文件)几种方式,但是试过这几种方式都不奏效,如此试了几次,也只好放弃。

    再一次回到正常分析的路子上来,从trace信息中可以看出是找到到共享库libz.,尝试在/usr/lib和/usr/lib64找libz.so,有64位的文件,但是没有32位的文件。难道象很多程序一样,UCM也是用32位的libz.so来执行text conversion的命令,google了一把,发现libz.so是zlib包里,用yum install zlib.i686实现相关包的安装,确认libz.so存在于相关的文件夹下,重新启动Content Server,再点击重新提交,问题解决。

    Repository Manager重新提交所有文档,再重建索引,完成已检入文件的全文索引支持。