2012年6月13日 星期三

安裝 Debian 的特殊方法 - WAN 安裝篇

因為我實驗 Linux 多使用舊機器,硬體常常掛點,特別是現在的硬碟品質很差,二手的硬碟最多撐個一年多就掛了,所以常常需要重灌。而實驗的機器往往沒有掛光碟機,所以重灌時裝光碟機很麻煩(我可沒錢投資外接光碟),而且現在的 Linux 版本更新很快,燒一張安裝光碟不久之後就可能成了垃圾。

所以,我多半使用網路安裝的方式來進行系統的安裝。

網路安裝很簡單,只要到 Debian 網站 Official netinst images for the "stable" release  處下載 linux(核心)與 initrd.gz(啟始記憶體式碟片映像壓縮檔) ,放到 /boot 目錄(我通常會另外分割出一個磁碟分割區給 boot 目錄,所以下面檔案位置是根目錄),然後在 /boot/grub/grub.cfg 新增一個 menuentry 即可。

menuentry 'Install Debian' {
        set root='(hd0,msdos1)'
        linux  /linux
        initrd /initrd.gz
}

但是,這樣有一個明顯的缺點,因為首先你必須有一個舊的 Linux 系統在才行,若是全新安裝,那就要再另想方法了。過去我用過一種很笨的方法,就是先裝一個舊的 Linux 系統,選擇最簡安裝,再用上面所述方法安裝新的系統。

而且,若是安裝步驟進行到格式化 linux、initrd.gz 以及 grub 所在的磁碟分割區(通常是/boot),之後若是安裝有什麼差錯要重來一遍的話,那就前功盡棄,得重來一遍了。或許可以做 dual boot 來解決,但那也不算是什麼高明的方法(所以我也沒有實驗過,呵!呵!)。

後來,學會使用 grub4dos,就方便許多,因為理論上(目前未曾實作過)安裝 DOS 系統畢竟比安裝一個 Linux 系統快了許多了。而此法也能應用在一種常見的狀況:也就是在 Windows 系統存在的情況下,可以方便地只用硬碟與網路就能安裝 Debian,而不需要下載一龐大的 ISO 檔,然後再燒錄光碟片,然後再安裝 Debian 系統。若是安裝失敗,只要不是誤刪了 Windows 分區,不會花費太多功夫回來補救。

grub4dos 的簡易使用法(Windows XP):

1. 複製 grldr 到 Windows 系統開機磁區(通常為 C 碟)。
2. 新增 memu.lst 檔案,範例如下:

title Windows XP
find --set-root --ignore-floppies /ntldr
chainloader /ntldr

title find and load BOOTMGR of Windows VISTA
root   (hd1,0)
kernel /linux
initrd /initrd.gz

當然這種方法不一定是最好的,學習 Linux 的驚奇就是這樣,有各式各樣的方法可以來解決各式各樣的問題。 我在 "安裝 Debian 的特殊方法 - 網路開機(netboot)篇" 裡也介紹了一種方法,以後還會有相關的研究陸續進行。

2012年6月12日 星期二

安裝 Debian 的特殊方法 - 網路開機(netboot)篇

一、首先要設定 BOOTP 與 TFTP 伺服器:(使用套件 - openbsd-inetd, bootp, tftpd)
  • /etc/inetd.conf (inetd相關設定檔) 
確認以下服務已被正確設定:

#:BOOT: TFTP service is provided primarily for booting.  Most sites
#       run this only on machines acting as "boot servers."
bootps          dgram   udp     wait    root    /usr/sbin/bootpd        bootpd -i -t 120
tftp            dgram   udp     wait    nobody  /usr/sbin/tcpd          /usr/sbin/in.tftpd /srv/tftp

* 注意:本實作的 tftp 的根目錄設在 /srv/tftp

  • /etc/bootptab (bootpd相關設定檔)
ready4install:  hd=/srv/tftp:bf=pxelinux.0:ip=192.168.11.99:sm=255.255.255.0:sa=192.168.11.100:ha=0800274C6254

*注意1:黃色部份順依實際網*注意1:路配置而定,上為示例。
*注意2:hd 似不能省略,若省略 Client 端會試圖載入 /pxelinux.0,而不是在 /srv/tftp 底下的 pxelinux.0

伺服器設定完畢,需要重新啟始 openbsd-inetd。

/etc/init.d/openbsd-inetd restart


二、準備開機檔:
自 Official netinst images for the "stable" release 下載 netboot.tar.gz 然後解開到 /srv/tftp 底下。


實作20120613的特殊經驗:

1. 用 VirtualBox(v4.1.16) 來做實驗注意事項及問題:
  (1) 當使用內部網路機制時,在進階的設定中,介面卡類型要用 PCnet-FAST III (Am79C973)才能啟用 PXE (Preboot Execution Environment) Client 的功能。
  (2) 「僅限主機」介面卡操作始終有問題,未解。