差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
osprovision:kickstart:ubuntu:networkproblem:dhcptimeout [2016/10/06 14:59]
tony [使用preseed]
osprovision:kickstart:ubuntu:networkproblem:dhcptimeout [2023/06/25 09:48] (目前版本)
行 2: 行 2:
 ====== Ubuntu-server在執行kickstart安裝時的DHCP Timeout設定 ====== ====== Ubuntu-server在執行kickstart安裝時的DHCP Timeout設定 ======
 ===== Problem ===== ===== Problem =====
-Ubuntu在安裝過程中,會在這個階段去設定網路:​\\+Ubuntu在安裝過程中,會在%pre後如下圖的階段去設定網路:​\\
 {{:​osprovision:​kickstart:​ubuntu:​networkproblem:​ubnutu_config_dhcp.png|}}\\ {{:​osprovision:​kickstart:​ubuntu:​networkproblem:​ubnutu_config_dhcp.png|}}\\
 而我們曾遇過幾次DHCP取不到的問題。本篇文章主要告訴你,如何去設定DHCP Timeout。 而我們曾遇過幾次DHCP取不到的問題。本篇文章主要告訴你,如何去設定DHCP Timeout。
 ===== Diagnostic Result ===== ===== Diagnostic Result =====
-首先是確認Ubuntu使用什麼工具去透過DHCP取得IP,通常都是使用dhclient。檢查/​var/​log/​syslog可以確定是dhclient:​(以下的圖改過timeout)\\+首先是確認Ubuntu使用什麼工具去透過DHCP取得IP,通常都是使用dhclient。檢查/​var/​log/​syslog可以確定是dhclient:​(以下的圖有將timeout改為40秒)\\
 {{:​osprovision:​kickstart:​ubuntu:​networkproblem:​ubuntu_discover_dhclient_duration.png|}}\\ {{:​osprovision:​kickstart:​ubuntu:​networkproblem:​ubuntu_discover_dhclient_duration.png|}}\\
 接著就是確認dhclient設定檔。通常dhclient設定檔會放在/​etc/​dhclient.conf或/​etc/​dhcp/​dhclient.conf中,而在整個安裝過程中,你可能會找到三個dhclient設定檔:​ 接著就是確認dhclient設定檔。通常dhclient設定檔會放在/​etc/​dhclient.conf或/​etc/​dhcp/​dhclient.conf中,而在整個安裝過程中,你可能會找到三個dhclient設定檔:​
行 12: 行 12:
   - /​target/​etc/​dhcp/​dhclient.conf   - /​target/​etc/​dhcp/​dhclient.conf
   - /​etc/​dhclient.conf   - /​etc/​dhclient.conf
-第一個是安裝來源(如光碟)所攜帶的;第二個是安裝完系統上的;第三個則是安裝環境使用的。檢查/​etc/​dhclient.conf可以發現預設timeout為30秒。+第一個是安裝來源(如光碟)所攜帶的;第二個是安裝完系統上的;第三個則是安裝環境使用的,必須kickstart中network使用dhcp才會出現此外,檢查/​etc/​dhclient.conf可以發現預設timeout為30秒。
  
 ===== How to resolve? ===== ===== How to resolve? =====
行 27: 行 27:
 在安裝過程中,可以去檢查/​etc/​dhclient.conf,會改成你所設定的值:​\\ 在安裝過程中,可以去檢查/​etc/​dhclient.conf,會改成你所設定的值:​\\
 {{:​osprovision:​kickstart:​ubuntu:​networkproblem:​ubuntu_dhclient_conf.png|}} {{:​osprovision:​kickstart:​ubuntu:​networkproblem:​ubuntu_dhclient_conf.png|}}
 +==== 使用udhcpc ==== 
 +假如不想透過preseed的方式,可以透過udhcpc。udhcpc是BusyBox內建的DHCP client程式,你可以這樣去設定timeout:​ 
 +<code bash> 
 +udhcpc -i eno2 -T 90 -n 
 +</​code>​ 
 +-T是timeout;-n則是代表發生錯誤後就離開。 
 +==== 使用dhclient ==== 
 +在經過installer的網路設定階段後,dhclient套件就會被放到安裝系統中。而如果要使用dhclient去偵測網路,必須注意執行的角色。我們來討論以下兩種情況:​ 
 +  - 無chroot: %post有宣告--nochroot。 
 +  - 有chroot: %port沒宣告--nochroot的預設值。 
 +在第一種情況下,經過試驗且沒特別指定就是30秒,可以透過-cf參數指定dhclient.conf;而第二種情況下,會使用/​target/​etc/​dhcp/​dhclient.conf中的timeout,預設為300秒。
 ===== Reference ===== ===== Reference =====
   * [[https://​www.debian.org/​releases/​lenny/​example-preseed.txt|example-preseed]]   * [[https://​www.debian.org/​releases/​lenny/​example-preseed.txt|example-preseed]]
   * [[http://​felix-lin.com/​linux/​busybox-%E6%87%89%E7%94%A8-udhcpc|udhcpc的使用]]   * [[http://​felix-lin.com/​linux/​busybox-%E6%87%89%E7%94%A8-udhcpc|udhcpc的使用]]
  
 +=====    =====
 +----
 +\\
 +~~DISQUS~~