電腦相關

Windows Vista/7開機之後連不上網路磁碟機

症狀是開機之後,右下角出現「網路磁碟機尚未連接」之類的錯誤訊息。需要手動去點一下網路磁碟機才會重新連線上去。之前Windows XP的時候沒有這種問題,是換了Win7之後才出現的,可能是因為開機變快了,網路還沒接上就試著連接網路磁碟機害的?

查了一下,解決方法不是很多,倒是不少人在抱怨Vista以來這個問題一直沒有修好。

AnswerWindows 7 Still Not (Always) Reconnecting to Mapped Drive

我最後是用了有點笨的辦法,寫了一個connect.bat
net use q: \esxi-win7E
然後在Windows工作排程器那邊設定成登入後延遲15秒才執行這個命令,錯誤訊息不會出現,也不需要手動去點網路磁碟機了。

Win7把日文輸入法當成中文來裝

將日文輸入法裝在中文語系

其實只改了一個字,win7的輸入法是IMJP10.IME,這樣子作的話x64的程式也可以正常輸入中文了。(事實上除了notepad之外,我還真沒碰到非得要輸入中文的x64程式)

REGEDIT4
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard LayoutsE0300404]
"Ime File"="IMJP10.IME"
"Layout File"="Kbdjpn.dll"
"Layout Text"="日文輸入系統 (MS-IME2010)"

結果長這樣

於是切換輸入法就只需要ctrl-shift,而不需要alt-shift、ctrl-shift混用了

VMWare ESXi導入遊記(六)RouterOS的選擇

之前在(四)我家的網路架構提到過,我打算選用pfSense來當防火牆作業系統,但是實際上線了之後,卻又發生了一些很麻煩的小問題。

pfSense的分隔線 —

我們之前在辦公室裝了一台PPTP Server,方便我們人在家裡的時候連回去辦公室的SVN Server同步檔案。原本這個方法在正式導入pfSense之前都用得好好的,但是在我把pfSense設定為IP分享器了之後,問題就突然跑出來了:「我在裡面連不到辦公室的PPTP

我本來以為是pfSense的防火牆擋住還是怎樣的,設定改了好幾次,直到後來把整個設定reset重來,才成功連上去了。但是在我把所有的設定通通都設定回去了之後,又連不上了。經過幾次reset反覆測試了之後,我發現問題是在如果把pfSense裝成PPTP Server的話,位於裡面的機器就連不到遠端的PPTP。查了一下討論區,發現的確有不少人有回報這樣的問題,唯一的解似乎是用兩個public IP。(但是我沒有那麼多IP,所以沒辦法)

m0n0wall的分隔線 —

於是我就想說,那試試看用m0n0wall好了,他也可以輕鬆設定PPTP Server的樣子。我千千萬萬沒有想到,m0n0wall居然不支援NAT Loopback的功能。也就是說,我在區網裡面,打http://applepig.idv.tw/會連不進這一頁,一定要在/etc/hosts或DNS額外把這個host轉成內部IP才可以。

BrazilFW的分隔線 —

別提了,我看不懂葡萄牙文,英文的支援訊息又少的可憐。連安裝過程似乎每一版都還不一樣,我根本沒有辦法讓成功的讓他成為正常的NAT…

IPCOP的分隔線 —

接著我試了相當老牌的IPCOP,一開始跟他相安無事,想說既然功能都齊全,就先用他試試看吧。結果不到第三天,我就發現網路會一直莫名的瞬斷,而且eMule忙起來的時候斷的特別兇。

…這就是傳說中的drop packet嗎(抖

pfSense的分隔線 —

於是最後還是回到pfSense這邊來,只是把PPTP Server關掉,乖乖改用ssh tunnel連回來。雖然真的很麻煩,而且很慢,但是這似乎是目前最好的解決方法了…

題外話
在這一篇跟上一篇之間,我家的MySQL server突然爬不起來了。更新了版本之後還是爬不起來,最後把my.cnf跟default設定檔作比較,一句一句改掉,最後發現兇手是thread_concurrency = 8這一句。至於為什麼本來可以的,突然變成不行了,我也實在很好奇…

另外是手動翻閱htaccess.log時,發現了一個user-agent是有帶”Foxy/1″的人,會一口氣發出30個request,害MySQL會瞬間很忙,所以我就在.htaccess把他們直接ban掉了:

SetEnvIf User-Agent Foxy spam
deny from env=spam

VMWare ESXi導入遊記(五)ESXi的秘技

系統也已經上線跑半年左右了,底層的ESXi穩定性真的非常的高,反而是裡面的Guest OS陸續有爆炸幾次,且待我有空再慢慢說來。這篇要講的是說明書上沒有,或者是藏在找不到的地方的秘技:

1. 開啟SSH連線

這樣子作其實會有很嚴重的安全性問題,所以如果不是必要的話,最好還是走到電腦前面操作或是VPN進來比較安全。
VMware ESXi – How to enable SSH Connectivity.

1. 在Management Console按下Alt-F1
2. 摸黑輸入unsupported(輸入完成之前螢幕不會有任何反應)
3. 用root跟之前設定的密碼登入進去
4. vi /etc/inetd.conf,把#ssh那行前面的#拿掉(如果你跟我一樣不會vi的話,存檔離開的指令是:wq!)
5. 重新啟動inetd(不確定怎麼砍的話,乾脆重開機比較快)

2. 多核心CPU

ESXi會把四核心的CPU虛擬成四個實體單核心CPU,在大部分linux下不是問題,但是windows基本上就是只吃兩顆實體CPU,所以要想辦法變回兩顆實體CPU,才可以用到完整的運算量。

Per processor licenses for your application

1. 在vSphere Client左邊的Guest OS上面按右鍵,選Edit Settings…
2. 選上面的Options分頁
3. 選左邊的General之後,按右下的Configuration Parameters…
4. 按右下的Add Row之後,輸入cpuid.coresPerSocket
5. 把剛輸入的這一列右邊的數值改成2或4,看你想要兩顆雙核心還是一顆四核心。(六核心的話也可以兩顆三核心,我沒試過)
6. 把這台Guest OS開機,看看裝置管理員有沒有成功抓到這些CPU

3. 讀取已經有資料的硬碟

照VMWare的規則來玩的話,存成vmdk格式的資料可以自由自在的在不同的儲存媒體之間遊走,「硬碟」這個落伍的實體概念不重要。只是對我們還停留在地面的死老百姓而言,以硬碟為儲存單位還是比較自然的,所以偶爾還是會需要把已經有資料的硬碟拿過來的機會。

【備忘】ESXi Mappping Physical Disk to vmdk

前面的心路歷程有空可以慢慢看,我就直接跳重點了:

1. 用ssh或是上述unsupported進console
2. fdisk -l,記下你要讀取的硬碟的完整名稱(非常長,像是綠色工廠這篇的是
t10.ATA_____HDS722580VLAT20_______________________________VNR21EC2DE859L
3. 執行vmkfstools -z [來源硬碟完整名稱] [目標vmdk檔案名稱](注意:來源硬碟的裝置路徑會在/vmfs/devices/disks/[步驟2的名稱]。目標vmdk則是要存在datastore裡面,例如/vmfs/volumes/datastore1/p2p.vmdk
4. 回到vSphere Client,把剛剛製造出來的vmdk掛載到某一個Guest OS上
5. 開Guest OS,測測看有沒有抓到硬碟吧

我目前有發現比較有幫助的秘技就是這三個了,如果有人有用到別的秘技也請大方的留言告訴我,謝謝~

次回預告:有兩個主題,不知道大家想先聽哪一個?
「pfsense、brazilFW、ipcop都微妙的不合用…」
「Openfiler與FreeNAS都解決不了我的問題…」

修改了一下網頁版型…

[廣告] 雖然我沒有拿錢,不過這是一篇替中華民國行政院公平交易委員會國家通訊傳播委員會做廣告的文章。

薦證文未標「廣告」 部落客將挨罰|政治新聞|中時電子報
公平會副主委施惠芬表示,依《公交法》第廿一條及《行政罰法》規定,若廠商廣告不實,撰寫薦證文的部落客不論是否接受報酬,一旦證實是「明知且故意」,例如明知產品有問題卻宣稱沒問題,可連帶處罰。

今天看到了這條新聞,心中非常的感動,所以就稍微修改了一下版型,希望各位可以響應這個活動。

延伸閱讀:我們需要更多的健康標語!

Google Chrome的翻譯列的幽默之處…

Google Chrome最近把翻譯列變成基本功能了,然後瀏覽其他語言的網站的時候就會跳出來。他如果跳在下面,我可能還不會覺得他很煩,但是他是從上面出現的,所以實在是很困擾。

所以我就選了「永遠不要翻譯英文」,他就不會再出現了。

但是如果哪一天我又需要用到英文翻譯的時候,我該到哪裡去打開呢?

根據Google的說明,打開的方法是「在翻譯列上面,把永遠不要的選項取消掉」。

……對不起,我要怎麼把不會出現的東西的選項叫出來關?

修改檔案總管的右鍵選單

剛剛在試著砍掉右鍵選單的Context Menu裡面的一些項目,卻發現同一個機碼被註冊在好多地方,所以筆記一下…

主要是在HCR[物件]shellexContextMenuHandlers,把整格機碼砍掉就可以把一整串刪掉了

[HKEY_CLASSES_ROOTAllFilesystemObjectsshellexContextMenuHandlers]
[HKEY_CLASSES_ROOTDirectoryshellexContextMenuHandlers]
[HKEY_CLASSES_ROOTDirectoryBackgroundshellexContextMenuHandlers]
[HKEY_CLASSES_ROOTDriveshellexContextMenuHandlers]
[HKEY_CLASSES_ROOTFoldershellexContextMenuHandlers]