<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ VirtualBox  - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ VirtualBox  - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 26 Jul 2026 04:13:53 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/virtualbox/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Build Your Own Private Hacking Lab with VirtualBox ]]>
                </title>
                <description>
                    <![CDATA[ Ethical hacking involves testing and finding vulnerabilities in systems. But doing this on live networks or public servers can lead to accidental damage. Setting up a virtual lab for hacking is a great way to sharpen your skills in a safe environment... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/build-a-private-hacking-lab-with-virtualbox/</link>
                <guid isPermaLink="false">671a63a2c56e050e75cb0298</guid>
                
                    <category>
                        <![CDATA[ #cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Security ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ethicalhacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ VirtualBox  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Manish Shivanandhan ]]>
                </dc:creator>
                <pubDate>Thu, 24 Oct 2024 15:11:30 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751281544/6500642d-4c1e-4dba-b5d0-ab97f9f10003.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Ethical hacking involves testing and finding vulnerabilities in systems. But doing this on live networks or public servers can lead to accidental damage.</p>
<p>Setting up a virtual lab for hacking is a great way to sharpen your skills in a safe environment. A private lab ensures that all your activities remain isolated, so there’s no risk of harming real systems or violating legal boundaries. It allows you to make mistakes and learn from them without causing harm.</p>
<h2 id="heading-project-setup">Project Setup</h2>
<p>This guide will teach you how to set up your own private lab. To do this, we’ll need three things:</p>
<ul>
<li><p>Virtualization software</p>
</li>
<li><p>Attacking Machine</p>
</li>
<li><p>Target Machine</p>
</li>
</ul>
<p>Virtualization software allows one physical computer to run multiple virtual machines (VMs). A virtual machine acts like a separate computer with its own operating system and programs but runs on the same hardware as the host computer.</p>
<p>VirtualBox is a popular virtualization software. VMware is another alternative. </p>
<p>To practice hacking, you need two machines — an attacking machine and a target machine. </p>
<p>You can use your own system as the attacking machine. But it is better to use a machine like <a target="_blank" href="https://www.kali.org/">Kali</a> or <a target="_blank" href="https://parrotsec.org/">Parrot</a> which comes pre-installed with all the tools you will need.</p>
<p>For the target machine, we can use a repository like Vulnhub. It contains several VMs built for you to practise your skills. Each one is designed to have a vulnerability that you can practise exploiting. </p>
<p>The downloads required for this setup are quite large, so I recommend you download and keep them ready. </p>
<ul>
<li><p><a target="_blank" href="https://www.virtualbox.org/wiki/Downloads">Download VirtualBox</a> (download the extension pack as well)</p>
</li>
<li><p><a target="_blank" href="https://www.kali.org/get-kali/#kali-virtual-machines">Download Kali</a> (64-bit Virtualbox image)</p>
</li>
<li><p><a target="_blank" href="https://www.vulnhub.com/entry/mr-robot-1,151/">Download Mr Robot vulnerable machine</a></p>
</li>
</ul>
<p>Let’s go 👉</p>
<h2 id="heading-how-to-install-virtualbox">How to Install VirtualBox</h2>
<p>To download VirtualBox, go to the <a target="_blank" href="https://www.virtualbox.org/wiki/Downloads">downloads page</a>. Based on your operating system, download the package and install it. </p>
<p>Once installation is complete, you should see a similar page depending on your operating system. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751323730/84912f77-6c90-49d0-8b07-b856247b3723.png" alt="Virtualbox home" class="image--center mx-auto" width="1200" height="763" loading="lazy"></p>
<p>Double-click on the extension pack and make sure its installed as well. </p>
<h2 id="heading-how-to-install-kali-linux">How to Install Kali Linux</h2>
<p>Now let’s install our attacking machine. Extract the .7z file from the Kali Linux download. Then click the green “Add” icon on the VirtualBox interface and point to the .vbox file. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751345791/f84dd422-e99c-4c6d-b2e5-2381cf12933c.png" alt="Kali Linux .vbox file" class="image--center mx-auto" width="476" height="184" loading="lazy"></p>
<p>All the default settings will be applied and you should have the attacking machine installed. If you are stuck, you can <a target="_blank" href="https://www.kali.org/docs/virtualization/import-premade-virtualbox/">find detailed instructions here</a>. </p>
<p>Don’t start the machine yet. Let’s add the target machine as well, followed by changing a few networking settings. Then we can start hacking. </p>
<h2 id="heading-how-to-install-a-target-vm">How to Install a Target VM</h2>
<p>Now let’s install the target. Double-click on the downloaded <code>mrRobot.ova</code> file. Use the default settings and click “Finish”. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751365289/a3ce9b1c-7daa-4a16-959b-139d4239bae2.png" alt="Mr Robot Target VM" class="image--center mx-auto" width="1200" height="813" loading="lazy"></p>
<p>Once both the attacking and target machines are setup, you should see them both in the machines list. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751388993/7c3510bb-0d9d-42b7-bdec-68a70b09b7d4.png" alt="Virtualbox home with attack and target machines" class="image--center mx-auto" width="1200" height="764" loading="lazy"></p>
<p>Now let’s update the network settings to make sure our VMs are secure. </p>
<h2 id="heading-update-networking-settings">Update Networking Settings</h2>
<p>There are many ways to set up a network in VirtualBox. But in our case, we want to isolate our lab from the public internet. The best way to do this is to set up a host-only network.</p>
<p>In a host-only network, the VMs can communicate with each other but not the public internet. Let’s set it up.</p>
<p>In the Virtualbox interface, click on “Tools” and click “Host-only Networks”. Then click “Create”. It will automatically create a host only network with an IP range. For simplicity, let’s change the network’s name to “MyHackingLabNetwork”.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751416579/0f16b374-33d0-444d-8d09-1edd22b389c1.png" alt="Virtualbox host only network" class="image--center mx-auto" width="1200" height="727" loading="lazy"></p>
<p>Click “Apply”. Now we have a host only network. Next, let’s configure our virtual machines to connect to this network. </p>
<p>Click on the Virtual Machine and click “Settings” icon. Under “Network”, choose “host-only network” and choose the name as “MyHackingLabNetwork”. Click “OK” once done. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751437795/c700b9be-0885-45fc-b0d1-70a6227167fa.png" alt="Virtualbox Network settings" class="image--center mx-auto" width="1200" height="683" loading="lazy"></p>
<p>Do the same for the target machine. The IP addresses for these virtual machines will automatically be assigned by our “host-only” network. </p>
<h2 id="heading-scanning-the-target">Scanning the Target</h2>
<p>Now we are ready to go. Power on both machines. </p>
<p><strong>Note:</strong> Both machines will show a default option to startup – just press enter. If the VM looks small on your screen, click View -&gt; Scaled Mode on the top menu.</p>
<p>The username and password for the Kali machine is “kali”.</p>
<p>You should see the Kali Linux UI as below. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751456625/e63b0190-2e8d-481b-903f-faac4c2fec3f.png" alt="Kali Home" class="image--center mx-auto" width="800" height="600" loading="lazy"></p>
<p>For the Mr.Robot box, you should see the following UI:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751469522/71ce0dcd-595c-4f67-8ff4-716ffb1e8216.png" alt="Target home" class="image--center mx-auto" width="720" height="400" loading="lazy"></p>
<p>Now let’s find the IP addresses of these machines. </p>
<p>In Kali, open a terminal and type <code>ifconfig | grep inet</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751487309/6ec69770-ead6-44f0-a590-7a6afb563614.png" alt="Network display" class="image--center mx-auto" width="1200" height="329" loading="lazy"></p>
<p>You should see an IP address similar to 192.168.56.x. This is the IP of the target machine. </p>
<p>Now let’s use nmap to scan for other machines in this network. If you don't know what Nmap is, <a target="_blank" href="https://www.stealthsecurity.sh/p/nmap-tutorial">here is a tutorial</a>. </p>
<p>Let’s do a ping scan from Kali to look for other machines in the network. Run the following command:</p>
<pre><code class="lang-plaintext">nmap -sn 192.168.56.0/24
</code></pre>
<p>This command pings all IP addresses from <code>192.168.56.1</code> to <code>192.168.56.254</code> to see what is up and running. You should see three similar results. </p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751508093/204e5805-3b1e-485b-8e2e-bece23c3d781.png" alt="Nmap ping scan" class="image--center mx-auto" width="1200" height="363" loading="lazy"></p>
<p>The first result is usually the IP of the adapter. So we can ignore it. Out of the two, one of them is the IP of our attack machine. We are interested in the third. In this case, its 192.168.56.3. </p>
<p>Let’s do a service version scan of this IP and see what comes up. </p>
<pre><code class="lang-plaintext">nmap -sV 192.168.56.3
</code></pre>
<p>You should see a similar result as below if you are scanning the Mr.Robot virtual machine:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1729751531886/bf6eec03-4393-4610-84ff-61dceb24edcc.png" alt="Nmap service version scan" class="image--center mx-auto" width="1200" height="394" loading="lazy"></p>
<p>The above image shows that there are three ports on the server. One of them is ssh, which is closed. The other two are web server ports – 80 for http and 443 for https.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Congratulations! You’ve successfully set up your own hacking lab using VMware. This lab gives you the flexibility to practice ethical hacking in a controlled, isolated environment.</p>
<p>For more free tutorials on cybersecurity, <a target="_blank" href="https://www.stealthsecurity.sh/">join our newsletter</a>. To learn how to hack the Mr.Robot and other boxes, join our private community <a target="_blank" href="https://www.skool.com/hackershub">Hacker’s Hub</a>. If you are starting out in Cybersecurity, check out the <a target="_blank" href="https://book.stealthsecurity.sh/">Hacker’s Handbook</a>.</p>
<p>See you soon with another article.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Ethical Hacking 101 – How to Set Up Metasploitable on Your Computer ]]>
                </title>
                <description>
                    <![CDATA[ Ladies and Gentlemen, welcome to the world of Virtual Machines 🖥️ So you’ve discovered the world of ethical hacking and you want to try your hands on something. Trouble is, doing some ‘practical application’ on the wrong thing could get you fined, a... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-set-up-metasploitable/</link>
                <guid isPermaLink="false">66bb90185d242388375d387e</guid>
                
                    <category>
                        <![CDATA[ cybersecurity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Ethical Hacking ]]>
                    </category>
                
                    <category>
                        <![CDATA[ virtual machine ]]>
                    </category>
                
                    <category>
                        <![CDATA[ VirtualBox  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Daniel Iwugo ]]>
                </dc:creator>
                <pubDate>Tue, 12 Mar 2024 12:39:45 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2024/08/pexels-mati-6330644.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Ladies and Gentlemen, welcome to the world of Virtual Machines 🖥️</p>
<p>So you’ve discovered the world of ethical hacking and you want to try your hands on something. Trouble is, doing some ‘practical application’ on the wrong thing could get you fined, arrested, and even undesired jail time.</p>
<p>You don’t have to give up your dreams just yet though. There is a legal, ethical way to sharpen your cyber offensive skills: Vulnerable Virtual Machines.</p>
<p>In this tutorial, we’ll take a look at the following:</p>
<ol>
<li><a class="post-section-overview" href="#heading-what-is-a-virtual-machine">What is a Virtual Machine?</a></li>
<li><a class="post-section-overview" href="#heading-what-is-metasploitable">What is Metasploitable?</a></li>
<li><a class="post-section-overview" href="#heading-how-to-set-up-metasploitable">How to Set Up Metasploitable</a></li>
<li><a class="post-section-overview" href="#heading-a-quick-word-on-vulnerable-machines">A Quick Word on Vulnerable VMs</a></li>
</ol>
<p>So without further ado, let’s jump in.</p>
<h2 id="heading-what-is-a-virtual-machine">What is a Virtual Machine?</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-38.png" alt="Image" width="600" height="400" loading="lazy">
<em>Virtual Machines ¦ Credit: [Hackersarts](https://www.deviantart.com/hackersarts" rel="noopener noreferrer)</em></p>
<p>A Virtual Machine (VM) is an emulation of a computer system. Think of it like a mini disposable environment where you can play around with different operating systems and software. </p>
<p>On a VM, you can delete critical system files, test software, or even install a virus (not recommended), and nothing will happen to your actual system.</p>
<p>All this is made possible with a hypervisor, a software that takes some of your ‘host’ system’s hardware resources, and makes it available for the ‘guest’ machine. A hypervisor allows you to determine things like how much RAM, storage, and even screens (if you have multiple displays), you want to hand over to the VM.</p>
<p>There are 2 types of hypervisors, namely:</p>
<ul>
<li>Type 1 hypervisors</li>
<li>Type 2 hypervisors</li>
</ul>
<p>Mind blowing naming scheme, I know.</p>
<p>Type 1 hypervisors run directly on the physical host machine and have direct access to hardware resources. They tend to be used for servers and enterprise-level infrastructure. They are considered more efficient because of their direct access to the host resources. Examples of type 1 hypervisors include Microsoft Hyper-V and VMware ESXi.</p>
<p>Type 2 hypervisors, on the other hand, are installed on the host OS, and manages the hardware resources for the guest. You would find these on personal computers and they make hardware resource management pretty easy for the average user. Examples of type 2 hypervisors are Oracle VirtualBox (my personal favourite 😌) and VMware Workstation.</p>
<p>We’ll be using Oracle VirtualBox, a type 2 hypervisor, for simplicity (and because I don’t have a server randomly lying around the house). Now, let’s find an appropriate vulnerable VM to install.</p>
<h2 id="heading-what-is-metasploitable">What is Metasploitable?</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-39.png" alt="Image" width="600" height="400" loading="lazy">
<em>A mere box ¦ Credit: [Rostislav Uzunov](https://www.pexels.com/@rostislav/" rel="noopener noreferrer)</em></p>
<p>Metasploitable is an ‘intentionally vulnerable virtual machine’ by Rapid7, owners of the popular security project, Metasploit. Note that Metasploitable and Metasploit are two different things entirely. The previous is a VM while the latter is a cyber offense tool (which may or may not be covered in a later article 😉).</p>
<p>VMs, much like any other computer, need to be as secure as possible. Metasploitable does the complete opposite. It comes out of the box with enough vulnerabilities to give the cybersecurity professionals at <a target="_blank" href="https://cysed.org">CYSED</a> serious nightmares. The VM is a Linux-based system with various ports open, insecure configurations, and outdated software.</p>
<p>Now, let’s figure out how to install it securely on our systems.</p>
<h2 id="heading-how-to-set-up-metasploitable">How to Set Up Metasploitable</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-40.png" alt="Image" width="600" height="400" loading="lazy">
<em>The metasploitable interface ¦ Credit: Author</em></p>
<p>Before we go further, you’re going to need a few things:</p>
<ul>
<li>An Internet Connection</li>
<li>A Computer with at least 8 GB RAM and 20 GB free storage</li>
<li>A flair to be an awesome geek</li>
</ul>
<p>And with those boxes checked, let’s get started.</p>
<p>To download the VM, head over to Google and type in ‘Metasploitable download’. Click on the first link by <a target="_blank" href="https://sourceforge.net/projects/metasploitable/">SourceForge</a>, and hit download. The file is about 800 megabytes so feel free to pull up an episode of Scooby-Doo while that’s downloading.</p>
<p>You should have a zip file like this once that is done:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-41.png" alt="Image" width="600" height="400" loading="lazy">
<em>The metasploitable zip file ¦ Credit: Author</em></p>
<p>Right-click and hit ‘Extract All…’ to get the VM Disk. You should see some files like this:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-42.png" alt="Image" width="600" height="400" loading="lazy">
<em>The zip file contents ¦ Credit: Author</em></p>
<p>We’re going to need VirtualBox to install our VM. You can quickly setup VirtualBox using this <a target="_blank" href="https://www.freecodecamp.org/news/what-is-a-virtual-machine-and-how-to-setup-a-vm-on-windows-linux-and-mac/">tutorial</a> by <a target="_blank" href="https://www.freecodecamp.org/news/author/beau/">Beau Carnes</a>. To import Metasploitable, open VirtualBox and click on ‘New’. Set the following options:</p>
<p>Name: Metasploitable (or whatever you like)</p>
<p>Type: Linux</p>
<p>Version: Other Linux (64-bit)</p>
<p>You don't have to select an ISO image because the OS is already in the virtual hard disk which will be installed as we go along.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-43.png" alt="Image" width="600" height="400" loading="lazy">
<em>Setting up the VM ¦ Credit: Author</em></p>
<p>Click on ‘Next’, which should take you to the hardware section. As mentioned before, a VM is a simulation of the real system, which requires resources like RAM and a Processor. You can change the amount of RAM and logical processors your VM uses. </p>
<p>Keep in mind that the more resources you allocate to the VM, the less resources you have for your system.</p>
<p>On that note, I would suggest leaving the default hardware settings.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-44.png" alt="Image" width="600" height="400" loading="lazy">
<em>Deciding how much hardware we need ¦ Credit: Author</em></p>
<p>Quick lesson: Your system likely only has 1 physical processor but can have as many as 8 or more logical processors. This is because of something called <strong>hyperthreading</strong>, where a computer basically converts it’s physical cores into multiple smaller virtual ones. Now back to the tutorial.</p>
<p>Click ‘Next’ and you’ll be directed to the ‘Virtual Hard disk’ section. Normally, you’d create a virtual hard disk for your VM but we already have one.</p>
<p>Click on ‘Use an Existing Virtual Hard Disk File’ and hit ‘Add’ at the top right.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-45.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting a Virtual hard disk ¦ Credit: Author</em></p>
<p>This will open up File Explorer, where you will proceed to select the ‘Metasploitable.vmdk’ file. Once that is done, Metasploitable should appear under the ‘Not Attached’ list.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-46.png" alt="Image" width="600" height="400" loading="lazy">
<em>Selecting the Metasploitable hard disk ¦ Credit: Author</em></p>
<p>Select it, hit ‘Choose’ and click on ‘Next’. You will be led to a ‘Summary’ section which will give you information about the VM before it is finally setup.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-47.png" alt="Image" width="600" height="400" loading="lazy">
<em>Putting in the final touches ¦ Credit: Author</em></p>
<p>Let’s finish it up by literally hitting ‘Finish’ and you should get a screen like so.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-48.png" alt="Image" width="600" height="400" loading="lazy">
<em>Metasploitable installed on VirtualBox ¦ Credit: Author</em></p>
<p>Congratulations on setting up Metasploitable 🎉. Now you can build your cybersecurity skills without risking a trip to your local prison 😉.</p>
<p>The credentials for the machine are <code>msfadmin:msfadmin</code>. Feel free to boot up your Kali machine, ping the machines, and start hacking. Here, I’ll give you a hint: It starts with ‘nmap’ 👁️.</p>
<h2 id="heading-a-quick-word-on-vulnerable-machines">A Quick Word on Vulnerable Machines</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2024/03/image-49.png" alt="Image" width="600" height="400" loading="lazy">
<em>A network of sorts ¦ Credit: [AcatXIo](https://pixabay.com/users/acatxio-20233758/" rel="noopener noreferrer)</em></p>
<p>Just like a real system, a virtual machine is vulnerable to real world attacks. Try not to leave Metasploitable up when not in use and definitely do not expose it to an untrusted network. </p>
<p>By default, the VM is set to use NAT (Network Address Translation) which adds a layer of security by isolating it from the external network while providing it access to the internet.</p>
<p>However, this may not be a comprehensive solution. One common alternative is to change the network adapter settings to ‘Host-Only’, which shuts the VM off from the Internet but allows it to communicate with other VMs and the host.</p>
<p>If you’re wondering what the other options are, here is a quick summary for each:</p>
<ul>
<li><strong>NAT:</strong> Shares host network, provides internet access to VM.</li>
<li><strong>Bridged Adapter:</strong> VM connects directly to the physical network.</li>
<li><strong>Internal Network:</strong> Isolated network for VMs on the same host.</li>
<li><strong>Host-Only Adapter:</strong> VMs communicate with host and among themselves.</li>
<li><strong>Generic Driver:</strong> Allows using custom, non-standard network drivers.</li>
<li><strong>NAT Network:</strong> Similar to NAT but allows defining network properties.</li>
<li><strong>Cloud Network:</strong> Experimental feature for cloud-based networking.</li>
<li><strong>Not Attached:</strong> No network connection for the virtual machine.</li>
</ul>
<h2 id="heading-conclusion">Conclusion</h2>
<p>And now, let’s summarize what you’ve learned in this tutorial:</p>
<ol>
<li>What a Virtual Machine is and how it works</li>
<li>What Metasploitable is</li>
<li>How to install Metasploitable and any other VM</li>
<li>What different network adapters do in VirtualBox</li>
</ol>
<p>Playing with Metasploitable is a great way to practice offensive cybersecurity skills and the defensive if you want to try and patch it up. <a target="_blank" href="https://www.vulnhub.com">Vulnhub</a> is a great place to download more virtual machines if you want to move beyond Metasploitable.</p>
<p>You could also use platforms like <a target="_blank" href="https://tryhackme.com/">TryHackMe</a> and <a target="_blank" href="https://www.hackthebox.com">HackTheBox</a> which are gamified and make things more fun if you want something a little different.</p>
<p>Good luck and Happy Hacking 🙃</p>
<h2 id="heading-resources">Resources</h2>
<ol>
<li><a target="_blank" href="https://cysed.org">Learn more about Cybersecurity in Africa</a></li>
<li><a target="_blank" href="https://docs.rapid7.com/metasploit/metasploitable-2-exploitability-guide/">The Metasploitable Exploitability Guide from Rapid7</a></li>
</ol>
<h2 id="heading-acknowledgements">Acknowledgements</h2>
<p>Thanks to <a target="_blank" href="https://www.linkedin.com/in/a-n-u-o/">Anuoluwapo Victor</a>, <a target="_blank" href="https://www.linkedin.com/in/chinaza-nwukwa-22a256230/">Chinaza Nwukwa</a>, <a target="_blank" href="https://www.linkedin.com/in/mercy-holumidey-88a542232/">Holumidey Mercy</a>, <a target="_blank" href="https://www.linkedin.com/in/favour-ojo-906883199/">Favour Ojo</a>, <a target="_blank" href="https://www.linkedin.com/in/georgina-awani-254974233/">Georgina Awani</a>, and my family for the inspiration, support and knowledge used to put this post together. You’re all amazing.</p>
<p>Cover image credit: <a target="_blank" href="https://www.pexels.com/@googledeepmind/">Google DeepMind</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to run Docker on Windows 10 Home edition ]]>
                </title>
                <description>
                    <![CDATA[ By Mihail Gaberov Recently I have been watching a tutorial where, in order to follow it, you need to have Docker running on your machine. So far, so good.  But it turns out that the latest versions of Docker require Windows 10 Pro, Enterprise, or Edu... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-run-docker-on-windows-10-home-edition/</link>
                <guid isPermaLink="false">66d46052d14641365a050927</guid>
                
                    <category>
                        <![CDATA[ ArchLinux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Docker ]]>
                    </category>
                
                    <category>
                        <![CDATA[ VirtualBox  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ vm ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Windows 10 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Wed, 22 Jan 2020 09:38:50 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/01/head-image-1.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Mihail Gaberov</p>
<p>Recently I have been watching a tutorial where, in order to follow it, you need to have <a target="_blank" href="https://docs.docker.com/docker-for-windows/install/">Docker</a> running on your machine. So far, so good. </p>
<p>But it turns out that the latest versions of Docker require Windows 10 Pro, Enterprise, or Education. Which means that if you are like me and have just Windows 10 Home edition on your personal laptop, then you cannot use Docker…<strong>or maybe you still can</strong>. </p>
<p>Read on below to find out how. ?</p>
<h2 id="heading-reasoning">Reasoning</h2>
<p>First, let's do a short summary of the situation. What do we want to achieve and what do we currently have?</p>
<p>We have Windows 10 OS Home edition on our machine. We would like to have Docker running on the same machine so that we are able to create docker images, run containers, and learn better and grow faster! </p>
<p>The last one is a bit out of the scope of this article, but we should start from somewhere, no? ?.</p>
<h2 id="heading-actions">Actions</h2>
<p>After defining what we want, let's see how to achieve it. Here are the steps I followed. It worked for me, which make me want to share it with you. And maybe I can save someone a few days of going back and forth to StackOverflow! ?</p>
<p>After some reading, I found this <a target="_blank" href="http://support.divio.com/en/articles/646695-how-to-use-a-directory-outside-c-users-with-docker-toolbox-docker-for-windows">article</a>. It explains that it is possible to use Docker in Windows 10 Home by leveraging a Linux virtual machine and having Docker containers running on it. Let's see how it works.</p>
<h3 id="heading-step-1-installations">Step 1: Installations</h3>
<p>First you need to install a software called <a target="_blank" href="https://www.virtualbox.org/">Oracle VM VirtualBox</a>. It gives you the ability to have multiple virtual machines installed on your physical one. This way we can have a virtual machine which will be running Linux where our Docker will live.</p>
<p>Then use Windows PowerShall and <a target="_blank" href="https://chocolatey.org/">Chocolatey</a>, your Windows package manager, to install a <em>docker-machine</em> by running the following:</p>
<pre><code class="lang-bash">choco install docker-machine
</code></pre>
<p>Open your favorite bash terminal app and run this:</p>
<pre><code class="lang-bash">docker-machine create --driver virtualbox default
</code></pre>
<p>This will create a docker virtual machine called 'default'.</p>
<h3 id="heading-step-2-configurations">Step 2: Configurations</h3>
<p>Next, we need to configure which ports are exposed when running Docker containers. You can do that by going to Oracle VM VirtualBox -&gt; default virtual machine -&gt; Settings -&gt; Network -&gt; Adapter 1 -&gt; Port Forwarding.</p>
<p><img src="https://mihail-gaberov.eu/static/fb9bdc0bd6814d55c65b8ea7c761c8bd/fcda8/port-forwarding.png" alt="VirtualBox Port Forwarding" width="600" height="400" loading="lazy"></p>
<p>This was the <strong>most critical</strong> <strong>detail</strong> that I forgot . We need to allow Docker to mount volumes located on your hard drive. By default, you can only mount from the <code>C://Users/</code> directory. </p>
<p>To add a different path, simply go to the <strong>Oracle VM VirtualBox</strong> GUI. Select <strong>default</strong> VM and go to <em>Settings &gt; Shared Folders</em>. If you don't mind to use the default settings, do not forget to put your project under the 'Users' directory, e.g. <code>C:\Users\{your project}</code>. </p>
<p>In my case, I forgot about this and had to spend few days of head banging until I figured out why the heck was I getting a "Couldn't find package.json" error when trying to run the <a target="_blank" href="https://github.com/mihailgaberov/microservices">containers</a>, built through this <a target="_blank" href="https://www.youtube.com/watch?v=6Yfm5gHQjaQ&amp;list=PLnTRniWXnjf8YC9qJFLSVCrXfS6cyj6x6&amp;index=2">tutorial</a>.</p>
<p>Start the virtual machine by running the following command in your terminal app:</p>
<pre><code class="lang-bash">docker-machine start default
</code></pre>
<h3 id="heading-step-3-setting-up-environment-variables">Step 3: Setting up Environment Variables</h3>
<p>Next, we need to set up Docker environment variables:</p>
<pre><code class="lang-bash">docker-machine env default
</code></pre>
<p>This allows the Docker client and Docker Compose to communicate with the Docker Engine running in the Linux VM that we named "default".</p>
<p>You may also need to run:</p>
<pre><code class="lang-bash">@FOR /f <span class="hljs-string">"tokens=*"</span> %i IN (<span class="hljs-string">'"C:\ProgramData\chocolatey\lib\docker-machine\bin\docker-machine.exe" env'</span>) DO @%i
</code></pre>
<p>in order to get Docker working properly. <em>Note: the specified path in the above command may vary depending on your setup</em>.</p>
<p>If you are going to use things such as <code>docker-compose up</code>, you will need to install Docker Tools as well. You may do it by running the following commands in PowerShall:</p>
<pre><code class="lang-bash">choco install docker-cli
choco install docker-compose
</code></pre>
<p>These will install everything you need to start using Docker on your Windows 10 Home OS.</p>
<h2 id="heading-conclusion"><strong>Conclusion</strong></h2>
<p>Now that we have all we need, we may spend our time on actual learning, either by following a docker-related tutorial or reading a book. No matter what you want to do next, you have all the tools you will need. </p>
<p>I personally will try to <a target="_blank" href="https://github.com/mihailgaberov/microservices">finish</a> the previously mentioned tutorial and then, who knows, may be I will start using Docker for each project I do.</p>
<p>By the way, during the process of researching, I found a very promising book which is specifically about Docker. It's called <em>"Docker in Practice" by Ian Miell</em>. If this interests you, you might want to take a look.</p>
<p>? Thanks for reading! ?</p>
<h3 id="heading-references"><strong>References</strong></h3>
<ul>
<li><a target="_blank" href="https://www.virtualbox.org/">https://www.virtualbox.org/</a></li>
<li><a target="_blank" href="https://www.sitepoint.com/docker-windows-10-home">https://www.sitepoint.com/docker-windows-10-home</a></li>
<li><a target="_blank" href="https://www.youtube.com/watch?v=6Yfm5gHQjaQ&amp;list=PLnTRniWXnjf8YC9qJFLSVCrXfS6cyj6x6&amp;index=2">https://www.youtube.com/watch?v=6Yfm5gHQjaQ&amp;list=PLnTRniWXnjf8YC9qJFLSVCrXfS6cyj6x6&amp;index=2</a></li>
<li><a target="_blank" href="https://github.com/mihailgaberov/microservices">https://github.com/mihailgaberov/microservices</a></li>
<li><a target="_blank" href="http://support.divio.com/en/articles/646695-how-to-use-a-directory-outside-c-users-with-docker-toolbox-docker-for-windows">http://support.divio.com/en/articles/646695-how-to-use-a-directory-outside-c-users-with-docker-toolbox-docker-for-windows</a></li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What is a Virtual Machine And How to Setup a VM on Windows, Linux, and Mac ]]>
                </title>
                <description>
                    <![CDATA[ A virtual machine is a program you run on a computer that acts like it is a separate computer. It is basically a way to create a computer within a computer.  A virtual machine runs in a window on the host computer and gives a user the same experience... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-is-a-virtual-machine-and-how-to-setup-a-vm-on-windows-linux-and-mac/</link>
                <guid isPermaLink="false">66b2071b08bc664c3c097f1a</guid>
                
                    <category>
                        <![CDATA[ Virtual Reality ]]>
                    </category>
                
                    <category>
                        <![CDATA[ VirtualBox  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Thu, 19 Dec 2019 21:19:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9e98740569d1a4ca3df6.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>A virtual machine is a program you run on a computer that acts like it is a separate computer. It is basically a way to create a computer within a computer. </p>
<p>A virtual machine runs in a window on the host computer and gives a user the same experience they would have if they were using a completely different computer. Virtual machines are sandboxed from the host computer. This means that nothing that runs on the virtual machine can impact the host computer.</p>
<p>Virtual machines are often used for running software on operating systems that software wasn't originally intended for. For instance, if you are using a Mac computer you can run Windows programs inside a Windows virtual machine on the Mac computer. Virtual machines are also used to quickly set up software with an image, access virus-infected data, and test other operating systems.</p>
<p>A single physical computer can run multiple virtual machines at the same time. Often a server will use a program called a hypervisor to manage multiple virtual machines that are running at the same time. Virtual machines have virtual hardware, including CPUs, memory, hard drives, and more. Each piece of virtual hardware is mapped to real hardware on the host computer.</p>
<p>There are a few drawbacks with virtual machines. Since hardware resources are indirect, they are not as efficient as a physical computer. Also, when many virtual machines are running at the same time on a single computer, performance can become unstable.</p>
<h2 id="heading-virtual-machine-programs">Virtual Machine Programs</h2>
<p>There are many different virtual machine programs you can use. Some options are VirtualBox (Windows, Linux, Mac OS X), VMware Player (Windows, Linux), VMware Fusion (Mac OS X) and Parallels Desktop (Mac OS X).</p>
<p>VirtualBox is one of the most popular virtual machine programs since it is free, open source, and available on all the popular operating systems. We'll show you how to set up a virtual machine using VirtualBox.</p>
<h2 id="heading-setting-up-a-virtual-machine-virtualbox">Setting up a Virtual Machine (VirtualBox)</h2>
<p><img src="https://upload.wikimedia.org/wikipedia/commons/d/d5/Virtualbox_logo.png" alt="Image" width="512" height="512" loading="lazy"></p>
<p>VirtualBox is an open source Virtual Machine program from Oracle. It allows users to virtually install many operating systems on virtual drives, including Windows, BSD, Linux, Solaris, and more.</p>
<p>Since VirtualBox runs on Windows, Linux, and Mac, the process for setting up a virtual machine is pretty much the same in each operating system.</p>
<p>Start with downloading and installing VirtualBox. You can download it at this link: <a target="_blank" href="https://www.virtualbox.org/wiki/Downloads">VirtualBox Downloads</a></p>
<p>You will also need to download an .iso file for the operating system that you want to run in your virtual machine. For instance, you can download a Windows 10 .iso file here: <a target="_blank" href="https://www.microsoft.com/en-us/software-download/windows10ISO">https://www.microsoft.com/en-us/software-download/windows10ISO</a></p>
<p>Once you have VirtualBox running, click the "New" button</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/image-68.png" alt="Image" width="600" height="400" loading="lazy">
<em>Create a new virtual machine.</em></p>
<p>Next you will have to choose which OS you plan on installing. In the "Name" box, type the name of the OS you want to install. VirtualBox will guess the type and version based on the name you type in, but you can change these settings if you need to.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/image-69.png" alt="Image" width="600" height="400" loading="lazy">
<em>Configure the virtual machine.</em></p>
<p>The wizard will automatically select default settings based on the OS type and version you selected. You can always change the settings as you go through the wizard. Just keep clicking "Continue" and "Create" until you get through the wizard. It's usually fine to use the defaults.</p>
<p>Next, start the virtual machine you just created by clicking "Start".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/image-71.png" alt="Image" width="600" height="400" loading="lazy">
<em>Start the virtual machine.</em></p>
<p>Once the virtual machine starts up, select the .iso image file you want to use.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/image-72.png" alt="Image" width="600" height="400" loading="lazy">
<em>Install the operating system on the virtual machine.</em></p>
<p>Your virtual machine will now load your selected operating system. The operating system may require some setup, but it will be the same setup that would be required if you had installed it on a standard computer. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/image-73.png" alt="Image" width="600" height="400" loading="lazy">
<em>Windows 10 is successfully running inside a virtual machine.</em></p>
<p>Congratulations! You’ve run your first Virtual Machine in VirtualBox.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to install Ubuntu on VirtualBox ]]>
                </title>
                <description>
                    <![CDATA[ By Thanoshan MV What is VirtualBox? Oracle VM VirtualBox is a cross-platform virtualization application developed by the Oracle Corporation. It allows users to install operating systems on virtual hard disks such as Windows, macOS, Solaris and Linux.... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-install-ubuntu-with-oracle-virtualbox/</link>
                <guid isPermaLink="false">66d4614bffe6b1f641b5fa91</guid>
                
                    <category>
                        <![CDATA[ Ubuntu ]]>
                    </category>
                
                    <category>
                        <![CDATA[ VirtualBox  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 06 Dec 2019 12:10:50 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/12/ubuntu-1479782_1280.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Thanoshan MV</p>
<h2 id="heading-what-is-virtualbox">What is VirtualBox?</h2>
<p>Oracle VM VirtualBox is a cross-platform virtualization application developed by the Oracle Corporation. It allows users to install operating systems on virtual hard disks such as Windows, macOS, Solaris and Linux.</p>
<p>As an example, you can run Windows and Linux on your Mac, run Windows server on your Linux server, or run Linux on your Windows PC while running your other existing applications. </p>
<p>Disk space and memory are the only problems that you'll face when installing multiple virtual machines.</p>
<h2 id="heading-why-youll-need-it">Why You’ll Need It</h2>
<ul>
<li>Oracle’s VirtualBox is easy to install and use</li>
<li>It's free</li>
<li>You can run and experience any operating system safely</li>
<li>If you’re a developer, VirtualBox can be used as a tool for safely testing your own development projects in multiple OS environments</li>
<li>It can run everywhere from small embedded systems to laptops</li>
<li>It's good for testing and disaster recovery as it can be easily copied, backed-up, and transported between hosts</li>
</ul>
<h2 id="heading-virtualbox-installation">VirtualBox Installation</h2>
<p>VirtualBox can be downloaded here: <a target="_blank" href="https://www.virtualbox.org/wiki/Downloads">VirtualBox Downloads</a></p>
<h2 id="heading-why-ubuntu">Why Ubuntu?</h2>
<ul>
<li>It's free</li>
<li>Easy customization: The GNOME desktop environment helps you customize easily</li>
<li>It's secure</li>
<li>Ubuntu is open-source</li>
<li>Friendly and supportive community</li>
<li>Low system requirements</li>
<li>According to <a target="_blank" href="https://fossbytes.com/best-linux-distros-for-programming-developers/">FOSSBYTES</a>, Ubuntu is the second best Linux distro for programming and developers [2019 Edition]</li>
<li>It's beginner friendly</li>
</ul>
<h2 id="heading-setup-for-ubuntu">Setup for Ubuntu</h2>
<p>First, open VirtualBox, then click "New" to create a virtual machine.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/start-1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Enter "Ubuntu" as the name, select "Linux" as the type, and select Ubuntu (64-bit) as the version.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--14-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>NOTE</strong>: Select any amount of memory you wish, but don't add more than 50 percent of your total RAM.</p>
<p>Check the "Create a virtual hard disk now" option so we can later define our Ubuntu OS virtual hard disk size.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--16-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Now, we want to select "VHD (Virtual Hard Disk)".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--17--1.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Next, we'll dynamically allocate storage on our physical hard disk.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--18-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>We want to specify our Ubuntu OS's size. The recommended size is 10 GB, but you can increase the size if you wish.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--19-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>After creating a virtual hard disk, you'll see Ubuntu in your dashboard.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--20-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Now, we have to set up the Ubuntu disk image file (.iso).</p>
<p>The Ubuntu disk image file can be downloaded here: <a target="_blank" href="https://ubuntu.com/#download">Ubuntu OS download</a></p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--23-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>To set up the Ubuntu disk image file, go to settings and follow these steps:</p>
<ol>
<li>Click "Storage"</li>
<li>In storage devices, click "Empty"</li>
<li>In attributes, click the disk image and "Choose Virtual Optical Disk File"</li>
<li>Select the Ubuntu disk image file and open it</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--25-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Click OK.</p>
<p>Your Ubuntu OS is ready to install in VirtualBox. Let's start!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--26-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>NOTE:</strong> Ubuntu VirtualBox installation and actual OS installation steps may vary. This guide helps you to install Ubuntu in VirtualBox only.</p>
<h2 id="heading-lets-install-ubuntu">Let's install Ubuntu!</h2>
<p>Click Install Ubuntu.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--27-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Select your keyboard layout.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--29-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In the "Updates and other software" section, check "Normal installation" and continue.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--30-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In "Installation type", check "Erase disk and install Ubuntu".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--31-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Click "Continue".</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--32-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Choose your current location.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--33-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Now, set up your profile.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--34-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You'll see Ubuntu installing.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--35-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>After the installation, restart it.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--36-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>After logging in, you'll see the Ubuntu desktop.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--40-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>We have successfully installed Ubuntu in VirtualBox. It's ready to use for your future development projects.</p>
<h2 id="heading-lets-verify-the-installation">Let's verify the installation.</h2>
<p>Open your terminal (Press Ctrl+Alt+T) and type in the commands below and check if they work.</p>
<ol>
<li>pwd: This will print the current working directory</li>
<li>ls: This will list all items in your current directory</li>
</ol>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--43-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>After checking those, power off your machine by using the following command.</p>
<pre><code>poweroff
</code></pre><p><img src="https://www.freecodecamp.org/news/content/images/2019/11/Screenshot--44-.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>VirtualBox is free and is a great tool for running multiple operating systems on a single OS. Ubuntu has many benefits. If you're a beginner to Linux, I would recommend you use Ubuntu as it's beginner friendly. </p>
<p>Please feel free to let me know if you have any questions.</p>
<p>You can contact and connect with me on <a target="_blank" href="https://twitter.com/ThanoshanMV">Twitter</a> and <a target="_blank" href="https://medium.com/@mvthanoshan9">Medium</a>.</p>
<p>Thank you for reading.</p>
<p><strong>Happy Coding!</strong></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ VirtualBox: Are You Getting Your Money’s Worth? ]]>
                </title>
                <description>
                    <![CDATA[ NOTE: As of November 7, 2018, there’s an unpatched zero-day vulnerability in VirtualBox that could allow a user on the guest full access to the host machine. Until further notice, do NOT use VirtualBox with the default network settings. Details are a... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/virtualbox-are-you-getting-your-moneys-worth/</link>
                <guid isPermaLink="false">66b996657bb37b73c3f3c4ee</guid>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ VirtualBox  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ David Clinton ]]>
                </dc:creator>
                <pubDate>Thu, 25 Jul 2019 13:00:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9ca13c740569d1a4ca4d76.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p><strong>NOTE</strong>: As of November 7, 2018, there’s an <a target="_blank" href="https://github.com/MorteNoir1/virtualbox_e1000_0day">unpatched zero-day vulnerability in VirtualBox</a> that could allow a user on the guest full access to the host machine. Until further notice, do NOT use VirtualBox with the default network settings. <a target="_blank" href="https://github.com/MorteNoir1/virtualbox_e1000_0day">Details are available here</a>.</p>
<p>Of course you’re getting your money’s worth. VirtualBox is free, isn’t it? Ok, so then why not double the return on your investment? Why not find out how much more you can accomplish as a VirtualBox power user?</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*UAt3fRypjCK9quhYXf6w1g.png" alt="Image" width="960" height="570" loading="lazy"></p>
<p>Oracle’s VirtualBox is easy to install, easy to use, and gives you the ability to run virtual versions of just about any modern operating system from within any other modern operating system. Windows 10 on Ubuntu Linux? I’ve done it myself. FreeBSD on CentOS Linux? Sure, why not?</p>
<p>You can, of course, do similar stuff with the free VMware Player tool and, on Windows 8 and up, with Hyper-V. But this article is about VirtualBox.</p>
<p>I’d been using VirtualBox for years, but it wasn’t until I needed to pull together a number of physical machines sitting around the house to use as nodes in a <a target="_blank" href="https://hackernoon.com/too-many-choices-how-to-pick-the-right-tool-to-manage-your-docker-clusters-b5b3061b84b7">Docker swarm mode network</a> that things got complicated. After all, manually creating and launching VMs would require spending some serious time in front of each PC, babysitting OS installations and configurations. And that, in turn, would mean climbing stairs and sitting on the truly awful chairs in my kids’ rooms. Don’t tell them I said this, but I haven’t a clue why they put up with them.</p>
<p>It turns out that SSH connectivity between my (Linux) PCs and some very basic knowledge of the <em>vboxmanage</em> command line shell were all it took to return me to my lazy sysadmin happiness. It was liberating, and you could probably use some liberation of your own.</p>
<p>But before going there, I’ll talk a bit about the way VirtualBox works and the kinds of things you can do with it. Feel free to skip ahead if that doesn’t sound interesting.</p>
<p>What’s my angle in all this? While engaging in research for my various <a target="_blank" href="https://bootstrap-it.com/index.php/books/">books</a>and <a target="_blank" href="http://pluralsight.pxf.io/c/1191769/424552/7490?subId1=solving&amp;u=https%3A%2F%2Fapp.pluralsight.com%2Fprofile%2Fauthor%2Fdavid-clinton">Pluralsight video courses</a>, I often build test environments that include machines running odd combinations of operating systems. For some purposes — especially when I need to work at the operating system kernel level — VirtualBox has repeatedly proven to be the fastest and most effective tool I’ve got. I’m not sure I’d ever want to use a resource-greedy VirtualBox virtual machine to run permanent services, but for test and development related cases, it’s absolutely king of the hill.</p>
<p>That’s me. But is my experience useful for normal users? In the sense that, once in a while at least, everyone needs to check out new technologies, then absolutely. But I guess I am a bit unusual in that I very rarely move to production. I’m always testing.</p>
<h2 id="heading-working-with-virtualbox">Working with VirtualBox</h2>
<p>Besides letting you try out entirely new operating systems without having to dig through the garage for unused (but usable) hardware components, VirtualBox is also a terrific sandbox. So even if you don’t really care what OS you’re running, but you’re not too keen on risking the health and welfare of your main workstation on some experimental software configuration, VirtualBox can help.</p>
<p>This will also work if the experimental software configuration is your own. Which is to say that VirtualBox can be used as a tool for safely testing the way your own development projects handle within multiple OS environments.</p>
<p>And don’t forget that VirtualBox is very widely used as a provider for the Vagrant configuration automation system.</p>
<p>As I briefly wrote in my <a target="_blank" href="https://hackernoon.com/linux-server-virtualization-the-basics-32079b0e7d6e">Linux Server Virtualization article</a>, VirtualBox is a type-2 hypervisor. And so it is. But it’s a hypervisor with such a light footprint that, feature-for-feature, it can sometimes compete with container technologies like Docker and LXC/LXD. That opens VirtualBox up to a fairly wide range of uses. But since the overlap can get complicated, here (because you can never have too many spreadsheets) is a visual technology vs. technology comparison:</p>
<p><img src="https://cdn-media-1.freecodecamp.org/images/1*wjZKFpRlCBCluCN3mijABA.png" alt="Image" width="1452" height="723" loading="lazy">
<em>An unscientific feature/use-case matrix for virtualization technologies</em></p>
<h2 id="heading-getting-stuff-done">Getting Stuff Done</h2>
<p>Enough talk already. Let’s get to work.</p>
<p>The VirtualBox GUI is all very pretty, but it’ll really slow you down when you’re firing up VMs on multiple network hosts. So here are some tools that will make things happen — both locally or through a remote connection — from the command line.</p>
<p>Install VirtualBox. Here’s how it’s done on Ubuntu or Debian, at any rate:</p>
<pre><code>sudo apt install virtualbox
</code></pre><p>Now it is possible to remotely create a new VM from scratch using commands like these:</p>
<pre><code>vboxmanage list ostypes
vboxmanage createhd --filename Ubuntu64.vdi --size <span class="hljs-number">16384</span>
VBoxManage createvm --name Ubuntu64 --ostype “Ubuntu_64” --register
</code></pre><p>…But displaying the actual installation interface on a remote screen can sometimes be more trouble than it’s worth. Instead, let’s assume that you’ve already got a “golden-image” VirtualBox VM on your local workstation. You’ll want to use <em>vboxmanage list vms</em> to see what‘s there.</p>
<p>Here’s what it looked like on my workstation:</p>
<pre><code>vboxmanage list vms
“Ubuntu<span class="hljs-number">-16.04</span>-template” {c00d3b2b<span class="hljs-number">-6</span>c77–<span class="hljs-number">4919</span>–<span class="hljs-number">85e2</span>–<span class="hljs-number">6</span>f6f28c63d56}
“Ubuntu14-template” {<span class="hljs-number">43e2</span>f9d4–<span class="hljs-number">8</span>aa1–<span class="hljs-number">4</span>db4-aa59–<span class="hljs-number">33</span>b202df32ed}
“centos<span class="hljs-number">-7</span>-template” {e2613f6d<span class="hljs-number">-1</span>d0d<span class="hljs-number">-489</span>c<span class="hljs-number">-8</span>d9f<span class="hljs-number">-21</span>a36b2ed6e7}
“Kali-Linux-template” {b7a3aea2–<span class="hljs-number">0</span>cfb<span class="hljs-number">-4763</span>–<span class="hljs-number">9</span>ca9–<span class="hljs-number">096</span>f587b2b20}
“Kali-Linux-openvas” {<span class="hljs-number">1</span>ec41fdd-bf14–<span class="hljs-number">4025</span>–<span class="hljs-number">9e9</span>e-ee7272acf87f}
“docker-project” {<span class="hljs-number">2387</span>a5ab-a65e<span class="hljs-number">-4</span>a1d<span class="hljs-number">-8e2</span>c<span class="hljs-number">-25</span>ee81bc7203}
“Ubuntu<span class="hljs-number">-16</span>-lxd” {<span class="hljs-number">62</span>bb89f8–<span class="hljs-number">7</span>b45–<span class="hljs-number">4</span>df6-a8ea<span class="hljs-number">-3</span>d4265dfcc2f}
</code></pre><p>Note, by the way, how I keep clean “template” copies of individual operating systems and then create cloned copies whenever I need to do some actual work. Believe me, this can really speed up your time-to-launch over having to go through the whole installation routine each time. You can create clones from the GUI, or using <em>clonevm</em> like this (where “Kali-Linux-template” is the name of an existing VM and “newkali” is the name we’d like to give to the clone):</p>
<pre><code>vboxmanage clonevm Kali-Linux-template --name newkali
</code></pre><p>Check out the <em>clonevm</em> argument details on the <a target="_blank" href="https://www.virtualbox.org/manual/ch08.html#vboxmanage-clonevm">VirtualBox documentation page here</a>.</p>
<p>Here, however, I’m going to show you how to export an existing VM to a .OVA file that you can simply copy to your remote machines and then import into their instances of VirtualBox. The export operation couldn’t be simpler: you enter the name of the VM you want to export (docker-project, in my case), _-o_to specify an output filename, and the filename itself with the appropriate file extension.</p>
<pre><code>vboxmanage <span class="hljs-keyword">export</span> docker-project -o docker.ova
<span class="hljs-number">0</span>%…<span class="hljs-number">10</span>%…<span class="hljs-number">20</span>%…<span class="hljs-number">30</span>%…<span class="hljs-number">40</span>%…<span class="hljs-number">50</span>%…<span class="hljs-number">60</span>%…<span class="hljs-number">70</span>%…<span class="hljs-number">80</span>%…<span class="hljs-number">90</span>%…<span class="hljs-number">100</span>%
Successfully exported <span class="hljs-number">1</span> machine(s).
</code></pre><p>The file will be saved to your current directory. You can display the details of the file you’ve just created:</p>
<pre><code>ls -lh | grep docker-rw — — — — 
<span class="hljs-number">1</span> root root <span class="hljs-number">2.1</span>G Jun <span class="hljs-number">4</span> <span class="hljs-number">17</span>:<span class="hljs-number">01</span> docker.ova
</code></pre><p>One way or another, you’ll need to copy the .OVA file to your other PCs. Here’s how the file transfer might work between Linux/MAC OS machines using scp:</p>
<pre><code>scp docker.ova username@<span class="hljs-number">192.168</span><span class="hljs-number">.0</span><span class="hljs-number">.34</span>:<span class="hljs-regexp">/home/u</span>sername
</code></pre><p>Naturally, you’ll have to make sure you’ve got enough free disk space to both save the .OVA file itself (which can be quite large) <em>and</em> create the new VM.</p>
<p>Now log in to your remote machine and, from the directory containing the file you’ve just transferred, import it into VirtualBox:</p>
<pre><code>vboxmanage <span class="hljs-keyword">import</span> docker.ova
<span class="hljs-number">0</span>%…<span class="hljs-number">10</span>%…<span class="hljs-number">20</span>%…<span class="hljs-number">30</span>%…<span class="hljs-number">40</span>%…<span class="hljs-number">50</span>%…<span class="hljs-number">60</span>%…<span class="hljs-number">70</span>%…<span class="hljs-number">80</span>%…<span class="hljs-number">90</span>%…<span class="hljs-number">100</span>%
Interpreting /home/dad/docker.ova…
OK.
Disks: 
vmdisk2 <span class="hljs-number">36945920000</span> <span class="hljs-number">-1</span> http:<span class="hljs-comment">//www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized docker-disk1.vmdk</span>
<span class="hljs-number">-1</span>–<span class="hljs-number">1</span>Virtual system <span class="hljs-number">0</span>:
<span class="hljs-number">0</span>: Suggested OS type: <span class="hljs-string">"Ubuntu_64"</span>
    (change <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --ostype &lt;type&gt;"</span>; use <span class="hljs-string">"list ostypes"</span> to list all possible values)
 <span class="hljs-number">1</span>: Suggested VM name <span class="hljs-string">"docker-project"</span>
    (change <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --vmname &lt;name&gt;"</span>)
 <span class="hljs-number">2</span>: <span class="hljs-built_in">Number</span> <span class="hljs-keyword">of</span> CPUs: <span class="hljs-number">1</span>
    (change <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --cpus &lt;n&gt;"</span>)
 <span class="hljs-number">3</span>: Guest memory: <span class="hljs-number">2048</span> MB
    (change <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --memory &lt;MB&gt;"</span>)
 <span class="hljs-number">4</span>: Sound card (appliance expects <span class="hljs-string">""</span>, can change on <span class="hljs-keyword">import</span>)
    (disable <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 4 --ignore"</span>)
 <span class="hljs-number">5</span>: USB controller
    (disable <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 5 --ignore"</span>)
 <span class="hljs-number">6</span>: Network adapter: orig Bridged, config <span class="hljs-number">3</span>, extra slot=<span class="hljs-number">0</span>;type=Bridged
 <span class="hljs-number">7</span>: CD-ROM
    (disable <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 7 --ignore"</span>)
 <span class="hljs-number">8</span>: IDE controller, type PIIX4
    (disable <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 8 --ignore"</span>)
 <span class="hljs-number">9</span>: IDE controller, type PIIX4
    (disable <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 9 --ignore"</span>)
<span class="hljs-number">10</span>: SATA controller, type AHCI
    (disable <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 10 --ignore"</span>)
<span class="hljs-number">11</span>: Hard disk image: source image=docker-disk1.vmdk, target path=<span class="hljs-regexp">/home/</span>dad/VirtualBox VMs/docker-project/docker-disk1.vmdk, controller=<span class="hljs-number">10</span>;channel=<span class="hljs-number">0</span>
    (change target path <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 11 --disk path"</span>;
    disable <span class="hljs-keyword">with</span> <span class="hljs-string">"--vsys 0 --unit 11 --ignore"</span>)
<span class="hljs-number">0</span>%..<span class="hljs-number">.10</span>%..<span class="hljs-number">.20</span>%..<span class="hljs-number">.30</span>%..<span class="hljs-number">.40</span>%..<span class="hljs-number">.50</span>%..<span class="hljs-number">.60</span>%..<span class="hljs-number">.70</span>%..<span class="hljs-number">.80</span>%..<span class="hljs-number">.90</span>%..<span class="hljs-number">.100</span>%
Successfully imported the appliance.
</code></pre><p>You’ll want to confirm that everything worked by running <em>list vms</em>:</p>
<pre><code>vboxmanage list vms
“docker-project” {<span class="hljs-number">30</span>ec7f7d<span class="hljs-number">-912</span>b<span class="hljs-number">-40</span>a9–<span class="hljs-number">8</span>cc1-f9283f4edc61}
</code></pre><p>You can connect your VM to a network using <em>vboxmanage modifyvm</em>. But, before you can do that, you’ll need to know how your host machine refers to the appropriate network interface. On a Linux machine, you can get that using <em>ip addr</em>. In this case, the second interface that’s displayed (“eth0” — that’s “eth” followed by a zero…not the letter o) is the NIC through which that machine gets its internet access, so it’s the connection we’re after.</p>
<pre><code>ip addr
<span class="hljs-number">1</span>: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state 
UNKNOWN group default qlen 1
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
 valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host
 valid_lft forever preferred_lft forever
2: eth0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc
 pfifo_fast state UP group default qlen 1000
 link/ether 94:de:80:c5:1e:2d brd ff:ff:ff:ff:ff:ff
 inet 192.168.1.13/24 brd 192.168.1.255 scope global dynamic eth0
 valid_lft 59857sec preferred_lft 59857sec
 inet6 fe80::e1c3:f8a2:9f8d:4375/64 scope link
  valid_lft forever preferred_lft forever
</code></pre><p>One way to move your VM’s (virtual) network card onto the eth0 interface by way of a bridge adapter is through the <code>modifyvm</code> command. In this case, “docker-project” points to the VM name, and eth0 is the target of the new bridge, connecting your VM’s internal network interface with the host’s eth0.</p>
<pre><code>vboxmanage modifyvm “docker-project” --bridgeadapter1 eth0
</code></pre><p>Now you’re ready to fire up the VM. The “type headless” argument tells VirtualBox to run the VM as a server without a GUI.</p>
<pre><code>vboxmanage startvm “docker-project” --type headless
Waiting <span class="hljs-keyword">for</span> VM “docker-project” to power on…
VM “docker-project” has been successfully started.
</code></pre><p>Curious about what’s going on with your new VM? Try <em>showvminfo</em>:</p>
<pre><code>vboxmanage showvminfo docker-project
</code></pre><p>You may need to run a network search program like nmap to get your VM’s IP address. With that piece of information, you’ll be ready to get to work. Log in to your new VM using the same credentials you used on the source VM from which it was copied. Shutting down a VM once you’re done with it is as simple as running the <em>poweroff</em> command:</p>
<pre><code>VBoxManage controlvm “docker-project” poweroff 
<span class="hljs-number">0</span>%…<span class="hljs-number">10</span>%…<span class="hljs-number">20</span>%…<span class="hljs-number">30</span>%…<span class="hljs-number">40</span>%…<span class="hljs-number">50</span>%…<span class="hljs-number">60</span>%…<span class="hljs-number">70</span>%…<span class="hljs-number">80</span>%…<span class="hljs-number">90</span>%…<span class="hljs-number">100</span>%
</code></pre><p>Happy virtualizing!</p>
<p><em>David Clinton is the author of <a target="_blank" href="http://pluralsight.pxf.io/c/1191769/424552/7490?subId1=solving&amp;u=https%3A%2F%2Fapp.pluralsight.com%2Fprofile%2Fauthor%2Fdavid-clinton">Linux, AWS, Docker, and security courses</a> on Pluralsight, and</em> <a target="_blank" href="https://bootstrap-it.com"><em>technology books and content</em></a><em>.</em></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Install Arch Linux from Scratch ]]>
                </title>
                <description>
                    <![CDATA[ By Andrea Giammarchi In this article, you'll learn how to install Arch Linux from scratch… and in about 5 minutes. So let's get to it. As of today, it’s been more or less 3 years I am happily using Arch Linux as my primary Operating System, and I’ve ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/installing-arch-linux-from-scratch-b595095ddd48/</link>
                <guid isPermaLink="false">66c35815cf1314a450f0d6cc</guid>
                
                    <category>
                        <![CDATA[ Archibold ]]>
                    </category>
                
                    <category>
                        <![CDATA[ ArchLinux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Linux ]]>
                    </category>
                
                    <category>
                        <![CDATA[ technology ]]>
                    </category>
                
                    <category>
                        <![CDATA[ VirtualBox  ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Sun, 18 Dec 2016 20:13:22 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9cb6ec740569d1a4cae100.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By Andrea Giammarchi</p>
<p>In this article, you'll learn how to install Arch Linux from scratch… and in about 5 minutes. So let's get to it.</p>
<p>As of today, it’s been more or less 3 years I am happily using Arch Linux as my primary Operating System, and I’ve used it daily not only on my laptop, but also on my <a target="_blank" href="https://medium.com/@WebReflection/a-gaming-pc-without-breaking-the-bank-b56c73bba1e7#.ktf73jt1x">Gaming PC</a> and many <a target="_blank" href="https://benja.io/">Single Board Computers</a> too.</p>
<p>I’ve been using my <a target="_blank" href="https://archibold.io/">archibold.io</a> installer for quite a while, and recently I’ve rewritten it after learning more and more about Arch Linux.</p>
<p>This post is about <em>me</em> giving back few things I’ve learned from the <a target="_blank" href="https://www.archlinux.org/">Arch Linux</a> project and its community, hopefully simplifying life to whoever would like to embrace this awesome distribution!</p>
<h3 id="heading-booting-a-linux-os-in-a-nutshell">Booting a Linux OS in a nutshell</h3>
<p>You need a special partition recognized as bootable, and with some automatically recognized binary file capable of telling the motherboard how to booth, and where to boot on.</p>
<p>In Arch Linux land, there are basically 3 major players: <a target="_blank" href="http://www.denx.de/wiki/U-Boot/WebHome">U-Boot</a>, the default boot loader used by <a target="_blank" href="https://archlinuxarm.org/">Arch Linux ARM</a> ports, <a target="_blank" href="http://www.syslinux.org/wiki/index.php?title=The_Syslinux_Project">Syslinux</a>, which is the preferred choice of the very same Arch Linux ISO installer, and <a target="_blank" href="https://www.gnu.org/software/grub/">Grub</a>, usually easier to configure on multi-boot systems, which is not part of this very post scope.</p>
<p>Tools to deal with partitions are usually 2: <strong>parted</strong>, preferred when it comes to advanced features like UEFI partition and optimized disk alignment, or <strong>fdisk</strong>, which just works and does the job in a “<em>less scriptysh</em>” way.</p>
<h4 id="heading-booting-how">Booting How ?</h4>
<p>There are few ways to tell a motherboard how to boot a system: <a target="_blank" href="https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface">UEFI</a> configuration, which is mostly suitable for Windows OS running on Intel CPUs but usable to boot Linux distros too, and legacy BIOS compatible, which has less features than UEFI but it always delivers (and is the most widely available).</p>
<p>On top of this distinction, while UEFI has a secure boot mode, which is again basically a Windows specific thing only, a boot can also include special commands capable of enabling, or disabling, an <a target="_blank" href="https://en.wikipedia.org/wiki/INT_13H#EDD">EDD</a> mode, which is a good old <em>Enhanced Disk Drive</em> technology that might not be needed on boot time and in some case should be explicitly disabled like in VirtualBox images or some AMD based SBC like the Gizmo 2 board.</p>
<h4 id="heading-booting-what">Booting What ?</h4>
<p>There is one and one only consolidated cross platform and universal File System out there and it’s sadly or thankfully the good old <a target="_blank" href="https://en.wikipedia.org/wiki/File_Allocation_Table">FAT</a> one.</p>
<p>There are surely more suitable, more secure, faster, and more HW caring options out there, but FAT with a loader is a safe bet with both UEFI and legacy.</p>
<p>In few words, the most basic amount of partitions on your system should be 2: a FAT bootable one, and a “<em>whatever you want</em>” else. Please note that <a target="_blank" href="https://en.wikipedia.org/wiki/Ext4">ext4</a> is still a very valid choice for daily tasks, but there are few valid alternatives to consider, yet not part of this post scope.</p>
<h4 id="heading-any-swap">Any Swap ?</h4>
<p>If you are installing Arch Linux on a system with more than 4GB or RAM, and you are not planning to use such system to develop complex software, I’d say you shouldn’t worry much about having a backup <a target="_blank" href="https://en.wikipedia.org/wiki/Paging">swap</a> partition.</p>
<p>Generally speaking, old laptops I’ve tested, with just 2GB of RAM, has been doing great without any extra swap and a graphical Desktop like <a target="_blank" href="https://www.gnome.org/">GNOME</a> without effort.</p>
<p>However, if you’d like to have some extra room to build more complex software, and you have more than 1GB of RAM, use 1/4 of your RAM amount and you’d be fine.</p>
<h3 id="heading-ok-but-where-are-all-the-commands-to-install-linux">OK but where are all the commands to install Linux ?</h3>
<p>This is the best part of this post, the moment you’ve reached this part is the moment you are self trained to answer all basic questions <strong>archibold.io installer</strong> is going to ask you.</p>
<p>Download the <a target="_blank" href="https://www.archlinux.org/download/">Arch Linux ISO</a> from the website, and use it for a VirtualBox boot, or <a target="_blank" href="https://wiki.archlinux.org/index.php/USB_flash_installation_media">burn it to an USB stick following this Wiki Page</a>, you’ll have everything you need to boot into a terminal and run the following code:</p>
<pre><code>$ bash &lt;(curl -s archibold.io/base)
</code></pre><p>That’s basically it, the procedure will install the most basic Arch Linux you could think of on your machine or, like the video on top of this post shows, on a VirtualBox, in case you want to try it first.</p>
<h3 id="heading-ok-cool-but-id-like-to-have-a-desktop-too">OK, cool … but I’d like to have a Desktop too!</h3>
<p>In this case, oce you have booted into your account, you can check if you have an internet connection typing:</p>
<pre><code>ip addr
</code></pre><p>and if nothing appears under your wifi or ethernet name, follow these instructions:</p>
<pre><code># <span class="hljs-keyword">if</span> not logged <span class="hljs-keyword">as</span> root already, type <span class="hljs-string">'su'</span>su# use root <span class="hljs-keyword">as</span> <span class="hljs-keyword">default</span> password# now, <span class="hljs-keyword">in</span> <span class="hljs-keyword">case</span> you have a wired connectionip addr # to see the name <span class="hljs-keyword">of</span> the adapterdhcpcd enp0s3 # where enp0s3 is just a made up name, use your one
</code></pre><pre><code># <span class="hljs-keyword">if</span> it was wi-fi cardwifi-menu # and configure it
</code></pre><pre><code>exit # to go back to your user
</code></pre><p>Once you have an internet connection, you can simply use another helper:</p>
<pre><code>bash &lt;(curl -s archibold.io/install/gnome)
</code></pre><p>The latter will guide you to install the best Desktop environment out there.</p>
<h4 id="heading-right-but">Right .. but …</h4>
<p>If you’re stuck at any point, please don’t hesitate to file a bug in the <a target="_blank" href="https://github.com/WebReflection/archibold.io/tree/gh-pages">Open Source archibold repository</a>, or simply ask me questions in here.</p>
<p>I’m pretty sure I can answer most of them so … bring it on! :-)</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
