Tag Archive for 'Computer'

用 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

    Virtual Machines in CSCC -2

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

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

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

    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 恰當,懇請不吝指教,多提供些意見給我。