Showing posts with label cache. Show all posts
Showing posts with label cache. Show all posts

Friday, January 11, 2019

Installing Linux in 2019


It is January of 2019 Lets see how easy it has become to install Linux on a PC. Does it still require complicated hands on hacking to get it up and running? Well it depends on a flavor you choose, but most of the mainstream distributions wont need more than few clicks and couple of text boxes to fill. I could say that it takes even less of an effort than the first boot of an sysprepped stock windows 10 next, next, next, no, no no, no… setup. So lets see how easy it really is.

To begin with we need an installation media from which we can install the distribution. My go-to flavor for desktop/graphical environment is Fedora (specifically KDE spin) and for servers CentOS . I have used other distributions like Debian, Ubuntu, SUSE Linux Enterprise Server, Oracle Linux and Red Hat Enterprise Linux, but Oracle, SUSE and Red Hat are subscription based services so are less used on services that do not require to be certified on specific distribution. With Debian/Ubuntu… I can use them, but have never mastered the software packaging so I don’t use them much…

So today’s subject is installing basic CentOS machine called bazaar (well I have installed it and it is installed on physical hardware so to get the screenshots I’m just creating an virtual machine under KVM). This will become headless “server” for RPM cache to begin with and possibly acquire some more roles in the future.

So why do I need an rpm cache? Well – I have 4 Fedora machines, 3 CentOS machines and about 40 CentOS VM (no they are not online 24/7 – I boot them up/patch them as needed) for different projects and to play with. I patch them regularly and well my internet connection is not great (12Mbit down/1Mbit up) so when I have to upgrade Fedora 28 to Fedora 29 (which means downloading about 1..2GB of rpm-s for 4 times… taking an hour or two each time… well I’m tiered of waiting). I’m planning to do this upgrade in a week or two so I need an rpm caching server. This is not an issue with Fedora only – CentOS also releases major updates that may be as bit as 1GB (depends on how many packages are installed) and doing it 40 times… well… it takes a lot of time just to download everything again and again.

So how powerful the hardware needs to be? The answer is – I don’t know yet. I had an ASUS Eee Box EB1012P lying around with 4GB RAM, 250GB 2.5’’ WD SATA drive and a gigabit LAN adapter. The CPU is not fast, RAM is not fast, HDD is not fast, but it has 2 core 4 thread 13W TDP CPU. So average power consumption is low - it should stay around 5..20W so it is perfect for 24/7 operation. Yes an SoC like an Raspberry Pi would be more power efficient but I have had bad experience with SD cards dying on heavy IO and I don’t currently have a plan to start making backups of the rpm cache so Eee it is...

To start with I downloaded an CentOS 7 IOS and transferred it to an USB stick. Boot the machine and pressing F8 select the removable media as a boot device. The screen should look like this:

If the Install option is not highlighted then just press the up arrow on the keyboard an select it and press enter. The screen should look similar to this:


It should boot and ask for an language selection:


I like the language to stay English so it is easier to search for problems when they occur but it is up to the administrator to use the language they want. When done click continue and you should be arriving at a screen like this:


I’m hoping, that setting the timezone and keyboard layout is self explanatory so I wont go into that. Also leaving software installation source as local media is recommended (there is possibility to add external repositories, but relying on experience, it is easier to add them after the installation has completed). Since it will become headless “server” minimal install is sufficient.

On a production server I would leave kdump enabled as it will create kernel dumps that can help debug hardware issues, but when creating VM’s for testing I usually disable it as VM’s dont have direct hardware connected to them. I also like to disable the security policy as the policies are not included with CentOS and are available only on official Red Hat Enterprise Linux. This does not mean that CentOS is less secure than RHEL – it just means it is not certified under the example policies. Under network configuration… well it should be self explanatory… I’ll use dhcp in this example, but servers should be configured with static IP.

The hing that needs a little attention is the installation destination:

This VM has a 20GB virtual disk attached to it and since it has no partitions on it it is automatically selected and it should be good enough for basic installation (it is easier to make changes afterwards to change partitioning as it uses LVM by default than try to make a custom partitioning beforehand). So all that is left is click done and then “Begin Installation”. We are on the final stretch…


This should be the screen we are on now. Setting root password is like setting local administrator password in windows. The user root is the superuser that can do anything in the machine so its password should be strong. The user creation tab is optional but recommended as root user should be used only on an emergency's and not for day to day operation.


This screen is similar to setting the root user password with exception of adding username to it AND “Make this user administrator” option. Checking this box grants this use an option to run commands as a root without knowing the root password using "sudo" command. If this is done all that is left to do is wait for the installation to complete and reboot the machine when the option appears.

Now, if everything went well we should be greeted with a boot screen like this:

That means that the installation was successful and we have a brand new Linux machine available.
This should be sufficient for an example on how to install Linux in 2019 and in the near future we’ll configure it.