2011年2月26日星期六

RHEL 5.6 真的「完全」支援 ext4 文件系統格式嗎?!

2008 年 12月 發佈正式的 ext4 文件系統格式及後其支援的 kernel 2.6.28, 到今天都差不多兩年多了, 除了主流的 Linux 系統 distro 個別開發嘗鮮版本外, 企業版的 Linux 系統(RHEL, SUSE 等等)基於穩定安全下一直都是以 technical preview 的方式讓用戶體驗, 並沒有完全地提供原整支援, Redhat 公司釋出的 RHEL 6 及 RHEL 5.6 終於都支援了正式 ext4, 雖然 Redhat 官方在 RHEL 5.6 版本發行說明文件中表示了 「The fourth extended filesystem (ext4) is now a fully supported feature in Red Hat Enterprise Linux 5.6」, 不過在 RHEL 5.6 的其他軟體套件卻仍然存在相容性問題, 其中 RHEL 5.6 提供的軟體 gnome-vfs 並沒有更新支援 ext4, 一但 / 根目錄或 home 目錄架建在 ext4 格式下的話, 在 gnome 桌面應用時會有功能缺失的問題, 最常見的狀態是 gnome 桌面的 Trash「回收筒」不會顯示任何已刪除的文件, 而且 nautilus 也不能正常偵測到 ext4 應用分割區。

RHEL6 的 ext4 分割區在 gnome 桌面刪除文件後 Trash 的內容存在已刪除文件
RHEL5.6 的 ext4 分割區在 gnome 桌面刪除文件後 Trash 的內容空白
RHEL 5.6 發行說明文件
http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html-single/5.6_Release_Notes/index.html

Fourth Extended Filesystem (ext4) Support
The fourth extended filesystem (ext4) is now a fully supported feature in Red Hat Enterprise Linux 5.6. ext4 is based on the third extended filesystem (ext3) and features a number of improvements, including: support for larger file size and offset, faster and more efficient allocation of disk space, no limit on the number of subdirectories within a directory, faster file system checking, and more robust journaling.
To complement the addition of ext4 as a fully supported filesystem in Red Hat Enterprise Linux 5.6, the e4fsprogs package has been updated to the latest upstream version. e4fsprogs contains utilities to create, modify, verify, and correct the ext4 filesystem.

RHEL 5.6 kernel 是 2.6.18-238
RHEL 5.6 內的 gnome-vfs2 版本仍然是 5.5 時的 2.16.2-6.el5_5.1 而 RHEL 6 內的版本已更新是 2.24.2-3.el6, 舊的版本仍然沒有支援 ext4 及 ext4dev, Debian bug#539322 2009/7 收納了此問題, 而 Redhat bug#594836 2010/5 亦收納了此問題, 不過 Redhat 官方並沒有對此支援修正感到趣味性, 這造成 RHEL 5.6 的 ext4 其實只是 kernel 的改造支援而已, 其他的軟體在相容性下變成的像殘障病患一樣, 其實 RHEL 5.6 連自身的 anaconda 系統安裝程式也沒有更新到支援格化 ext4 文件系統格式, 在腦惱的失望下唯有自己解決 gnome-vfs 的缺陷(加 patch)【適用於 CentOS 5】。

參考了 Bug#594836 內的附件 "Minimal patch to add ext4 support", 可以自行新增 ext4 patch 到 gnome-vfs2-2.16.2-6.el5_5.1 的源碼內手動編譯及安裝。

將下列修正源碼補丁 "Minimal patch to add ext4 support" 儲存為 gnome-vfs-2.16.2-ext4.patch 文件
--- gnomevfs-2.16.2/libgnomevfs/gnome-vfs-filesystem-type.c 2010-11-10 20:35:39.000000000 +0000
+++ gnomevfs-2.16.2/libgnomevfs/gnome-vfs-filesystem-type.c 2010-11-10 20:39:22.000000000 +0000
@@ -47,6 +47,8 @@
{ "ext2" , N_("Ext2 Linux Volume"), 1 },
{ "ext2fs" , N_("Ext2 Linux Volume"), 1 },
{ "ext3" , N_("Ext3 Linux Volume"), 1 },
+ { "ext4" , N_("Ext4 Linux Volume"), 1 },
+ { "ext4dev" , N_("Ext4 Linux Volume"), 1 },
{ "fat" , N_("MSDOS Volume"), 1 },
{ "ffs" , N_("BSD Volume"), 1 },
{ "hfs" , N_("MacOS Volume"), 1 },

下載源碼套件 gnome-vfs2-2.16.2-6.el5_5.1.src.rpm

安裝源碼套件
# rpm -ivh gnome-vfs2-2.16.2-6.el5_5.1.src.rpm

將 gnome-vfs-2.16.2-ext4.patch 文件新增到源碼目錄 /usr/src/redhat/SOURCE

修改 rpm build spec 編譯程序文件加入 ext4 patch 程序
將下列 patch 源碼儲存為 spec.patch 到 /usr/src/redhat/SPEC 目錄
--- gnome-vfs2.spec 2011-02-25 18:26:49.550202195 +0800
+++ gnome-vfs2.spec 2011-02-25 18:28:10.237202195 +0800
@@ -12,7 +12,7 @@
Summary: The GNOME virtual file-system libraries
Name: gnome-vfs2
Version: 2.16.2
-Release: 6%{?dist}.1
+Release: 6%{?dist}.1.1
License: LGPL
Group: System Environment/Libraries
Source0: gnome-vfs-%{version}.tar.bz2
@@ -94,6 +94,8 @@
# CVE-2009-2473 neon, gnome-vfs2 embedded neon: billion laughs DoS attack
# Patch25: CVE-2009-2473-neon-billion-laughs.patch

+# ext4 support as of RHEL6
+Patch99: gnome-vfs-2.16.2-ext4.patch

%description
GNOME VFS is the GNOME virtual file system. It is the foundation of
@@ -158,6 +160,8 @@
%patch23 -p1 -b .copy-follow-symlink
%patch24 -p1 -b .dav-escape

+%patch99 -p1 -b .ext4
+
# -- disabled, no QE capacity
# %patch25 -p1 -b .neon-CVE-2009-2473

執行 spec.patch 補丁修改 gnome-vfs2.spec
# cd /usr/src/redhat/SPEC
# patch -b gnome-vfs2.spec spec.patch


手動編譯
# cd /usr/src/redhat/SPEC
# rpmbuild -ba gnome-vfs2.spec --define 'dist .el5_5'

**所有編譯開發套件要求需要手動執行 yum 安裝, 包括 yum groupinstall 'Development Tools'

編譯完成後手動升級安裝
# cd /usr/src/redhat/RPMS/i386
# rpm -Uvh gnome-vfs2-2.16.2-6.el5_5.1.1.i386.rpm gnome-vfs2-smb-2.16.2-6.el5_5.1.1.i386.rpm


安裝了 gnome-vfs 支援 ext4 的修正補丁後, gnome 的 Trash「回收筒」功能回復【CentOS 5.5】
備註:
  • 如果系統是 x86_64 的話, 則可以使用 mock 別權環境打包源碼後編譯 i386 及 x86_64。
  • 由於 blogger 對 code 碼的左方空白字去掉, 留意源碼位置已被自動改動。

更新補充:

2011年2月20日星期日

Windows 7 SP1 知者不言

微軟已經官方釋出 Windows 7 及 Windows Server 2008 r2 的 SP1 更新, 在 2011/2/16 MSDN 及 TechNet 用戶已經可以嘗先下載 SP1 更新、語言包及其整合版本分支, 一般用戶則可以在 2011/2/22 透過 Download Center「下載中心」及 Windows Update 推送更新服務包; 此次的 SP1 更新服務包將包含 2010/11 月及以前釋出的所有更新 patch, 另外加入了兩項虛擬化的進階功能, 包括 RemoteFX 及 Dynamic Memory, 並且提供了 ThinClient 版本分支。


Windows 7 service pack 1 技術文件資料
http://technet.microsoft.com/en-us/library/ff817622%28WS.10%29.aspx

當然非 MSDN 及 TechNet 的一般用戶亦可以善用 google 仙人
DVD iso 光碟影像檔案文件包括:
Windows 7 and Windows Server 2008 R2 SP1 x86 x64 DVD 多個語言
mu_windows_7_and_windows_server_2008_r2_sp1_x86_x64_dvd_619642.iso
SHA1: F2ABA1102E18EAD08C78527AB422C09AB7D1F54C

Windows 7 Service Pack 1 Language Pack (x86) - DVD
mu_windows_7_sp1_language_pack_x86_dvd_619716.iso
SHA1: E9261433FF5CCACA818328A9BDBBED3F21A6405E

Windows 7 Service Pack 1 Language Pack (x64) - DVD
mu_windows_7_sp1_language_pack_x64_dvd_619714.iso
SHA1: 7CD1FE568D968D89792DC9FF20E9AF2B318995C2

英文版的 Windows 7 with SP1 DVD iso 整合版的資料可參考:
http://www.sevenforums.com/news/139450-windows-7-sp1-integrated-isos-leaked.html

更新前必須先執行全系統備分, 及確保電腦電源供電不會終斷。
已知的軟體相容性問題:
http://support.microsoft.com/kb/2492938/

未知(不可預料)的更新故障主要是 USB 的系統檔案 usbport.sys, usbehci.sys, 及 winusb.sys 沒有正確更新, 在裝置管理員內會看見感嘆號(!), 快捷的解決辦法是在裝置管理員刪除出現嘆號(!)的 USB 控制器, 重啟電腦讓系統自動再偵測裝置及安裝系統驅動, 此狀態多數會出現在主機版使用 NVidia NForce的晶片組 USB 控制器驅動。

而另一個已知的更新故障是已安裝多國語言包後更新 SP1 時造成藍屏, 無法完成程序及重新正常啟動, 出現
Error C000009A applying update operation {######} of {######} (\Registry...)

此情況是由於安裝多國語言包後沒有啟用, 令系統 registry 內缺失了註冊機碼, 解決此問題的唯一辦法是先強行卸載 SP1 及利用還原點回復系統, 移除舊的多國語言包後再安裝(幸運的話)。

備註:
  • 執行更新過程需要時間, 如果使用一般 HDD 硬碟(甚至 Notebook 筆記本)的話, 更新時間可能耗半小時(已實測)及以上。圖
  • SP1 更新後的硬碟容量會暴增達 985MB(已實測)
    安裝 SP1 前及安裝 SP1 後的容量
    包括 Service Pack Backup Files 及 系統還原點. 如果需要釋放空間容量的話可以手動執行 Disk Cleanup「磁碟清理」刪除, 不過將無法還原及卸載 SP1。
  • 如果是全新安裝 Windows 7 with SP1 整合版本的話, 容量較執行更新包後減小大約 750MB(已實測)。
  • 如果已使用英文版(Ultimate 及 Enterprise)及安裝語言包的話, 需要在控制台內的區域語言配置手動移除舊版本, 及手動安裝 SP1 新版本(已實測)。
  • 由於 SP1 是 2010/11/20 日製作, 沒有包含 2010/12 月及以後的 patch, 如果是全新安裝 Windows 7 with SP1 整合版的話, 在 Windows Update 內會立即發現有更新需要下載。

2011年1月25日星期二

RHEL6 使用 DVD 光碟 yum 安裝軟體

RHEL6 一般必需註冊(免費 30 天評估或付費)才可以獲得線上軟體更新支援及下載, 不註冊的話其實亦可以使用光碟來執行 yum 安裝, 此方法適合多台電腦進行評估測試時免去大量註冊所需, 及沒有聯網環境的獨立電腦, 而且多台電腦亦可以共用光碟分享位置(無需大量燒錄光碟)來安裝軟體, 當然如果要更新軟體的話就必需付費註冊(除非手動自行編譯更新源碼套件)。

RHEL6 使用 yum 光碟安裝軟體步驟:
  1. 掛載 RHEL6 光碟
    # mkdir /mnt/cdrom
    # mount /dev/cdrom /mnt/cdrom -t iso9660 -o loop,ro
  2. 將光碟內的 media.repo 檔案內容複製到 /etc/yum.repos.d/media.repo
    # cat /mnt/cdrom/media.repo > /etc/yum.repos.d/media.repo
  3. 加入 yum 使用安裝光碟路徑到 /etc/media.repo
    編輯 /etc/yum.repos.d/media.repo 新增 baseurl=file:///mnt/cdrom/
    # echo 'baseurl=file:///mnt/cdrom/' >> /etc/yum.repos.d/media.repo
  4. 完成

測試:
# yum repolist


備註:
  • 在桌面環境插入安裝光碟時會自動複製 media.repo 文件到 /etc/yum.repos.d/packagekit-media.repo, 不用理會。
  • 當然亦可以掛載安裝光碟的 iso 映像檔案(或網絡路徑)到 /mnt/cdrom/ 目錄進行 yum 安裝軟體。

2011年1月21日星期五

RHEL6 下載評價試用體驗

在去年 11 月時 Redhat 紅帽公司官方釋出了 Red Hat Enterprise Linux 6(RHEL6) 企業級 Linux 系統, 一直守候等待 CentOS 社群移植開發, 閒情時間有限沒有嘗試的心力, 近日也溜空的實測試用一下 RHEL6 的體驗, 起碼在 CentOS 6 來臨時不會一惆莫展腦惱般的盲撞, 而且系統升級進階是始終都不能避免。

RHEL6 其實基礎是步進於 Fedora 10 架構, 如果習慣使用 Fedora 的話應該不難上手, 而且也很眼熟的, 不過由 RHEL5 升級到 RHEL6 卻是非一般簡單, 尤其是 RHEL6 的系統配置功能及軟體套件有很大的改變, 以往使用的 SystemVinit 已改變為 upstart, 系統支援人員(系統管理員)及用戶都需要研究學習, 由於系統軟體(及兼容)有很大的改變, 升級及遷移舊系統需要額外配置設定亦令過程變得複雜了, 而且升級後也可能有無法預測的兼容錯誤問題, 所以升級前必雖慎重考慮方案流程及測試。

Red Hat Enterprise Linux 6 主要分為二個分類版本 Server(伺服器), Desktop(桌面)
Server 版本:
  • Red Hat Enterprise Linux Server
  • Red Hat Enterprise Linux for HPC Head Node(HPC機群部署管理)
  • Red Hat Enterprise Linux for HPC Compute Node
Desktop 版本:
  • Red Hat Enterprise Linux Desktop(Client)
  • Red Hat Enterprise Linux Workstation

評價試用體驗當然需要下載, Redhat 紅帽公司提供了官方下載 Red Hat Enterprise Linux 6 Server 的 30 天評價試用

redhat 官方下載 RHEL6 試用方法:
  1. 到 redhat 網頁註冊一個帳號(需要 email 電郵信箱)
    https://www.redhat.com/wapps/ugc/register.html
  2. 電郵收信後激活 redhat 帳號, 激活帳號後登出
  3. 到 redhat 網頁選擇下載評價試用
    https://www.redhat.com/rhel/details/eval/
    選擇 Download 30-day evaluation
  4. 輸入以上激活的 redhat 帳號
  5. 電郵信箱會收到正在處理中的信件, 等待第二封電郵
  6. 電郵信箱會收到訂閱已激活, 此時即可以登入 redhat subscription channel 下載 RHEL6 Server 版本
    https://rhn.redhat.com/rhn/software/downloads/SupportedISOs.do
  7. 安裝完成後, 註冊系統(使用以上的 redhat 帳號)即有 30 天的免費軟體更新支援, 逾期後需要付費續期才可以獲得軟體更新支援。

非官方下載 RHEL6 torret:
RHEL6 Server 32bit DVD iso
RHEL6 Server 64bit x86_64 DVD iso
RHEL6 Desktop Client 32bit DVD iso
RHEL6 Desktop Client 64bit x86_64 DVD iso
RHEL6 Workstation 32bit DVD iso
RHEL6 Workstation 64bit x86_64 DVD iso

備註:
  • 那 Supplementary disc 其實是 Adobe Acrobat Reader, Flash Plugin 及 Sun Java Runtime。
  • Server 版本沒有包含 openoffice.org 軟體套件。
  • 沒有註冊 redhat 支援(免費或付費)的話, RHEL6 是不能線上 yum 軟體更新及下載, 系統功能仍然是正常可以運行。

2011年1月5日星期三

ADATA 威剛 S500 系列 S599 firmware 韌體更新

已經歷了差不多半年使用 SSD 固態硬碟的爽快度, 已經無法重投物理硬碟當 OS 系統的懷抱了, 在這半年的使用中也實在的嘗到一次系統不穩的「小」問題而出現啟動 OS 時藍畫面(腦惱啊), 不過經過細心檢查發現是 SATA 線材接頭不穩固的問題, 更換了新的 SATA 線材後就再沒有發生任何怪異狀態了, 也不曾想過要更新 SSD 的 firmware 韌體(起碼在半年多天天使用的過程中也踫不到甚麼靈異事件), 但是穩定及效能的步進推演是不會(亦不能)停下來, 更新產品的韌體及電子線路板(甚至晶片組)在所難免。ADATA 威剛推出的當代 SSD 固態硬碟 S500 系列在近月(好像是去年十月和十二吧)官方釋出了韌體更新軟體工具, 已購買 ADATA S500 系列 SSD 的用戶終於可以自行更新到最新的韌體版本以改善效能及穩定。

ADATA SSD S599(sandforce) 韌體更新軟體工具下載網頁, 韌體版本是 3.4.6(2010/12/30)
http://www.adata.com.tw/index.php?action=product_download&cid=3&piid=33

更新步驟:
  • 必需先將 SSD 固態硬碟完全備分以免任何資料檔案損壞, 個人文件及設定檔案建議額外再備分(尤其是 SSD 組成 RAID 0 當系統碟)
  • 下載 ADATA S599 Firmware Upgrade Tool V1.0.rar 後手動自行解壓縮(需要有 WinRAR 或 7zip 軟體)
  • 以系統管理員身分執行 ssdupdate.exe
    程式會自動偵測檢查存在適合的 ADATA SSD
    圖中的是 S599 100GB 舊韌體版本是 3.0.5
  • 點按 "..." 選擇韌體文件 "3.4.6.pkg",
    在 Drive List 中勾選需要更新韌體的 S599 SSD,
    然後點按 "Download Firmware to Selected Drive"
  • 程式最後確定提示, 用戶必需在更新韌體前將 SSD 固態硬碟備分, 及系統會自動重啟
    點按 OK 繼續, 更新韌體大約兩分鐘內完成
  • 重啟後更新完成
    韌體版本是 3.4.6


更新韌體後的差異最明顯的是 SMART 溫度的偵測, 溫度指數 C2 出現失常的誤判了, 竟然由舊的 ~26℃ 變成 53℃(今天室溫還只是 ~16℃ 而已), 相信沒有多小個固態或物理硬碟能長久存活在此溫度運作環境下吧(將此誤判的溫度/2 就差不多正常了)。 ~~!

備註:
  • 系統重啟後由於 SSD 的硬體資料改動, OS 系統(Windows)會再配置新裝置(更新 GUID), 如果 SSD 是系統碟的話系統會提示需要重啟一次。
  • 更新韌體會有小許風險, 系統必須在穩定狀態下執行更新程序(電源啊), 萬一更新出狀態的話, 要聯絡 ADATA 代理商保固。

另外, ADATA 的 S596 及 S596 Turbo SSD 亦官方釋出了韌體更新軟體工具, 有需要的話可瀏覽 ADATA 的官方網頁下載
S596 SSD
http://www.adata.com.tw/index.php?action=product_download&cid=3&piid=35
S596 Turbo SSD
http://www.adata.com.tw/index.php?action=product_download&cid=3&piid=103

溫馨提示: Sandforce 的新一代 SSD 固態硬碟控製器 SF2000 系列, 採用 SF-2582 控製器晶片工程樣本已經正在國際消費電子展 CES 2011 中展出實體工程樣品 OCZ「Vertex 3 EX」及「Vertex 3 PRO」, 支援 SATA III/6Gbps 及 25nm NAND flash 顆粒, 單碟(非 raid 0) 550MB/s 讀取 525MB/s 寫入 80K IOPS 4K 隨機寫入效能, 預計產品及類同產品將在第二季上市, 願望一嘗享受超激爽快度的玩家們要準備好(要鈔票滿滿的)錢包啊。

2010年12月9日星期四

Centos Linux 活用 dnsmasq 緩存加速本機及局網 DNS resolver 解拆 IP 地址速度

在慢不經意的網海世界流連閒遊, 經常都會發現瀏覽速度(或電郵伺服器)傳送會突然瞬間頓頓的, 當然網站伺服器及其網絡頻寬相關都排除後, 剩下唯一可能是路由器(或 DNS 伺服器)的問題, 尤其是現代的網頁內容極其「瘋」富, 一個網頁有十多個不同地址的 Flash 及廣告已是平常不過, 試難想像當眾多電腦(辦工室或教育機構)在繁忙時段要 DNS resolver 解拆 IP 地址時路由器(或 DNS 伺服器)所受到的壓力, 而且現今的大爺 ISP 電訊服務商還會玩 DNS 攔截過「淚」的把戲, 當然那 15ms~100ms 的回傳時間不筭怎麼樣, 但能夠為本機及相鄰局網電腦 DNS resolver 解拆地址提升速度(5ms內)也是不錯的。

Linux 應用軟體 dnsmasq 輕量而且可以提供簡易設定的 DNS 轉發(forwarder)及 DHCP 伺服器, 配置成為一個 DNS 緩存加速轉發機供應其他相鄰(及本機)電腦使用, Windows 及 Linux/Unix 或 MacOS 都可以同時得益, 亦減輕大量網絡交通時向上扒 DNS 的時間。

實機使用 CentOS 5.5 Linux, dnsmasq-2.45-1.1.el5_3.i386

設定 dnsmasq 配置緩存加速轉發(cache forwarder):
1. 安裝 dnsmasq, 以 root 系統管理員權限執行在線安裝指令
# yum install dnsmasq
其實 CentOS 一般安裝時已經預裝了 dnsmasq
2. 設定 dnsmasq
以 root 系統管理員權限編輯 /etc/dnsmasq.conf
新增一行, 使用本機 local loopback 監聽地址
listen-address=127.0.0.1

3. 新增一行, 停用無關的 DHCP 供應介面 eth0 裝置
no-dhcp-interface=eth0

4. 如果 DNS 轉發需要提供給其他相鄰局網電腦使用的話, 新增一行
interface=eth0

5. cache-size 的預設值只是 150, 修改增加 DNS 緩存數量 1000(最大上限是 10000), 新增一行
cache-size=1000

6. 設定使用本機 DNS 回傳解拆為先
以 root 系統管理員權限編輯 /etc/dhclient-eth0.conf
新增一行
prepend domain-name-servers 127.0.0.1;

7. 設定 DNS resolver 的服務地址(dnsmasq local loopback)
以 root 系統管理員權限編輯 /etc/resolv.conf
新增一行在首行(如圖)
127.0.0.1

8. 如果需要使用 google dns 的話, 可以加入 8.8.8.8 及 8.8.4.4
9. 如果使用其他局網電腦提供的 dnsmasq, 可以在首行加入其 ip 地址(如圖), 如果其電腦不存在(關機的話), 則會自動選用 127.0.0.1(dnsmasq local loopback)援存加速

由於 DNS 的 domain 地址保留時限是根據 domain 傳回的 TTL(Time To Live), 並不會永遠存留在 cache 中, 所有 cache 都會自動 expire 餘時過期的。

測試, 執行指令 dig google.com

回傳第一次時是正常向上扒 dns 解拆的時間(7Xms), 第二次則是緩存加速後的時間(1ms), 速度差別很大(雖然只是小小的數十個 ms, 如果眾多電腦在繁忙時段大量的話, 節省下的時間是十分可觀的)

備註:
如果 dnsmasq 架設是提供給局網其他相鄰電腦使用的話, 防火牆要開啟 port 53。

2010年11月18日星期四

Cisco 2010年第三季全球威脅報告, Stuxnet 香港上榜!

思科系統剛在 16/11/2010 發表了 2010年第三季全球威脅報告, 香港上榜啦! 話說香港某某某官...(還是不要寫的好, 要河蟹同化啊 ^^!)

在思科系統的全球威脅報告中, 除了我自己電腦也中伏沒攔截到的 java 病毒威脅外, 最特顯的是今年全球新鮮的 Stuxnet 襲擊, 香港受影響佔全球 25%, 除了香港本地沒有甚麼核電XYZ電科技工業外, 相信正常人都會猜想到金融企業系統是最後目標, 尤其是積極配合政府善用遣散外判服務的某些大屁股基建公司機構及金融銀行相關企業。

已受 Stuxnet 影響到的地區位於 38% 英國, 25% 香港, 13% 文萊、荷蘭及澳洲

下載 Cisco 2010年第三季全球威脅報告:
http://www.cisco.com/en/US/prod/collateral/vpndevc/3q10_cisco_threat.pdf

2010年11月15日星期一

CentOS 5 Linux 使用 Realtek RTL8111B/8111C/8168 網絡晶片 1000Mbps 連線環境下超緩慢

在不斷演進的科技大世界中, 老舊的 10Mbps 和普及的 100Mbps 乙太網絡及裝置設備, 到現代 1000Mbps 網絡多媒體速度的追求, 平民百姓也可以組架自家的高速網絡; 近日在不經意的發現組建部分聯網電腦的 1000Mbps 連線龜速的緩慢, 無論瀏覽網頁或電郵及遠端連線, 甚至連接到 gateway 及 dns resolver 都失常的緩慢及反應遲頓, 感覺傳輸的資料封包(packet)有非同步的不斷重試傳輸現像, 最奇怪的連接到 Router 的管理網頁內也超緩慢(busy)。

在腦惱發作下終於無法忍受要尋找解決方法, 在實機環境發現相同問題的都是主機板配置 Realtek 網路晶片的電腦, 及使用 CentOS(RHEL) 5.5 Linux 系統, 在 1000Mbps switch 網絡交換機連線使用。

實機測試 CentOS 5.5 Linux 32bit, Kernel 2.6.18-194.17.4.el5PAE
主機板 P5QL-EM Realtek RTL8111C(支援 Jumbo Frame 6Kbyte)
D-Link DGS-1005D 5-port Gigabit Switch 交換機, 1000Mbps 連線
D-Link DI-524 2.4GHz (802.11g) Wireless Router 路由器, 100Mbps 連線
Linksys WRT54G 2.4GHz (802.11g) Wireless Router 路由器, 100Mbps 連線

在實機測試時, 不作任何調校及改動, 使用 Kernel 2.6.18-194.17.4.el5PAE 內建的 r8169.ko driver module 驅動程式, 網絡連線起動正常, DHCP 取 IP 及配置成功, 但是瀏覽網頁每頁都要等待超過五至十秒, 任何連線到 gateway router 都反應緩慢, Windows 系統的 Remote Desktop 連線(rdesktop)亦會一連線即失效(好像等待 timeout...)

更新使用 Realtek 網站的 Linux 驅動程式 8.019.00 2010/8/31 後
配置 1000Mbps Full Duplex 指令
# ethtool -s eth0 speed 1000 duplex full autoneg on

測試後發現問題仍然出現連線遲緩, 直至強迫使用 100Mbps 連線才回復連線品質, 十分奇怪的現像
# ethtool -s eth0 speed 100 duplex full autoneg on

在不斷重覆測試後, 發現此連線遲緩主要是 Linux 內的網絡連接觸發時間(亦可能是協同及 switch 紀錄不協調吧), 最神奇的是只要將配置指令執行多次, 網絡連線速度竟然會回復正常, 真是超怪異啊! 不過在實測時最奇怪的是 Jumbo Frame (MTU), 如果改動 Jumbo Frame 的話亦會即時連線遲緩, 又要多次執行配置指令才會回復正常, 真是莫明奇妙。

暫時無解下的解決辦法是唯有執行配置指令, 強迫系統回復 1000Mbps 正常連線
# ifdown eth0
# ethtool -s eth0 speed 1000 duplex full autoneg on
# ifup eth0


備註:
另外 mii-tool 指令已經不支援 1000Mbps 的裝置
要檢查網絡配接卡資料的話, 執行指令:
# ethtool eth0

補充:
在測試時偶然地發現近日(其實已經多個月了)有超極大量的殭屍網絡 botnet 刺探出現, 全部不同的 IP 地址都是源自大陸, 差不多每十個有九個會刺探 TCP port 9415 及其他標準的 proxy port 1080 3128 8080 3389 4899 等等, 來源 port 99% 都是 6000, 要多注意防火牆設定, 避免路由器萬一使用 DMZ 時暴露到網軍手中。
DI-524 紀錄 botnet 刺探
DI-524 防火牆配置

補充更新:
近日(三月時) Realtek 釋出了網絡晶片組的 Linux/Unix 驅動程式更新 8.022.00 版本, 實測使用此版本的驅動程式後發現在 1000M 網絡遲緩頓頓的問題消失, 似乎已解決其 1000M 網絡下混插 100M 的 packet lost 問題, 比較 8.020.00 版本(Linux RHEL 5/6 下根本不能 compile 編譯安裝)的問題好多了, 不過留意安裝後要手動編輯修改 /etc/modprobe.conf 將 alias eth0 r8169 改為 alias eth0 r8168
Realtek 網絡晶片 Linux/Unix 驅動程式更新 8.022.00 版本下載位置

2010年10月18日星期一

電腦機箱 DIY 改造切割輕鬆快捷省力

當代的電腦技術不斷進步, 近十年效能已經翻數倍的成長, 十年前那時還在 Pentium 3 年代, 電腦核心零件熱量不高, 散熱並不是甚麼難題, 電腦機箱改造 DIY 都像是異族的看待, 搞個大機箱用花輪式銅製散熱器及銅片已經滿意足, 再不然就用致冷片來壓溫超頻, 回憶當年為了 P3 雙 CPU系統改造電腦機箱, 在直立機箱底部鑽一排細孔引入氣流, 平衡機箱內電源風扇(及雙後置風扇)強負氣壓令散熱效率降低, 同時剪裁了風扇鐵罩以減去風扇對外排氣的氣流阻抗, 那年還被取笑毫無用處、多餘甚至無聊行為, 然而十年後的今天, 當代 DIY 電腦直立機箱已絕大部份底部開孔, 越多風扇氣孔的機箱越受 DIY 族歡迎,, 而風扇氣孔已採用圓網孔減小阻抗, 甚至機箱前面版也採用網孔設計, 當年奇異的點子竟然是今天的明燈。

近日要 DIY 改造自己組裝的細機箱電腦(DIY心癮發作罷了 ^^!), 朋友同事經常提及機箱散熱切割側板云云, 就將今次機箱 DIY 改造切割的輕鬆過程記錄留作參考, 其實網上也有很多DIY 改造電腦機箱可供參考; 然而最奇怪的現象是網上的討論區經常出現一些令人啼笑皆非的建議, 還有跟風族吹捧炫耀成果; 俗諺: 工欲善其事, 必先利其器, DIY 改造機箱到底要採用大型切割機(例如: 曲線鋸/Jigsaw)的大才小用, 或是手動剪裁器(甚麼方角剪云云)的不切實際, 其實兩者都不合適, 曲線鋸處理小圓角及不規則料件不理想, 方角剪太過手動耗費時間力氣, 兩者都需要額外的工具再打磨; 今次實作使用的工具是輕型的電磨機(刻磨機/雕刻機)(不同國家地區有不同的名稱), 可用於切割金屬細件及細緻打磨, 容易掌控及省力, 而且還可以用來刻磨圖案。

切割電腦機箱實作
使用的工具 Black & Decker(百得) RTX 高效轉具電磨機, 此工具跟附 56 件應用配件及手提箱, 在五金工具經銷商採購還額外多了一筒(25件)BD Heavy Duty圓鋸片(總共 81件配件), 到經銷商採購排除了山寨偽貨A貨及翻修貨的問題, 經銷商五金店集中地區還可貨比三家, 售價比網上價更便宜。

Black & Decker(百得) RTX 實照
簡介一下:
Black & Decker(百得)
型號: RTX1
功能: 200W功率, 變速開關, 轉速每分鐘8,000-30,000轉, 適用於切割/研磨/刮鏽/刮漆/雕刻/拋光/清潔罅隙污垢, 重量 0.48kg(大約 1.06磅)

使用工具配件包括: Heavy Duty 圓鋸片及鎖針(切割金屬), 3M 2214遮蔽膠卷(減小切割時料件變型或爆裂), 陶瓷石磨頭(適合快速金屬打磨), 鑽針(開螺絲孔)
當然還要自身保護的防濺護目鏡, 避免切割及研磨時金屬碎屑飛濺及反彈造成眼睛永久傷害
施工:
首先將惻板需要切割開洞的位置貼上遮蔽膠卷, 在遮蔽膠卷上繪畫切割線草圖
遮蔽膠卷上已切割後補照片
如要切割直線完美的話(減小打磨時間), 要用一些已成型的直線鋁片(鐵片或厚膠片)輔助
圖中是將 RTX 用雙面貼及綑線令工具固定在角鐵輔助廢件上
圖中的直線鐵片用雙面貼固定造成平行的直線, 切割時以角鐵及鐵片的邊端對位則可快捷切割完美直線
圖中是已切割完成, 非專家級的 DIYer 大約用了十五分鐘
切割後需要打磨修邊及打磨圓角, 圖中的是 Sander 沙磨(粗及幼卷)
為了減小耗用時間加速, 最後還是選擇快捷打磨金屬(尤其是圓角)的陶瓷石磨頭
打磨完成(過程大約用了十分鐘)
完成後開螺絲孔(需要安裝鐵網或風扇的話)及打磨修孔
側板 DIY 改造開風口完成…紅色的網 ^^!
其實整個施工過程都十分快捷省力, 反而規劃改造概念、量度精確尺寸及繪圖更耗時間, 對喜歡親手打造的 DIYer 來說一件輕巧的研磨切割工具是不可或缺, 不過施工時還是謹記安全至上, 先瞭解清楚工具的應用方法, 避免有小孩在旁及貓貓狗狗之類的寵物, 要留意施工技巧(力度)及手指位置, 不要在下雨環境及濕水的料件施工避免觸電, 不要遮掩工具的排氣及避免過長時間轉磨過熱, 使用恰當的話, 可以處理很多的改造物件, 起碼不像那個甚麼方角剪手動三小時開側板傻痕般的滿頭大汗手心濕透吧。

補圖 更新
近日為 RTX 新增了配件 - 轉軸 RT5100, 手勢施工時方便靈活多啊(不用手持1磅重電磨機)
在不知不覺工多藝熟後, 施工的技巧及時間是會越來越熟練。