[英]My newly compiled kernel loses Networking in qemu
我從源代碼編譯了一個內核: make defconfig
make kvmconfig
make -j 4
在此之后,我將生成的 bzImage 用於我的 qemu 命令: qemu-system-x86_64 -hda debian.img -kernel bzImage -append "root=/dev/sda console=ttyS0" -nographic -m 4096 -smp 2 --enable-kvm -net user,hostfwd=tcp::10021-:22 -net nic
它掛載了,我得到了一個 shell 和所有東西,但它失去了連接。 在 qemu 中,它記錄: [FAILED] Failed to start Raise network interfaces. See 'systemctl status networking.service' for details.
[FAILED] Failed to start Raise network interfaces. See 'systemctl status networking.service' for details.
有人可以指導我嗎? 我已經在 QEMU 和 eth0 網絡上咨詢了Linux vanilla 內核,但它沒有解決我的問題。 另外,我不是在尋找硬核 qemu-bridge-solutions。 我很確定某些網絡驅動程序沒有被加載,但我不知道如何解決它。 或者我可能缺少一些內核 .config 選項。
您正在使用用戶套接字。 為此,qemu 在其主機進程中創建一個常規套接字,並將客戶機中特定端口的數據包轉發到主機套接字。 這是可行的,但我覺得很煩人。
我總是更喜歡創建一個 Tap 設備並使用這些 QEMU 開關將其橋接到我的物理接口:
-netdev tap,ifname=tap0,script=no,downscript=no,id=my_net_id \
-device driver=virtio-net,netdev=my_net_id
這樣您就擁有完整的網絡功能,並且不需要使用一些奇怪的端口重定向。
正在尋找這個問題的答案。 對於其他尋求幫助的人,OP 所指的 dhclient 命令是(在此處找到):
dhclient -v <interface>
其中 interface 是在ip a
結果中顯示的任何網絡適配器。
為了在重新啟動后保持此更改,我通過插入以下內容修改了 /etc/network/interfaces 文件:
auto <interface>
iface <interface> inet dhcp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.