每當我將br0 設定為在啟動時自動啟動時,它都會導致系統掛起- 通常在一行上寫著“等待2 秒讓br0 準備好”或“綁定到xxxx 到br0 - 在xxxx 中更新” (即在啟動過程中,在任何圖形介面初始化之前)。
將 Debian Sid 與 KVM 和 virt-manager 結合使用。一旦啟動,我就可以毫無問題地讓橋開始運行,而且它的工作方式就像一個魅力。問題是我希望它自動連接 br0,就像普通介面一樣。我不認為這是一個荒謬的想法,但話又說回來,我在 Linux 網路方面沒有太多經驗。
我已經嘗試了幾乎所有我發現的 /etc/network/interfaces 配置,所有這些配置都會導致它在啟動時掛起,或者不自動啟動 br0。我唯一沒有廣泛探索的是我偶爾看到的“pre-up”和“post-down”命令,但我的印像是這些不一定需要。因為系統完全掛起並拒絕進一步啟動,所以每次強制它重新啟動、啟動救援發行版並刪除介面檔案中的任何配置是相當痛苦的。
我已經通過在 /etc/rc.local 中放入“ifup br0”成功地使其自動啟動,但這會導致一些其他問題,例如共享無法連接和 VNC 無法啟動。雖然我還沒有完全達到那個階段,但我擔心的是,如果我使用這種方法,一旦我將它們設定為自動啟動,我的客人將無法啟動。
答案1
這感覺像是一個非解決方案,但它似乎有效。我所做的是創建了兩個介面檔案——interfaces_eth0 和interfaces_br0。然後我添加了
cp "/etc/network/interfaces_br0" "/etc/network/interfaces"
service networking restart
cp "/etc/network/interfaces_eth0" "/etc/network/interfaces"
到/etc/rc.local
Debian 將啟動,我的共享連接並且我的訪客可以訪問網絡,即使設置為自動啟動也是如此。
答案2
迄今為止似乎有效的另一個解決方案涉及以下內容。我在 /etc/init.d/network_fix 建立了一個腳本,其中包含以下內容:
### BEGIN INIT INFO
# Provides: network_fix
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Fix network for KVM
# Description: Resolve bridging bug causing hang on boot.
### END INIT INFO
#! /bin/sh
# /etc/init.d/blah
#
cp -f /etc/network/interfaces_br0 /etc/network/interfaces
ifdown br0 eth0 eth1
ifup br0
cp -f /etc/network/interfaces_none /etc/network/interfaces
exit 0
然後用 刷新我的 init.d update-rc.d
。/etc/network/interfaces_none
僅包含環回,並/etc/network/interfaces_br0
包含以下內容:
auto lo
iface lo inet loopback
auto eth1
allow-hotplug eth1
iface eth1 inet dhcp
auto br0
iface br0 inet dhcp
bridge_ports eth1
bridge_stp off
此時我新增了一個額外的 NIC,因此eth1
.