{"id":3003,"date":"2025-02-08T16:34:50","date_gmt":"2025-02-08T21:34:50","guid":{"rendered":"https:\/\/blog.lufamily.ca\/kang\/?p=3003"},"modified":"2025-02-08T16:35:21","modified_gmt":"2025-02-08T21:35:21","slug":"linux-boot-with-no-networking","status":"publish","type":"post","link":"https:\/\/blog.lufamily.ca\/kang\/2025\/02\/08\/linux-boot-with-no-networking\/","title":{"rendered":"Linux Boot with No Networking"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignleft size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1017\" height=\"1024\" src=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2025\/02\/715VORl4sVL._AC_SL1500_-1017x1024.jpg\" alt=\"\" class=\"wp-image-3004\" style=\"width:300px;height:auto\" srcset=\"https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2025\/02\/715VORl4sVL._AC_SL1500_-1017x1024.jpg 1017w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2025\/02\/715VORl4sVL._AC_SL1500_-298x300.jpg 298w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2025\/02\/715VORl4sVL._AC_SL1500_-150x150.jpg 150w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2025\/02\/715VORl4sVL._AC_SL1500_-768x773.jpg 768w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2025\/02\/715VORl4sVL._AC_SL1500_-1200x1209.jpg 1200w, https:\/\/blog.lufamily.ca\/kang\/wp-content\/uploads\/sites\/3\/2025\/02\/715VORl4sVL._AC_SL1500_.jpg 1401w\" sizes=\"auto, (max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 1362px) 62vw, 840px\" \/><figcaption class=\"wp-element-caption\">GLOTRENDS PA09-HS M.2 NVMe to PCIe 4.0 X4 Adapter<\/figcaption><\/figure>\n<\/div>\n\n\n<p>I recently wanted to install an <a href=\"https:\/\/www.amazon.ca\/dp\/B07FN3YZ8P?ref=ppx_yo2ov_dt_b_fed_asin_title&amp;th=1\" target=\"_blank\" rel=\"noreferrer noopener\">M.2 NVMe to PCIe 4.0 X4 Adapter<\/a> on an existing server. The idea was to install a new NVMe SSD drive, and the motherboard had no more M.2 sockets available.<\/p>\n\n\n\n<p>The server is running Proxmox with Linux Kernel 6.8.12. I thought this should be a 15-minute exercise. How wrong I was. After installing all the hardware, the system booted up but there was no networking access. This was especially painful because I could no longer remote into the server. I had to go pull out an old monitor and keyboard and perform diagnostics.<\/p>\n\n\n\n<p>I used the <code>journalctl<\/code> command to diagnose the issue, and found the following entry:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>Feb 01 13:36:21 pvproxmox networking&#91;1338]: error: vmbr0: bridge port enp6s0 does not exist\nFeb 01 13:36:21 pvproxmox networking&#91;1338]: warning: vmbr0: apply bridge ports settings: bridge configuration failed (missing ports)\nFeb 01 13:36:21 pvproxmox \/usr\/sbin\/ifup&#91;1338]: error: vmbr0: bridge port enp6s0 does not exist\nFeb 01 13:36:21 pvproxmox \/usr\/sbin\/ifup&#91;1338]: warning: vmbr0: apply bridge ports settings: bridge configuration failed (missing ports)<\/code><\/pre>\n\n\n\n<p>The above error message indicates that <code>enp6s0<\/code> no longer exists. When I looked at earlier messages, I noticed this one:<\/p>\n\n\n\n<pre class=\"wp-block-code has-small-font-size\"><code>Feb 01 13:36:15 pvproxmox kernel: r8169 0000:07:00.0 enp7s0: renamed from eth0<\/code><\/pre>\n\n\n\n<p>It looks like the interface name has been changed from <code>enp6s0<\/code> to <code>enp7s0<\/code>. Therefore the correct remedy is to edit the <code>\/etc\/network\/interfaces<\/code> to reflect the name change. Below is the new content of the file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># cat \/etc\/network\/interfaces\nauto lo\niface lo inet loopback\n\niface enp7s0 inet manual\n\nauto vmbr0\niface vmbr0 inet static\n        address 192.168.188.2\/24\n        gateway 192.168.188.1\n        bridge-ports enp7s0\n        bridge-stp off\n        bridge-fd 0\n\niface wlp5s0 inet manual<\/code><\/pre>\n\n\n\n<p>This would be very annoying if the old interface name was used in many other configuration files. There is one other reference that I found on the Internet  (<a href=\"https:\/\/www.baeldung.com\/linux\/rename-network-interface\">https:\/\/www.baeldung.com\/linux\/rename-network-interface<\/a>) detailing a way to change the network interface name using the <code>udev rules<\/code>. I did not try this, but something to keep in mind in the future.<\/p>\n\n\n\n<p>In a <a href=\"https:\/\/blog.lufamily.ca\/kang\/2022\/11\/27\/media-server-upgrade-2022\/\" data-type=\"post\" data-id=\"1890\" target=\"_blank\" rel=\"noreferrer noopener\">previous post<\/a> and on another home server, I did fix the name using <code>netplan<\/code>, but Proxmox is not using it.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I recently wanted to install an M.2 NVMe to PCIe 4.0 X4 Adapter on an existing server. The idea was to install a new NVMe SSD drive, and the motherboard had no more M.2 sockets available. The server is running Proxmox with Linux Kernel 6.8.12. I thought this should be a 15-minute exercise. How wrong &hellip; <a href=\"https:\/\/blog.lufamily.ca\/kang\/2025\/02\/08\/linux-boot-with-no-networking\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Linux Boot with No Networking&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[111,1],"tags":[12,5,67,177,28],"class_list":["post-3003","post","type-post","status-publish","format-standard","hentry","category-tech","category-uncategorized","tag-it","tag-nas","tag-networking","tag-proxmox","tag-technology"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p7V6i8-Mr","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts\/3003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/comments?post=3003"}],"version-history":[{"count":5,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts\/3003\/revisions"}],"predecessor-version":[{"id":3009,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/posts\/3003\/revisions\/3009"}],"wp:attachment":[{"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/media?parent=3003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/categories?post=3003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.lufamily.ca\/kang\/wp-json\/wp\/v2\/tags?post=3003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}