[求助] diskless client 如何設定 hostname

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

[求助] diskless client 如何設定 hostname

文章hmchen » 週四 2月 15, 2007 2:21 pm

想請問有沒有在不更改目前 IP 設定的情形下, 直接從 dhcp server 取回 hostname 的方法? 詳細症狀如下:

小弟目前已經架好一台 server 提供 tftp, dhcp, nfs 等 services
讓另其他台 clients 可以用 root over NFS 方式遠端開機
但是目前遇到一個麻煩, client 端的 hostname 不曉得要如何從 server 端取得

client 端的 IP 是由 initrd.img 中的 ipconfig 這支程式取得 (不是 ifconfig 喔!), 但是並不會取回 hostname
而當控制權移轉到 root file system 的 init 時, hostname 的設定卻只是讀取 /etc/hostname 的內容
由於該 root file system 是同時提供給多台 clients 共用, 所以 hostname 無法以靜態形式設定

在 google 上搜尋許久後, 似乎只有 dhclient 可以從 dhcp server 同時取回 IP 與 hostname 資訊.
而 dhclient 似乎會先 release 目前的 IP, 但這樣馬上就連不上 nfs server 上的 root file system, 整個系統也跟著停擺
hmchen
可愛的小學生
可愛的小學生
 
文章: 38
註冊時間: 週二 6月 08, 2004 7:34 pm
來自: 台灣共和國

文章訪客 » 週五 2月 16, 2007 3:48 pm

任何時候都可以用
/bin/hostname [hostname]
改變機器的hostname
訪客
 

文章hmchen » 週五 2月 16, 2007 4:06 pm

自問自答. 昨天到 IRC 上跟網友邊聊邊試, 終於弄好了~

仔細檢查發現, init ramdisk 階段還是有從 dhcp server 取回正確的 hostname, 只是被 /etc/hostname 給洗掉了
因為打算讓所有 diskless clients 共用同一份 root file system (包含 /etc 在內)
所以如果系統中存在 /etc/hostname 這個檔案, /etc/init.d/hostname.sh 會重設 hostname,
結果就變成所有 clients 都被設定成一樣的 hostname

經過測試, 有兩種可行的解決方式:
1. ln -s /proc/sys/kernel/hostname /etc/hostname
2. 直接刪除 /etc/hostname
目前我是採取第一種做法
hmchen
可愛的小學生
可愛的小學生
 
文章: 38
註冊時間: 週二 6月 08, 2004 7:34 pm
來自: 台灣共和國


回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客