{"id":5284,"date":"2023-09-10T03:48:17","date_gmt":"2023-09-10T11:48:17","guid":{"rendered":"https:\/\/wonghoi.humgar.com\/blog\/?p=5284"},"modified":"2023-09-12T17:18:44","modified_gmt":"2023-09-13T01:18:44","slug":"set-up-and-usage-notes-for-proxmox-kvm-qemu","status":"publish","type":"post","link":"https:\/\/wonghoi.humgar.com\/blog\/2023\/09\/10\/set-up-and-usage-notes-for-proxmox-kvm-qemu\/","title":{"rendered":"Set up and Usage notes for Proxmox (KVM\/Qemu)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Bump 1: Dick move from Proxmox<\/h2>\n\n\n\n<p>The first thing that trips me from Proxmox is the downloadable, despite it said it&#8217;s free if you don&#8217;t use their enterprise repository, is Enterprise (paid) version out of the box, with <strong>no option to download the free version that&#8217;s configured as free<\/strong>\/community edition. <\/p>\n\n\n\n<p>It&#8217;s a dick move to greet ALL new users with this, hoping to scare them to consider a subscription:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"928\" height=\"211\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-28.png\" alt=\"\" class=\"wp-image-5320\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-28.png 928w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-28-300x68.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-28-768x175.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-28-500x114.png 500w\" sizes=\"auto, (max-width: 928px) 100vw, 928px\" \/><\/figure>\n\n\n\n<p>I don&#8217;t think frustrating people who are trying to learn\/explore the software will make them want to pay for a subscription. The best this dick move can do is to scare new users away as the user might think they did something wrong getting things they don&#8217;t expect. I certainly thought of throwing out Proxmox had there be better options out there when I run into this, as I&#8217;m still evaluating whether I should go with Qemu or Hyper-V.<\/p>\n\n\n\n<p>First of all. This scary message doesn&#8217;t actually block you from using Proxmox. It&#8217;s just that you don&#8217;t get updates until you either pay for their enterprise repositories or change to the free repositories. At least you can still use the interface to gain shell access which we&#8217;ll need to fix it (or you can go to the physical computer and enter the same thing in the text terminal display locally)<\/p>\n\n\n\n<p>The difference between enterprise and free is just which servers the update repositories points to. Getting the latest and greatest is not necessarily a plus for enterprise users so they let free users take the risks first and provide feedback so they can polish their software. Fair enough. Great model. <\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>There are two parts to fixing this ordeal:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configuring the update repositories to the free no-subscription repositories (Functional issue, and it&#8217;s per node, including slave nodes)<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Removing the nag screen (Cosmetic, and it&#8217;s the overall Proxmox, aka the main node hosting the Proxmox management interface)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Fix Subscription Scare Part 1: Updating repositories locations<\/h2>\n\n\n\n<p>Basically, what you&#8217;ll need to do is to notice edit the lines file names show below (underlined in red) corresponding to the repository URL path you want to change:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"446\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-5-1024x446.png\" alt=\"\" class=\"wp-image-5286\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-5-1024x446.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-5-300x131.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-5-768x334.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-5-1536x669.png 1536w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-5-500x218.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-5.png 1902w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">\/etc\/apt\/sources.list.d\/pve-enterprise.list<\/code> is not necessary for free users, so you can simply comment all the lines out (there&#8217;s only one line)<\/p>\n\n\n\n<p><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\"><code>\/etc\/apt\/soruces.list<\/code><\/code> is the link to the core repository for Proxmox updates. Instead of blindly following exact instructions which can go stale as version progresses, open the URL <code>http:\/\/download.proxmox.com\/debian\/<\/code> and see what&#8217;s out there. What&#8217;s not spelled out in the web admin interface is the intermediate folder called &#8216;<code>dist<\/code>&#8216;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"758\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-7-1024x758.png\" alt=\"\" class=\"wp-image-5288\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-7-1024x758.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-7-300x222.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-7-768x568.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-7-405x300.png 405w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-7.png 1370w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>bookworm is the latest Debian version&#8217;s code name at the time of writing<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-8-1024x487.png\" alt=\"\" class=\"wp-image-5289\" style=\"width:614px;height:292px\" width=\"614\" height=\"292\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-8-1024x487.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-8-300x143.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-8-768x365.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-8-500x238.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-8.png 1372w\" sizes=\"auto, (max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<p>and obviously we pick the branch\/sub-folder that says no-subscription (there&#8217;s no enterprise here since it belongs to a different root URL), but you still have to get the name right for the &#8216;Components&#8217;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"422\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-9-1024x422.png\" alt=\"\" class=\"wp-image-5290\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-9-1024x422.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-9-300x124.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-9-768x317.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-9-500x206.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-9.png 1370w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You can open it with a text editor like nano:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apt\/sources.list<\/code><\/pre>\n\n\n\n<p>and edit this proxmox&#8217;s repository line (remember to skip the &#8216;<code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">dists<\/code>&#8216; intermediate folder). Every space after a word that is just a subfolder you see from the folder structure. If Debian released a new version\/codename, you might also want to update the first 3 lines of debian repositories as well to match the name code name (and folder structure if they rearranged it).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"286\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-11-1024x286.png\" alt=\"\" class=\"wp-image-5292\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-11-1024x286.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-11-300x84.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-11-768x214.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-11-500x140.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-11.png 1035w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Ceph is an optional feature (not installed) yet it&#8217;s configured to be enterprise as well, so for consistency, we might want to change it to the no-subscription (free) version as well. The latest codename for ceph that was published at the time of writing is &#8220;quincy&#8221; (there&#8217;s nothing in the &#8220;reef&#8221; folder), so we click on it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"790\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-12-1024x790.png\" alt=\"\" class=\"wp-image-5293\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-12-1024x790.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-12-300x231.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-12-768x593.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-12-389x300.png 389w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-12.png 1305w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Again the &#8216;dists&#8217; is boilerplate and not spelled out (so we don&#8217;t enter it) in the entries of the repository sources file.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-13-1024x311.png\" alt=\"\" class=\"wp-image-5294\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-13-1024x311.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-13-300x91.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-13-768x233.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-13-500x152.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-13.png 1303w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>bookworm is the current Debian version for that<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"329\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-14-1024x329.png\" alt=\"\" class=\"wp-image-5295\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-14-1024x329.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-14-300x96.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-14-768x247.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-14-500x161.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-14.png 1358w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>and we see a &#8220;no-subscription&#8221; folder which is the one we want obviously. We can just guess by sensible names you&#8217;d choose if you were the developer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"525\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-15-1024x525.png\" alt=\"\" class=\"wp-image-5296\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-15-1024x525.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-15-300x154.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-15-768x393.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-15-500x256.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-15.png 1349w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You can again open a text editor like nano to edit the repository location file as shown in the web admin UI<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/apt\/source.list.d\/ceph.list<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"88\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-18-1024x88.png\" alt=\"\" class=\"wp-image-5299\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-18-1024x88.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-18-300x26.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-18-768x66.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-18-500x43.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-18.png 1119w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>And finally, disable <code>\/etc\/apt\/source.list.d\/pve-enterprise.list<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"663\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-21-1024x663.png\" alt=\"\" class=\"wp-image-5304\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-21-1024x663.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-21-300x194.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-21-768x497.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-21-463x300.png 463w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-21.png 1038w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Under the hood, it&#8217;s basically Proxmox adding a # (comment sign) to disable the line in <code>\/etc\/apt\/source.list.d\/pve-enterprise.list<\/code> with the similar procedures we did:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"96\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-19-1024x96.png\" alt=\"\" class=\"wp-image-5300\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-19-1024x96.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-19-300x28.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-19-768x72.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-19-500x47.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-19.png 1093w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Hit Reload and you are done with this subscription scare tactic.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-20-1024x491.png\" alt=\"\" class=\"wp-image-5301\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-20-1024x491.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-20-300x144.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-20-768x369.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-20-1536x737.png 1536w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-20-500x240.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-20.png 1840w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Actually out of consistency, you can build your own <code>pve-no-subscription.list<\/code> to repace <code>pve-enterprise.list<\/code> and replace &#8216;<code>enterprise<\/code>&#8216; in the root URL with &#8216;<code>download<\/code>&#8216;, update the Debian codename (at the time of writing it&#8217;s &#8216;<code>bookworm<\/code>&#8216;), and the change the components folder from &#8216;<code>pve-enterprise<\/code>&#8216; to &#8216;<code>pve-no-subscription<\/code>&#8216;, which translates to crawling this repository path: <code>http:\/\/download.proxmox.com\/debian\/pve\/dists\/bookworm\/pve-no-subscription\/<\/code><\/p>\n\n\n\n<p>There&#8217;s nothing fancy and hard-coded about these names. It&#8217;s basically the URL of where the update files are stored with an intermediate folder &#8216;<code>dists<\/code>&#8216; sandwiched between the root URL and the tokens (separated by spaces) which are basically subfolder names. All it does is to attach a &#8216;<code>\/dists\/<\/code>&#8216; after the root URL and replace the rest of the &#8216;<code>\/<\/code>&#8216; with spaces.<\/p>\n\n\n\n<p>It simply looked like the developers for the web admin UI didn&#8217;t have the time to get to making the table entries clickable and editable yet and they merely got to make the enable\/disable button to comment out the lines in the file. You&#8217;ll see similar UI deficiencies in a lot of places later which you&#8217;d have to go to the shell to do it yourself after researching the concepts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fix Subscription Scare Part 2: Removing the nag screen<\/h2>\n\n\n\n<p>Even after you fixed the repository locations, it&#8217;s only per node, yet the nag screen is at the top admin UI level. The Updates\/Repositories interface won&#8217;t show error messages (undownloadable repositories) anymore, but the nag screen still needs to be addressed.<\/p>\n\n\n\n<p>Luckily somebody <a href=\"https:\/\/github.com\/foundObjects\/pve-nag-buster\/\">wrote a script to deal with it<\/a>, hosted on Github:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Download script\nwget https:\/\/raw.githubusercontent.com\/foundObjects\/pve-nag-buster\/master\/install.sh\n# Good practice to read ANY unknown script to make sure there's no shenanigans 1st\n\n# Then run the script with sudo\nsudo bash install.sh\r<\/code><\/pre>\n\n\n\n<p>This blog <a href=\"https:\/\/dannyda.com\/2020\/05\/17\/how-to-remove-you-do-not-have-a-valid-subscription-for-this-server-from-proxmox-virtual-environment-6-1-2-proxmox-ve-6-1-2-pve-6-1-2\/\">shows the mechanisms<\/a> in case if some changes broke the script above.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TAP Networking not in the Web UI<\/h2>\n\n\n\n<p>TAP interface is necessary for the ethernet card on the VM directly interact with the router connected to the physical hardware (PHY\/NIC) but with a different identity, which puts it at equal level as other physical computers on your network. This is often useful when you want to host servers.<\/p>\n\n\n\n<p>I&#8217;ve adapted the instructions from <a href=\"https:\/\/gist.github.com\/extremecoders-re\/e8fd8a67a515fee0c873dcafc81d811c\">Extremecoders on Github<\/a> here as the default ethernet device names are different<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Debian doesn&#8217;t use the \/eth0 naming scheme anymore. It&#8217;s \/enp4s0<\/li>\n\n\n\n<li>\/br0 now has a prefix &#8220;vm&#8221; in front of it since it&#8217;s a virtual bridge. Proxmox created this by default. The &#8216;bridge&#8217; in this case is not in the ethernet bridge we understand in Windows (which bridges two interface together as one), but instead it&#8217;s just a virtual ethernet switch. Once I know this twist, I understand how to set TAP up<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"262\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-22-1024x262.png\" alt=\"\" class=\"wp-image-5308\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-22-1024x262.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-22-300x77.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-22-768x197.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-22-500x128.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-22.png 1235w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Since we are using the \/vmbr0 which is already set up, we can skip the bridge creation and adding the physical network card \/enp4s0 to the \/vmbr0 &#8216;bridge&#8217; (virtual switch). <\/p>\n\n\n\n<p>The core step is to create a TAP interface. Let&#8217;s call it \/tap0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tunctl -t tap0<\/code><\/pre>\n\n\n\n<p>You don&#8217;t need the &#8220;-u (username)&#8221; part unless you want to assign ownership of this specific TAP interface to a specific user.<\/p>\n\n\n\n<p>Then you need to add this TAP (\/tap0 in this example) to the &#8216;bridge&#8217; (\/vmbr0 in this example). &#8216;addif&#8217; means &#8216;<strong><em>add<\/em><\/strong> <em><strong>i<\/strong><\/em>nter<strong><em>f<\/em><\/strong>ace&#8217;. &#8216;brctl&#8217; means &#8216;<strong><em>br<\/em><\/strong>idge <strong><em>c<\/em><\/strong>on<strong><em>t<\/em><\/strong>ro<strong><em>l<\/em><\/strong>&#8216;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>brctl addif vmbr0 tap0<\/code><\/pre>\n\n\n\n<p>Make sure all the physical card (\/enp4s0), the TAP interface (\/tap0) and the &#8216;bridge&#8217; (\/vmbr0) is up. Then assign IP to the &#8216;bridge&#8217; \/vmbr0. If using acquiring new IP address from DHCP, use DHCP client (dhclient):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dhclient -v vmbr0<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Pools for resources<\/h2>\n\n\n\n<p>You can directly create the virtual hard disks directly from where you are configuring your VM, but you can only delete it from a Pool viewer. This is the same as VirtualBox. &#8216;local-lvm&#8217; is a bunch of <a href=\"https:\/\/dannyda.com\/2020\/07\/11\/what-is-the-difference-between-local-and-local-lvm-on-proxmox-ve-pve-which-to-use-why-use-local-local-lvm\/\">virtual hard drive images that you need to mount to act like a hard disk drive<\/a>. Your VM images lives in <code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\"><code>\/dev\/pve<\/code><\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"823\" height=\"90\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-30.png\" alt=\"\" class=\"wp-image-5341\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-30.png 823w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-30-300x33.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-30-768x84.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-30-500x55.png 500w\" sizes=\"auto, (max-width: 823px) 100vw, 823px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"368\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-23-1024x368.png\" alt=\"\" class=\"wp-image-5310\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-23-1024x368.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-23-300x108.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-23-768x276.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-23-500x180.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-23.png 1103w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>It&#8217;s a little more rigid than VirtualBox where you can directly point to the CD image. In Proxmox you have to upload the CD image to a pool before referring them in the VM&#8217;s settings. &#8216;local&#8217; is just a folder of files (specifically <code>\/var\/lib\/vz<\/code>), and the CD images goes to <code>\/var\/lib\/vz\/template\/iso<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"289\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-24-1024x289.png\" alt=\"\" class=\"wp-image-5311\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-24-1024x289.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-24-300x85.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-24-768x217.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-24-500x141.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-24.png 1237w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Actually local and local-lvm are all defined at the root level called &#8216;Datacenter&#8217;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"252\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-31-1024x252.png\" alt=\"\" class=\"wp-image-5343\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-31-1024x252.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-31-300x74.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-31-768x189.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-31-1536x378.png 1536w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-31-500x123.png 500w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-31.png 1723w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Default CPU<\/h2>\n\n\n\n<p>By default Proxmox choose x86-64-v2-AES for you, which might have better compatibility. I had trouble with the Windows port of Qemu not supporting hosts because my CPU is too new for it, but the Linux Qemu-Kvm have no trouble recognizing my new CPU under &#8216;hosts&#8217; type. Look into the extra CPU flags to match whether you are using an AMD or Intel CPU. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"649\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-27-1024x649.png\" alt=\"\" class=\"wp-image-5316\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-27-1024x649.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-27-300x190.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-27-768x487.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-27-1536x973.png 1536w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-27-2048x1298.png 2048w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2023\/09\/image-27-473x300.png 473w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n<div class=\"pvc_clear\"><\/div><p id=\"pvc_stats_5284\" class=\"pvc_stats all  \" data-element-id=\"5284\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p><div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>Bump 1: Dick move from Proxmox The first thing that trips me from Proxmox is the downloadable, despite it said it&#8217;s free if you don&#8217;t use their enterprise repository, is Enterprise (paid) version out of the box, with no option &hellip; <a href=\"https:\/\/wonghoi.humgar.com\/blog\/2023\/09\/10\/set-up-and-usage-notes-for-proxmox-kvm-qemu\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_5284\" class=\"pvc_stats all  \" data-element-id=\"5284\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[75,70],"tags":[],"class_list":["post-5284","post","type-post","status-publish","format-standard","hentry","category-self-host","category-vm"],"_links":{"self":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/5284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/comments?post=5284"}],"version-history":[{"count":23,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/5284\/revisions"}],"predecessor-version":[{"id":5344,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/5284\/revisions\/5344"}],"wp:attachment":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/media?parent=5284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/categories?post=5284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/tags?post=5284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}