<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>撒旦 &#187; 技术</title>
	<atom:link href="http://blog.xnux.net/category/tech/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xnux.net</link>
	<description>still life ...</description>
	<lastBuildDate>Wed, 06 Jan 2010 18:34:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>整理一下lighttpd+php在iPhone上的安装的方法</title>
		<link>http://blog.xnux.net/2009/04/03/iphone_lighttpd_php5_mysql5/</link>
		<comments>http://blog.xnux.net/2009/04/03/iphone_lighttpd_php5_mysql5/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 02:34:57 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[mod_fastcgi]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=83</guid>
		<description><![CDATA[&#62; Win32使用putty，linux和mac osx使用ssh连接到iPhone;
&#62; 安装php和lighttpd;
apt-get update; apt-get install php; apt-get install lighttpd
&#62; 创建布署目录;
mkdir -p /var/www/htdocs
&#62; 修改lighttpd配置;
vi /usr/local/etc/lighttpd.conf
修改:
server.document-root = "/var/www/htdocs"
server.modules = ( "mod_fastcgi" )
server.tag = "lighttpd 1.4.18/PHP 5.2.8 (cgi-fcgi)"   #此处可以随意填写
server.pid-file = "/var/run/lighttpd.pid"
index-file.names = ( "index.php", "index.py", "index.html", "index.htm" ) #根据自己需要填写
static-file.exclude-extensions = ( ".php", ".fcgi", ".cgi", ".py" )
 fastcgi.map-extensions = ( ".php3"=&#62;".php" )
 fastcgi.server = (
    ".php"=&#62;((
       [...]]]></description>
			<content:encoded><![CDATA[<p>&gt; Win32使用putty，linux和mac osx使用ssh连接到iPhone;</p>
<p>&gt; 安装php和lighttpd;</p>
<blockquote><p>apt-get update; apt-get install php; apt-get install lighttpd</p></blockquote>
<p>&gt; 创建布署目录;</p>
<blockquote><p>mkdir -p /var/www/htdocs</p></blockquote>
<p>&gt; 修改lighttpd配置;</p>
<blockquote><p>vi /usr/local/etc/lighttpd.conf</p>
<p>修改:</p>
<p>server.document-root = "<span style="color: #ff0000;">/var/www/htdocs</span>"<br />
server.modules = ( <span style="color: #ff0000;">"mod_fastcgi"</span> )<br />
server.tag = "<span style="color: #ff0000;">lighttpd 1.4.18/PHP 5.2.8 (cgi-fcgi)</span>"   #此处可以随意填写<br />
server.pid-file = "<span style="color: #ff0000;">/var/run/lighttpd.pid</span>"<br />
index-file.names = (<span style="color: #ff0000;"> "index.php", "index.py", "index.html", "index.htm"</span> ) #根据自己需要填写<br />
static-file.exclude-extensions = ( <span style="color: #ff0000;">".php"</span>, ".fcgi", ".cgi", ".py" )<br />
<span style="color: #ff0000;"> fastcgi.map-extensions = ( ".php3"=&gt;".php" )</span><br />
<span style="color: #ff0000;"> fastcgi.server = (<br />
    ".php"=&gt;((<br />
        "host"=&gt;"127.0.0.1",<br />
        "port"=&gt;9000,<br />
        "broken-scriptfilename"=&gt;"enable",<br />
        "fix-root-scriptname"=&gt;"enable"<br />
    ))<br />
)</span><br />
cgi.assign = (<br />
     ".py" =&gt; "/usr/bin/python"  # 如果安装python的话，可以考虑添加这行<br />
)</p>
<p>#其它保持不变<br />
memetype.assign ...</p></blockquote>
<p>&gt; 运行;</p>
<blockquote><p>php-cgi -b 127.0.0.1:9000 &amp;</p>
<p>lighttpd -f /usr/local/etc/lighttpd.conf &amp;</p></blockquote>
<p>&gt; 测试;</p>
<blockquote><p>echo "&lt;?php phpinfo(); ?&gt;" &gt; /var/www/htdocs/info.php</p>
<p>打开safari，输入地址 http://localhost/info.php</p></blockquote>
<p> </p>
<p>以上操作必备条件，jb过的iPhone，已经安装unix subsystem，mobile terminal，cydia，openssl，openssh。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/04/03/iphone_lighttpd_php5_mysql5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash毒药收集</title>
		<link>http://blog.xnux.net/2009/04/01/flash_poisons/</link>
		<comments>http://blog.xnux.net/2009/04/01/flash_poisons/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 03:06:47 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[破坏]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash cs]]></category>
		<category><![CDATA[flashplayer]]></category>
		<category><![CDATA[Matrix3D]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=67</guid>
		<description><![CDATA[第一剂:
new Matrix3D().append(null);
杀伤力: 4星
辐射面: flash cs4, flashplayer 10.*, as3
症状: flash cs4 意外退出，flashplayer 10.*直接crash
来源: D.S
第二剂:
var a=&#60;a&#62;&#60;n/&#62;&#60;/a&#62;
a.@* = a.@*;
a.toString();
杀伤力: 5星
辐射面: flash cs3/4, flashplayer 9/10, as3
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash
来源: Ticore's Blog
第三剂:
Object['isPrototypeOf']();
Object['hasOwnPrototype']();
Object['propertyIsEnumerable']();
Object['setPropertyIsEnumerable']();
//(以上任意一行)
杀伤力: 5星
辐射面: flash cs3/4, flashplayer 9/10, as3
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash
来源: Ticore's Blog
]]></description>
			<content:encoded><![CDATA[<p><strong>第一剂:</strong></p>
<p>new Matrix3D().append(null);</p>
<p>杀伤力: 4星<br />
辐射面: flash cs4, flashplayer 10.*, as3<br />
症状: flash cs4 意外退出，flashplayer 10.*直接crash<br />
来源: D.S</p>
<p><strong>第二剂:</strong></p>
<p>var a=&lt;a&gt;&lt;n/&gt;&lt;/a&gt;<br />
a.@* = a.@*;<br />
a.toString();</p>
<p>杀伤力: 5星<br />
辐射面: flash cs3/4, flashplayer 9/10, as3<br />
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash<br />
来源: <a href="http://ticore.blogspot.com/">Ticore's Blog</a></p>
<p><strong>第三剂:</strong></p>
<p>Object['isPrototypeOf']();<br />
Object['hasOwnPrototype']();<br />
Object['propertyIsEnumerable']();<br />
Object['setPropertyIsEnumerable']();</p>
<p>//(以上任意一行)</p>
<p>杀伤力: 5星<br />
辐射面: flash cs3/4, flashplayer 9/10, as3<br />
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash<br />
来源: <a href="http://ticore.blogspot.com/">Ticore's Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/04/01/flash_poisons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>你怎么用iPhone？</title>
		<link>http://blog.xnux.net/2009/03/25/iphone_do_anything/</link>
		<comments>http://blog.xnux.net/2009/03/25/iphone_do_anything/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 12:23:21 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[3proxy]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[google ape]]></category>
		<category><![CDATA[gprs]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[winscp]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=48</guid>
		<description><![CDATA[iPhone的操作系统是mac os x，越狱的iPhone通常都会带上unix subsystem，也就意味着iPhone已经不再是手机那么简单，反正在我的眼里它就是一台可以随身携带的迷你unix server，不过要借助ssh客户端软件，比如putty。
列一下我在iPhone上最常用的命令行工具:
&#62; svn：用于从开源社区，如Google Code获取源码;
&#62; wget：命令行下载工具;
&#62; apt：基于命令行的软件管理工具，可以完成cydia所能做的事;
&#62; links：基于命令行的浏览器，超屌，应用场景嘛，自己想想，类似的工具还有lynx，可以用apt-get安装;
&#62; top：类似windows任务管理器，不过不能直接关掉进程，需要使用kill/killall来关闭;
&#62; killall：关闭指定程序名称的所有进程，killall SpringBoard;
&#62; vim：用来代替subsystem自带的vi，我是直接用apt-get install vim安装的，支持大部分语法高亮，我另外安装了actionscript 1.0 - 3.0的语法包;
&#62; httpd：http服务器，可以装php5，当开发用的server来跑;
&#62; sqlite：命令行下访问通讯录等数据库;
&#62; google appengine sdk：开发使用google ape服务python应用;
&#62; 3proxy：在iPhone上架设代理服务器，特殊情形下，用于笔记本利用wifi通过iPhone GPRS上网，包含socks/http(s)/imap;
&#62; iphone sdk：可以在iPhone上开发iPhone使用的xcode代码(有点绕)，需要安装gcc for iphone;
还有不少东东就没有写，总而言之，你还真“别拿iPhone不当电脑” ，如果你愿意，可以把iPhone当网站服务器用，嘿嘿...
这些东东已经小用了数月，也小有体会，如果有同样需求要的同学，可以留言，一起发掘iPhone的潜力，下面上几张小图。
 
 
]]></description>
			<content:encoded><![CDATA[<p>iPhone的操作系统是mac os x，越狱的iPhone通常都会带上unix subsystem，也就意味着iPhone已经不再是手机那么简单，反正在我的眼里它就是一台可以随身携带的迷你unix server，不过要借助ssh客户端软件，比如putty。</p>
<p>列一下我在iPhone上最常用的命令行工具:</p>
<p>&gt; svn：用于从开源社区，如<a title="google code" href="http://code.google.com/" target="_blank">Google Code</a>获取源码;</p>
<p>&gt; wget：命令行下载工具;</p>
<p>&gt; apt：基于命令行的软件管理工具，可以完成cydia所能做的事;</p>
<p>&gt; links：基于命令行的浏览器，超屌，应用场景嘛，自己想想，类似的工具还有lynx，可以用apt-get安装;</p>
<p>&gt; top：类似windows任务管理器，不过不能直接关掉进程，需要使用kill/killall来关闭;</p>
<p>&gt; killall：关闭指定程序名称的所有进程，killall SpringBoard;</p>
<p>&gt; vim：用来代替subsystem自带的vi，我是直接用apt-get install vim安装的，支持大部分语法高亮，我另外安装了actionscript 1.0 - 3.0的语法包;</p>
<p>&gt; httpd：http服务器，可以装php5，当开发用的server来跑;</p>
<p>&gt; sqlite：命令行下访问通讯录等数据库;</p>
<p>&gt; google appengine sdk：开发使用google ape服务python应用;</p>
<p>&gt; 3proxy：在iPhone上架设代理服务器，特殊情形下，用于笔记本利用wifi通过iPhone GPRS上网，包含socks/http(s)/imap;</p>
<p>&gt; iphone sdk：可以在iPhone上开发iPhone使用的xcode代码(有点绕)，需要安装gcc for iphone;</p>
<p>还有不少东东就没有写，总而言之，你还真“别拿iPhone不当电脑” ，如果你愿意，可以把iPhone当网站服务器用，嘿嘿...</p>
<p>这些东东已经小用了数月，也小有体会，如果有同样需求要的同学，可以留言，一起发掘iPhone的潜力，下面上几张小图。</p>
<div id="attachment_55" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_sqlite3.jpg"><img class="size-thumbnail wp-image-55 " title="iphone_putty_sqlite3" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_sqlite3-150x123.jpg" alt="iphone_putty_sqlite3" width="150" height="123" /></a><p class="wp-caption-text">sqlite</p></div>
<div id="attachment_54" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_links.jpg"><img class="size-thumbnail wp-image-54 " title="iphone_putty_links" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_links-150x150.jpg" alt="links for iPhone" width="150" height="150" /></a><p class="wp-caption-text">links</p></div>
<p> </p>
<div id="attachment_53" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_as.jpg"><img class="size-thumbnail wp-image-53 " title="iphone_putty_as" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_as-150x150.jpg" alt="actionscript syntax" width="150" height="150" /></a><p class="wp-caption-text">actionscript syntax</p></div>
<div id="attachment_52" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_ape.jpg"><img class="size-thumbnail wp-image-52 " title="iphone_putty_ape" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_ape-150x150.jpg" alt="google ape" width="150" height="150" /></a><p class="wp-caption-text">google ape</p></div>
<p> </p>
<div id="attachment_51" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty.jpg"><img class="size-thumbnail wp-image-51 " title="iphone_putty" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty-150x150.jpg" alt="python" width="150" height="150" /></a><p class="wp-caption-text">python</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/03/25/iphone_do_anything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3处理GB2312数据的严重BUG</title>
		<link>http://blog.xnux.net/2009/01/20/as3_gb2312_bug/</link>
		<comments>http://blog.xnux.net/2009/01/20/as3_gb2312_bug/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 07:47:43 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[#1085]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Error #1085]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=22</guid>
		<description><![CDATA[BUG描述:
flash as3使用URLLoader &#38; URLRequest加载gb2312文本时，字符串内存边界判断有误，导致读出的数据结尾有随机乱码或者数据读取不完整。
捉虫全记录:
&#62; 使用as3加载解析XML时，发现偶尔会抛出XML格式错误的异常，运气不好的话出现频率非常之高;
&#62; 用trace显示数据内容时，发现文件有时加载不全、有时尾部有随机乱码;
&#62; 使用抓包软件发现数据完全正常，所以肯定是flash搞的鬼;
&#62; 开始怀疑文本编码导致的问题，将文件存为utf-8后，完全没问题;
&#62; 试了多次，随机内容有时完全是无关的东东，偶尔还有其它进程里的一些数据;
&#62; 到此为止，可以肯定是内存字符串结束符处理问题;
影响面:
flashplayer 9, 10
解决方案:
方案一: 尽量不要使用gb2312数据源，如果非用不可，可参考《方案二》;
方案二: 建立socket连接，自已发送http header，接收数据进行解析，如果遇到跨域问题则看《方案三》;
方案三: 在数据尾部加入特殊的结束符(比如:)，数据加载完成后把结束符后的内容全部去掉，如果遇到加载不完整的情况，则重试加载(记得要限制次数)，不能100%保证，经过测试重试后成功率99.9%;
附件:
BUG演示程序
 
根据allen的处理方法，进一步追查了原因，可以确切的定位出是ByteArray.toString方法的BUG所致:
&#62; URLLoader.data 是 ByteArray 类型，所以只要把 e.target.data as String 改为 e.target.data.readMultiByte(e.target.data.length, "gb2312") 即可以解决问题;
&#62; e.target.data as String 实际上是执行了 ByteArray 的 toString 方法，那么很可能BUG是出在 ByteArray.toString 方法;
&#62; ByteArray相当于是向量数组，length值应该是根据写入数据长度来改变，所以length值无论如何都是正确的，所以按上面 readMultiByte 方法读取，不会读出多余的数据，而 ByteArray.toString 方法并不能使用属性length来获取数据长度，需要根据编码类型来动态计算，正常来说是不会有错的，错就错在处理部分编码类型时使用了strlen或sizeof去获取数据长度，而ByteArray是可以存任何二进制数据的，当然不会有\0结束，这样的情形下strlen和sizeof是绝对不可信赖的;
&#62; 只有这样才能解释 toString 的BUG。
 
结论是:
不要尝试使用 ByteArray.toString 的方法来获取 gb 编码的数据，最好是根据目标编码，使用 readMultiByte 读取。
]]></description>
			<content:encoded><![CDATA[<p><strong>BUG描述:</strong></p>
<p>flash as3使用URLLoader &amp; URLRequest加载gb2312文本时，字符串内存边界判断有误，导致读出的数据结尾有随机乱码或者数据读取不完整。</p>
<p><strong>捉虫全记录:</strong></p>
<p>&gt; 使用as3加载解析XML时，发现偶尔会抛出XML格式错误的异常，运气不好的话出现频率非常之高;</p>
<p>&gt; 用trace显示数据内容时，发现文件有时加载不全、有时尾部有随机乱码;</p>
<p>&gt; 使用抓包软件发现数据完全正常，所以肯定是flash搞的鬼;</p>
<p>&gt; 开始怀疑文本编码导致的问题，将文件存为utf-8后，完全没问题;</p>
<p>&gt; 试了多次，随机内容有时完全是无关的东东，偶尔还有其它进程里的一些数据;</p>
<p>&gt; 到此为止，可以肯定是内存字符串结束符处理问题;</p>
<p><strong>影响面:</strong></p>
<p>flashplayer 9, 10</p>
<p><strong>解决方案:</strong></p>
<p><em>方案一: </em>尽量不要使用gb2312数据源，如果非用不可，可参考《方案二》;</p>
<p><em>方案二: </em>建立socket连接，自已发送http header，接收数据进行解析，如果遇到跨域问题则看《方案三》;</p>
<p><em>方案三: </em>在数据尾部加入特殊的结束符(比如:<!--end-->)，数据加载完成后把结束符后的内容全部去掉，如果遇到加载不完整的情况，则重试加载(记得要限制次数)，不能100%保证，经过测试重试后成功率99.9%;</p>
<p><strong>附件:</strong></p>
<p><a href="http://xnux.net/demo/flash_bug_gb2312.zip">BUG演示程序</a></p>
<p> </p>
<p>根据<a href="http://www.cbmland.com/">allen</a>的处理方法，进一步追查了原因，可以确切的定位出是ByteArray.toString方法的BUG所致:</p>
<p>&gt; URLLoader.data 是 ByteArray 类型，所以只要把 e.target.data as String 改为 e.target.data.readMultiByte(e.target.data.length, "gb2312") 即可以解决问题;</p>
<p>&gt; e.target.data as String 实际上是执行了 ByteArray 的 toString 方法，那么很可能BUG是出在 ByteArray.toString 方法;</p>
<p>&gt; ByteArray相当于是向量数组，length值应该是根据写入数据长度来改变，所以length值无论如何都是正确的，所以按上面 readMultiByte 方法读取，不会读出多余的数据，而 ByteArray.toString 方法并不能使用属性length来获取数据长度，需要根据编码类型来动态计算，正常来说是不会有错的，错就错在处理部分编码类型时使用了strlen或sizeof去获取数据长度，而ByteArray是可以存任何二进制数据的，当然不会有\0结束，这样的情形下strlen和sizeof是绝对不可信赖的;</p>
<p>&gt; 只有这样才能解释 toString 的BUG。<br />
 <br />
<strong>结论是:</strong><br />
不要尝试使用 ByteArray.toString 的方法来获取 gb 编码的数据，最好是根据目标编码，使用 readMultiByte 读取。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/01/20/as3_gb2312_bug/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>老树开新花-T42安装Leopard</title>
		<link>http://blog.xnux.net/2008/01/20/t42_leopard/</link>
		<comments>http://blog.xnux.net/2008/01/20/t42_leopard/#comments</comments>
		<pubDate>Sat, 19 Jan 2008 16:41:41 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[破坏]]></category>
		<category><![CDATA[bootrec]]></category>
		<category><![CDATA[leopard]]></category>
		<category><![CDATA[mac os x 10.5]]></category>
		<category><![CDATA[rebuildbcd]]></category>
		<category><![CDATA[suse linux]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/2008/01/20/%e8%80%81%e6%a0%91%e5%bc%80%e6%96%b0%e8%8a%b1-t42%e5%ae%89%e8%a3%85leopard/</guid>
		<description><![CDATA[最近经常看到Leopard的漂亮界面，难免有些心动，可怜的T42本本又要被我折磨了...
先说说系统配置吧:
IBM T42 2372-8ZH
CPU: 1.70G 2M
内存: 1G
硬盘: 80G
显卡: ATI Radeon Mobility 9600
屏幕: 14.1寸 1400*1050
OS: Vista + Suse
启动管理: Grub
Suse安装之后很少用，为了体验Leopard，就删除了，再说Vista是工作环境，数据不能随便动。
做好准备工作:
Leopard光盘，Vista光盘，放有bootfix文件的U盘，EasyBCD。
在Windows下用diskpart分区

diskpart
list disk
select disk [x]
create partition primary id=af
select partition [y]
exit

要安装Leopard，MBR是一定会被覆盖的了，索性先不用理会它，等安装好Leopard再恢复吧。
用Leopard光盘启动，安装完成，重启，发现leopard不能自行启动，显示HSF+ partition error，继续光盘启动，参数-s，进入命令行。
查看磁盘信息，后面的指令要针对相应的分区ID，所以一定要看仔细了

diskutil list

我的Leopard分区是disk0s4，卷标为Leopard。

cd /Volumes/[U盘的卷标]/bootfix
dd if=/usr/standalone/i386/boot1h of=/dev/disk0s4 bs=512 count=1
umount /Volumes/Leopard
./startupfiletool -v /dev/disk0s4 /usr/standalone/i386/boot
reboot

如果不出意外，Leopard的Darwin应该是修复成功了。
用Windows光盘引导，进入修复控制台，按以下步骤修复引导区和引导菜单。

bootrec.exe /fixmbr
bootrec.exe /rebuildbcd
c:\windows\system32\shutdown.exe -r -t 0

C:区为vista安装的分区，shutdown指令用来快速重启(纯属个人习惯)，当然也可以exit，然后点击重启按钮。
回到Vista系统，用EasyBCD增加Mac的启动项，保存重启。
在Boot Manager启动菜单上即可以看到Leopard的引导项，选择进入即可进入到Leopard的启动项，享受Leopard吧！
]]></description>
			<content:encoded><![CDATA[<p>最近经常看到Leopard的漂亮界面，难免有些心动，可怜的T42本本又要被我折磨了...<span id="more-17"></span></p>
<p>先说说系统配置吧:<br />
IBM T42 2372-8ZH<br />
CPU: 1.70G 2M<br />
内存: 1G<br />
硬盘: 80G<br />
显卡: ATI Radeon Mobility 9600<br />
屏幕: 14.1寸 1400*1050<br />
OS: Vista + Suse<br />
启动管理: Grub</p>
<p>Suse安装之后很少用，为了体验Leopard，就删除了，再说Vista是工作环境，数据不能随便动。<br />
做好准备工作:<br />
Leopard光盘，Vista光盘，放有bootfix文件的U盘，EasyBCD。<br />
在Windows下用diskpart分区<br />
<code><br />
diskpart<br />
list disk<br />
select disk [x]<br />
create partition primary id=af<br />
select partition [y]<br />
exit<br />
</code></p>
<p>要安装Leopard，MBR是一定会被覆盖的了，索性先不用理会它，等安装好Leopard再恢复吧。<br />
用Leopard光盘启动，安装完成，重启，发现leopard不能自行启动，显示HSF+ partition error，继续光盘启动，参数-s，进入命令行。<br />
查看磁盘信息，后面的指令要针对相应的分区ID，所以一定要看仔细了<br />
<code><br />
diskutil list<br />
</code><br />
我的Leopard分区是disk0s4，卷标为Leopard。<br />
<code><br />
cd /Volumes/[U盘的卷标]/bootfix<br />
dd if=/usr/standalone/i386/boot1h of=/dev/disk0s4 bs=512 count=1<br />
umount /Volumes/Leopard<br />
./startupfiletool -v /dev/disk0s4 /usr/standalone/i386/boot<br />
reboot<br />
</code><br />
如果不出意外，Leopard的Darwin应该是修复成功了。<br />
用Windows光盘引导，进入修复控制台，按以下步骤修复引导区和引导菜单。<br />
<code><br />
bootrec.exe /fixmbr<br />
bootrec.exe /rebuildbcd<br />
c:\windows\system32\shutdown.exe -r -t 0<br />
</code><br />
C:区为vista安装的分区，shutdown指令用来快速重启(纯属个人习惯)，当然也可以exit，然后点击重启按钮。<br />
回到Vista系统，用EasyBCD增加Mac的启动项，保存重启。<br />
在Boot Manager启动菜单上即可以看到Leopard的引导项，选择进入即可进入到Leopard的启动项，享受Leopard吧！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2008/01/20/t42_leopard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用Secure修复Grub</title>
		<link>http://blog.xnux.net/2008/01/13/secure_fix_grub/</link>
		<comments>http://blog.xnux.net/2008/01/13/secure_fix_grub/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 20:13:26 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[grub]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[suse]]></category>
		<category><![CDATA[修复]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/2008/01/13/%e4%bd%bf%e7%94%a8secure%e4%bf%ae%e5%a4%8dgrub/</guid>
		<description><![CDATA[我的本本是Windows+Suse双系统, 使用Grub引导, 在windows下用磁盘工具改变分区后, Grub提示Error: 15, 手头上有Windows和Suse的光盘...
大部分Linux安装盘都有修复模式(Secure), 一直没有用过, 机会终于来了- -&#124;&#124;
首先说一下情况:
我机器只有1块硬盘, 分区列表如下:

/dev/sda1-&#62;Windows C: &#60;= ntfs, Windows安装分区
/dev/sda2-&#62;Windows D: &#60;= ntfs
/dev/sda3-&#62;Windows E: &#60;= fit32
/dev/sda4-&#62;扩展分区
/dev/sda5-&#62;Swap &#60;= Linux Swap
/dev/sda6-&#62;Linux / &#60;= ext3
/dev/sda7-&#62;Linux /Root &#60;= ext3

fit32本来是用做Suse与Window交换文件使用的, 因为空间吃紧就打算合并到Windows的D:, 合并后分区的序号发生了变化, 导致Grub出错.
使用Suse安装盘启动, 进入Secure模式, 使用root登录, 不要求密码, 整个修复过程分2步:
1. 修复Grub;
2. 修改Grub的menu.lst;
第1步:

grub
grub&#62; root (hd0, 5)
回显分区类型信息
grub&#62; setup (hd0)
回显成功的消息
grub&#62; quit

第2步:
a) 挂载硬盘上的 / 分区到Secure环境

&#62; mkdir /tmp/suse
&#62; mount -t ext3 /dev/sda6 /tmp/suse

b) 修改menu.lst

&#62; cd [...]]]></description>
			<content:encoded><![CDATA[<p>我的本本是Windows+Suse双系统, 使用Grub引导, 在windows下用磁盘工具改变分区后, Grub提示Error: 15, 手头上有Windows和Suse的光盘...<span id="more-16"></span></p>
<p>大部分Linux安装盘都有修复模式(Secure), 一直没有用过, 机会终于来了- -||</p>
<p>首先说一下情况:</p>
<p>我机器只有1块硬盘, 分区列表如下:<br />
<code><br />
/dev/sda1-&gt;Windows C: &lt;= ntfs, Windows安装分区<br />
/dev/sda2-&gt;Windows D: &lt;= ntfs<br />
/dev/sda3-&gt;Windows E: &lt;= fit32<br />
/dev/sda4-&gt;扩展分区<br />
/dev/sda5-&gt;Swap &lt;= Linux Swap<br />
/dev/sda6-&gt;Linux / &lt;= ext3<br />
/dev/sda7-&gt;Linux /Root &lt;= ext3<br />
</code><br />
fit32本来是用做Suse与Window交换文件使用的, 因为空间吃紧就打算合并到Windows的D:, 合并后分区的序号发生了变化, 导致Grub出错.</p>
<p>使用Suse安装盘启动, 进入Secure模式, 使用root登录, 不要求密码, 整个修复过程分2步:</p>
<p>1. 修复Grub;<br />
2. 修改Grub的menu.lst;</p>
<p>第1步:<br />
<code><br />
grub<br />
grub&gt; root (hd0, 5)<br />
回显分区类型信息<br />
grub&gt; setup (hd0)<br />
回显成功的消息<br />
grub&gt; quit<br />
</code><br />
第2步:</p>
<p>a) 挂载硬盘上的 / 分区到Secure环境<br />
<code><br />
&gt; mkdir /tmp/suse<br />
&gt; mount -t ext3 /dev/sda6 /tmp/suse<br />
</code><br />
b) 修改menu.lst<br />
<code><br />
&gt; cd /tmp/suse/boot/grub/<br />
&gt; vi menu.lst<br />
</code><br />
将menu.lst里所有的(hd0,6)改为(hd0,5), 保存<br />
<code><br />
Reboot<br />
</code><br />
任务完成!</p>
<p><strong>注意:</strong> 具体情况具体分析, 进入Secure模式后, 建议第一件事就是 fdisk -l 查看一下分区信息, 再根据情况操作, 风险自担!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2008/01/13/secure_fix_grub/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让WordPress的Dashboard干净起来</title>
		<link>http://blog.xnux.net/2008/01/13/clean-wordpress-dashboard/</link>
		<comments>http://blog.xnux.net/2008/01/13/clean-wordpress-dashboard/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 19:32:59 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[clear]]></category>
		<category><![CDATA[clearn]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/2008/01/13/%e8%ae%a9dashboard%e5%b9%b2%e5%87%80%e8%b5%b7%e6%9d%a5/</guid>
		<description><![CDATA[在WordPress管理面板Dashboard页面, 有WordPress Development Blog和Other WordPress News两个栏目, 不知道你有没有看我, 反正我是觉着碍眼, 下面我们就来干掉它...
打开wp-admin/index.php页面, 将下面几行JS脚本注释或者删除:

&#60;script type="text/javascript"&#62;
jQuery(function() {
 jQuery('#incominglinks').load('index-extra.php?jax=incominglinks');
 jQuery('#devnews').load('index-extra.php?jax=devnews');
 jQuery('#planetnews').load('index-extra.php?jax=planetnews');
});
&#60;/script&#62;OK, 世界清静了...

]]></description>
			<content:encoded><![CDATA[<p>在WordPress管理面板Dashboard页面, 有WordPress Development Blog和Other WordPress News两个栏目, 不知道你有没有看我, 反正我是觉着碍眼, 下面我们就来干掉它...<span id="more-15"></span></p>
<p>打开wp-admin/index.php页面, 将下面几行JS脚本注释或者删除:</p>
<p><code><br />
&lt;script type="text/javascript"&gt;<br />
jQuery(function() {<br />
 jQuery('#incominglinks').load('index-extra.php?jax=incominglinks');<br />
 jQuery('#devnews').load('index-extra.php?jax=devnews');<br />
 jQuery('#planetnews').load('index-extra.php?jax=planetnews');<br />
});<br />
&lt;/script&gt;</code><code>OK, 世界清静了...</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2008/01/13/clean-wordpress-dashboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
