Tag Archive for 'technique'

用 USB 隨身碟做為 Windows Vista/7 安裝來源 (使用 grub4dos)

最近玩了 Windows 7,稍微嘗試了一下要如何做出可以安裝 Windows 7 的隨身碟。在這裡用的作法跟大部分人有點不太一樣的地方,是用grub4dos帶起安裝程式的。

  • 1. 將隨身碟 Format
    1.1 先下載並執行 usb_format
    1.2 device 選你的隨身碟,File System 選 Fat32,Volumn label 不一定要寫(可以自己命名),Quick Format建議勾選起來
    1.3 點 Start,稍等一下完成後關閉 usb format
  • 2. 安裝 grub4dos
    2.1 下載grub4dos
    2.2 執行 grubinst_gui.exe
    2.3 Disk 選自己的隨身碟
    2.4 按下 Part List 右手邊的 Refresh,然後下拉選單選擇 Whole Disk (MBR)
    2.5 點 install 並依指示進行,安裝完畢後關掉 grubinst_gui
    2.6 把 grldr 複製到隨身碟根目錄下
  • 3. 安裝 7zip (或其他可以解出所有 ISO 中檔案的工具),將 Windows Vista/7 安裝光碟內所有的檔案都複製到隨身碟根目錄去
  • 4. 在隨身碟根目錄下產生一個 menu.lst 檔,內容如下:
  • title Install Windows 7 32-bit Ultimate
    root (hd0,0)
    chainloader /bootmgr

    這個方法的優點在於,由於我是透過 grub4dos 帶起安裝程式,所以可以在隨身碟內整合其他工具 (例如:Hiren’s BootCD, MemTest86, …etc.) 空間充足的情況下甚至可以把Linux 或者 Windows PE 也塞進來,使用彈性會比直接利用Windows安裝光碟內建的開機程式還來得大上許多。

    注意事項:
    1. 我只在 Windows 7 32-bit 安裝程式上試過,vista理論上作法一樣,64-bit的部份沒機會嘗試,歡迎試驗過的人回報一下。
    2. usb_format 與 grubinst_gui 在 windows vista/7 上都需要利用管理權限才能執行,方法是在執行檔上按右鍵,選擇以系統管理員身份執行

    Update(2009/09/10): 增加步驟 2.6,不把 grub loader 放進去是沒辦法開機的 XDD

    [心得] 在 freebsd 上使用 binary packages

    最近拿到一台機器,裝了 FreeBSD 7.2,由於機器記憶體很少編譯會非常慢,所以嘗試了用官方現成編好的 binary packages來安裝軟體。以下是一些心得,可能有些不妥之處,還請大家提醒。

  • Step1: 設定環境變數 PACKAGESITE
    這裡是要設定到哪抓 PACKAGE,大致的設定方法是
    (csh) setenv PACKAGESITE ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/`uname -p`/packages-7-stable/All/
    (sh) export PACKAGESIT=ftp://ftp.tw.freebsd.org/pub/FreeBSD/ports/`uname -p`/packages-7-stable/All/
    Ps. 這裡使用 packages-7-stable 的理由是希望儘量使用新版軟體。7 表示 version 7,stable 則會有比較新的軟體

  • Step2: 利用 pkg_replace 安裝軟體
    在這我用 pkg_replace (ports-mgmt/pkg_replace) 作為套件輔助的工具,安裝軟體的方法很簡單:
    pkg_replace -NP category/name
    N 表示 new port/package,P 表示採用 binary package
    Ps. 由於 portupgrade 太慢,portmaster 看似不支援binary package,所以我用 pkg_replace

  • Step 3: 此時會有下列幾種情況:
    Case 1: 安裝順利成功
    當這個 package 不 depend on 其他的 packages 或是所有 depend 的 packages 都已經安裝了,並且在 ports 中對應版本的 package 在 ftp server 上找得到。恭喜! 結果像 log1

    Case 2: 下載不到 package 而失敗
    當這個 binary package 在伺服器上找不到的時候,會出現這個情況,此時直接連上 ftp server,找尋目前最新版本,利用 pkg_add -r 安裝 (此時直接寫軟體名+版本號,不要加 catelog) ,範例在 log2

    Case 3: 下載到 package 卻安裝失敗
    當這個 packages 有 depend 到的 package 未安裝的時候,pkg_replace 會安裝失敗,此時將同樣版本號的軟體利用 pkg_add -r 安裝即可 (直接寫軟體名+版本號,不要加 catelog),pkg_add 會幫你下載需要的 packages 一併安裝。範例見 log3

    利用上面的方法,我已經可以處理大多數的軟體安裝了。(有些軟體不加 option 自己編會不好用的例外)
    之後需要做軟體更新的時候,只要 pkg_replace -P package-name (或者 pkg_replace -aP 升級所有軟體) 就好。但值得注意的是發生 dependency 改變的時候,升級軟體會失敗,這時候就得觀察缺的package是哪些,另外用 pkg_replace -NP 或者 pkg_add -r 加進來,才能夠正確升級。

    最後補充說明:
    pkg_replace 若是升級到 0.9.0 (RC2) (20080129) 貌似可以避免掉 case 3 的問題,但 ports 裡頭的資料還沒更新,等更新之後應該就只剩下 ftp server 沒有最新 package 的時候才需要用 pkg_add 先裝舊版頂著用了。

  • 將 ubuntu 8.04 desktop LiveCD 用 pxe boot 起來

    注意: 這個方法不保證在其他版本可以 work

    ubuntu 的 desktop 安裝光碟本身就是一個可以拿來當作業系統的 LiveCD。昨天作了個實驗,希望能把 LiveCD 的環境,透過 pxe boot 起來,以下是我的作法。有部分作法是誤打誤撞的,沒有理論根據,也不能保證其他版本 work,所以要先講清楚,我用的 ISO 是 ubuntu-8.04.1-desktop-i386.iso

    Step1: 先抓 ubuntu desktop CD-ISO: 下載點

    Step2: 取出光碟內 casper/*,將 filesystem.* 放到 /casper,initrd.gz 與 vmlinuz 放到 /tftproot

    Step3: 下載 pxelinux.0,放到 /tftproot

    Step4: 設定(並啟動) tftp server,將 / 指向 /tftproot

    Step5: 設定(並啟動) isc-dhcp,在 dhcpd.conf 中加入:

    server-identifier     dhcp-server-ip;
    next-server           dhcp-server-ip;
    filename                "/pxelinux.0";

    Step6: 在 /tftproot 下建立一個目錄叫做 pxelinux.cfg
    在裡頭放個設定檔 default,內容如下:

    DEFAULT live
    PROMPT 0
    TIMEOUT 0
    
    LABEL live
    kernel vmlinuz
    append initrd=initrd.gz boot=casper netboot=nfs
    (接續上一行) nfsroot=dhcp-server-ip:/casper --

    Step8: 設定 NFS,將 /casper export 出來

    Step9: 進入 casper 這個目錄, ln -s . casper
    (建立一個 soft-link 叫 casper,link 回自己)

    Step10: 讓 client pxe boot

    其中最詭異的一點就是 Step9,原本光碟裡頭並沒有這個 link,但是透過 pxeboot 的時候卻非常需要這個 link,目前猜測是 initrd.gz 裡頭的 script 在處理 cdrom 跟 nfs 上面有所差異,但是沒精神去深究了,先求能動再說,所以有了 Step9

    研討會心得

    昨天到台北參加了研討會
    詳見: 禮拜四要到台北參加研討會

    感覺上這(依舊)是個產品說明會
    這類廠商舉辦的研討會常是這樣
    用一個看似很有研究價值的題目
    吸引你來看他們已經研發出來的產品

    講得好像很不堪但其實也不然
    舉辦廠商如果提出來的眼光夠廣,多講一些技術
    依舊很有可看性
    可惜這次IBM提供的我還是嫌不夠 :-(

    這場研討會中聽到(我覺得)比較重要的內容
    1. virtualization 的目的: 節能、彈性、容錯
    2. storage virtualization

    節能方面,省了機器相對就是節能,
    在能源緊縮的情況下越來越重要
    彈性方面,主要是在資源配置上,
    可以迅速的給出符合各種需求的機器
    容錯方面,包括避免出錯及恢復的速度,
    可以迅速給出一致的硬體
    或者將虛擬機器在實體機器之間移動
    以後甚至支援讓虛擬機器在兩台實體機器上同時運行

    storage virtualization 則提供了介面一致的儲存媒體
    將硬體差異隱藏在虛擬層之下,
    由硬體管理原再根據實際需求作動態分配
    把好的硬體用在最需要的地方

    根據這些,往後應該關注一下是否會有 Free Solution 出現,
    規劃的時候也可以往這些個方向去考量一下。

    BTW, 這次活動地點在台北 “六福皇宮“,餐點還滿精緻的
    可惜不給無線上網,對我算是有點虛度時間
    (如果能一面上MSN,多好 :-P )

    禮拜四要到台北參加研討會

    這週四要去台北參加IBM的研討會
    Topic: 虛擬世界任我行 – 2008 IBM 虛擬科技大觀園

    原本週四下午要到 itri 打工的
    前幾天,我在 itri的上司丟了這個研討會的 link
    問我是不是有興趣去參加…
    (那禮拜四應該可以算打工吧? 雖然這麼一來就要從一大早 orz)
    剛好,這也跟我最近在試驗的 Virtual Machine 非常相關
    當然就答應囉。

    希望能夠聽到,將來大廠在這個領域上能提供什麼樣的產品,
    比現在手上的 Solution 更有效率、更穩定,或者更好管理。

    糟糕的Excel (2003)

    講講前陣子幫朋友處理一筆大量的資料時遇到的問題

    當我們要在 Excel (2003) 中輸入一段文字,格式是 ###E###
    (# 為一般數字,E為英文字母,舉例來說: 875E106)

    他會怎麼做?
    當你輸入完並且按下Enter時,他會自動轉換成科學表示法 (ex. 8.75E+108)
    因為他把 E 判斷成你要以科學記號表示法
    更嚴重的是,一旦他判斷並且自動轉換後,結果是不可還原的!

    目前嘗試出來唯一讓表示結果正確的
    就是先設定儲存格格式為文字才輸入資料
    否則一旦被修改掉,只能重新輸入。

    如果僅僅是這樣還無所謂,但這次遇到的問題更頭痛

    Excel 支援一個 CSV 儲存格式,以純文字的方式儲存:
    每一行代表一個 Row,每個 field 以逗號(,)分隔
    這個格式相當方便,因為是純文字,我們可以自己寫程式去做轉換

    問題就發生在,我將正確的計算結果儲存到 CSV 檔案之後
    使用 Excel 開起來,所有上述格式的文字全部被當成科學表示法轉換了
    並且還不能夠藉由事後指定格式轉換回來
    我手上的資料是好幾千筆,回頭一個一個改可是個大工程 :-(

    目前手上沒有比較好的解法,所以只能夠提醒大家有這個現象 Orz
    用 Excel 整理手上資料,一定要注意格式是否偷偷被換掉了!

    Virtual Machines in CSCC -2

    經過大約一週的安裝與測試
    覺得 Virtual Machine 穩定度與效能已經堪用了
    指揮建議助教直接把機器送上火線測試了

    測試的方式其實有點激進
    直接把原本最多人用的兩台工作站用新裝好的機器取代
    並且請助教上去跑一些測試程式
    以測試在具有一定程度的負荷下,是否仍然穩定

    目前看起來還不錯
    只是會有VM裡頭機器時間不太準的老問題
    助教正在研究用 ntpd 能不能解
    或者要頻繁的去 ntpdate 一下 @_@

    地震

    今天凌晨一點左右,坐在電腦前
    突然來了個地震,當時與朋友正在聊電腦
    喊了句地震,發現沒事就暫時不管
    反正也只是稍微被嚇到

    後來才發現不少人在討論這個地震
    先有這個 中央氣象局的地震報告
    看了看大家的討論,也是都很懷疑
    1. 奇怪的地點,新竹附近應該沒什麼地震帶
    2. 震動方式不像一般的地震
    但也沒什麼證據,議論紛紛 (覺得像是有爆炸)

    今天在BBS上就看到有人證實
    這是一個實驗,有個實驗計畫叫做 TAIGER
    因此是一個人工地震,轉錄部分文章如下:

    > 會有人工地震的說法
    > 其實是因為一個名叫 TAIGER 的國際合作計畫
    > 主要是用炸藥製造地震
    > 透過震波的傳遞來研究大地動力學

    COOL!

    irseek

    今天掛在 IRC 上的時候
    有個不認識的人用英文跟我聊了起來

    主要是他們架設了一個網站 http://www.irseek.com/
    收集 irc 各種討論技術的 channel log
    加上搜尋的功能,讓人方便查找

    由於我開了一個 private channel
    他希望我能將這個 channel log 給他作為資料
    可惜這是個課程討論區 (事實上都不是在聊技術)
    而且也不是以英文為主的,因此我認為不適合
    他也同意了

    覺得 idea 還不錯,發一文做為推廣

    Virtual Machines in CSCC

    對於”對PC產業稍微有所關注”的人來說
    應該都注意到了這兩年CPU的發展重心漸漸移往多核心設計去了
    詳細的原因(散熱、耗電)不是我這裡要講的,所以就先撇開不談

    目前主流應該是雙核心,但四核心已經漸漸浮上檯面,八核心也蓄勢待發
    但除了發燒級玩家以外,多數的 End-User事實上需要的僅僅是順利完成手上的工作罷了
    即便對我這個電腦重度依賴症患者使用者來說
    我仍舊寧願升級鍵盤螢幕滑鼠硬碟,也沒打算更新我整個電腦系統
    手上的電腦系統還是停留在三年前的 AMD 單核心 CPU (Barton 2500+)
    (即便我心中小惡魔早已蠢蠢欲動)

    對於CSCC來說,為了消化年度預算改善使用者環境,更新伺服器硬體是每年的大事
    並且因應兩系合併,對系計中的使用需求大增但是空間卻大幅緊縮
    上個年度我們就盡可能的將伺服器換成機架式的 Server
    因此現在進到系計中機房,就可以看到數櫃的 1U Server,其實還滿壯觀的 :-)
    … 又扯遠了 …

    雖然說空間滿重要的,對CSCC來說盡可能妥善利用機櫃空間非常有必要
    但是新採購的機器幾乎都已經是雙核心架構的機種了,
    是否真有能夠好好利用這些伺服器的應用呢? 事實上是少之又少!
    除了幾個比較可能出現 heavy load 的服務之外
    (如 Web Service 會碰上一年一度的網路程式設計)
    多數的情況,直接拿三四年前的機種來做,也差不到哪裡去
    放眼未來將會採購的四核、八核,甚至十六核心機種
    如何更妥善的使用他們,一直是我在思考的問題

    虛擬機器(Virtual Machine, 以下簡稱 VM)並不是一個非常新穎的概念
    在一個原有的作業系統上,利用特殊的模擬軟體模擬出一個完整的電腦
    並且在這個模擬的電腦上再 run 一個作業系統,就這麼個簡單的概念
    早在 2001 年 Vmware Workstation 2.0.4 版的時候我就試驗過
    但既然是模擬的,效能上有些打折扣也是必然的。

    在 CPU Performance 上其實問題不大,一方面是 CPU 夠快了,
    另一方面是很早開始軟體便支援將程式碼原封不動交給 CPU 做的功能。
    然而在 I/O 上一直有效能不彰的問題,當然,記憶體用量也是個瓶頸
    是故,先前一直沒考慮過將 Server 用 VM 來取代
    直到最近,多核心設計普及,以及記憶體量&價突破我心中的尺
    我決定重新評估虛擬機器的適用環境範圍。

    納入考慮的,先是硬體的考量
    若是有”純硬體”的 solution,那我會優先選擇
    (指的是直接有一台機器,可以被設定/切分成多台虛擬機器來使用)
    很可惜,似乎沒有 :-(

    軟體(及作業系統)上的考量,首先是我不想以 M$ Windows 作為底層的系統
    吃資源、大而無當,不符合我的 style,
    更別說一個月發一次更新檔導致強迫的重開,Unix-Like OS 才是我喜歡的解
    如此一來,XENVmwareQEMU 便成了我優先考量的軟體

    在與 chenpc 等幾位助教做過多次嘗試之後,
    我們暫時選擇以 Gentoo Linux + Vmware Server Free 作為實際評估的平台
    緊急商請團長 (ycchang) 採購了一組試驗平台:
    Intel Q6600 (OC 3.2GHz), Gigabyte G33-DS3R, Trancend DDR2-800 2G*4, 500W Power
    佐以既有的 160G IDE HDD *1, 250G SATA HDD*4

    較細部的設置:
    Gentoo 裝在 160G IDE HDD, 每個 VM 則配給 768M Ram (預計升到 1G), 專屬 250G HDD *1
    Guest OS 中,Linux 設定可以用 2 個虛擬 CPU, FreeBSD 則是 1 個 (2個會有支援度的問題,殘念)

    目前系統已經建構完成,看起來也沒什麼大問題,預計測試一陣子後再來說說的感想。

    Ps. 說不定就偷偷替換掉現在正在使用的工作站以求得更貼近真實的結果。 :-P
    Ps2. 其實我對於虛擬機器(Virtual Machine)的描述並不夠 General, 但我認為這樣比較貼近我要講的應用。
    Ps3. 我也不敢保證我寫的都對 or 恰當,懇請不吝指教,多提供些意見給我。