差異處
這裏顯示兩個版本的差異處。
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~~ | ||