Posts Tagged ‘Installing’

Howto install Google Chrome web browser on CentOS Linux 7

Friday, December 11th, 2020

Reading Time: 4 minutes

After installing CentOS 7 Linux testing Virtual Machine in Oracle Virtualbox 6.1 to conduct some testing with php / html / javascript web script pages and use the VM for other work stuff that I later plan to deploy on production CentOS systems, I came to requirement of having a working Google Chrome browser.

In that regards, next to Firefox, I needed to test the web applications in commercial Google Chrome to see what its usercan expect. For those who don't know it Google Chrome is based on Chromium Open source browser ( which is available by default via default CentOS EPEL repositories.

One remark to make here is before installing Google Chrome, I've also test my web scripts first with chromium, to install Chromium free browser on CentOS:

[root@localhost mozilla_test0]# yum install chromium
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base:
 * epel:
 * extras:
 * updates:
Resolving Dependencies
–> Running transaction check
—> Package chromium.x86_64 0:85.0.4183.121-1.el7 will be installed
–> Processing Dependency: chromium-common(x86-64) = 85.0.4183.121-1.el7 for package: chromium-85.0.4183.121-1.el7.x86_64
–> Processing Dependency: nss-mdns(x86-64) for package: chromium-85.0.4183.121-1.el7.x86_64
–> Processing Dependency: for package: chromium-85.0.4183.121-1.el7.x86_64
–> Running transaction check
—> Package chromium-common.x86_64 0:85.0.4183.121-1.el7 will be installed
—> Package minizip.x86_64 0:1.2.7-18.el7 will be installed
—> Package nss-mdns.x86_64 0:0.14.1-9.el7 will be installed
–> Finished Dependency Resolution


Dependencies Resolved

 Package                              Arch                        Version                                   Repository                 Size
 chromium                             x86_64                      85.0.4183.121-1.el7                       epel                       97 M
Installing for dependencies:
 chromium-common                      x86_64                      85.0.4183.121-1.el7                       epel                       16 M
 minizip                              x86_64                      1.2.7-18.el7                              base                       34 k
 nss-mdns                             x86_64                      0.14.1-9.el7                              epel                       43 k

Transaction Summary
Install  1 Package (+3 Dependent packages)

Total download size: 113 M
Installed size: 400 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): minizip-1.2.7-18.el7.x86_64.rpm                                                                               |  34 kB  00:00:00     
(2/4): chromium-common-85.0.4183.121-1.el7.x86_64.rpm                                                                |  16 MB  00:00:08     
(3/4): chromium-85.0.4183.121-1.el7.x86_64.rpm                                                                       |  97 MB  00:00:11     
(4/4): nss-mdns-0.14.1-9.el7.x86_64.rpm                                                                              |  43 kB  00:00:00     
Total                                                                                                       9.4 MB/s | 113 MB  00:00:12     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : minizip-1.2.7-18.el7.x86_64                                                                                              1/4
  Installing : chromium-common-85.0.4183.121-1.el7.x86_64                                                                               2/4
  Installing : nss-mdns-0.14.1-9.el7.x86_64                                                                                             3/4
  Installing : chromium-85.0.4183.121-1.el7.x86_64                                                                                      4/4
  Verifying  : chromium-common-85.0.4183.121-1.el7.x86_64                                                                               1/4
  Verifying  : minizip-1.2.7-18.el7.x86_64                                                                                              2/4
  Verifying  : chromium-85.0.4183.121-1.el7.x86_64                                                                                      3/4
  Verifying  : nss-mdns-0.14.1-9.el7.x86_64                                                                                             4/4

  chromium.x86_64 0:85.0.4183.121-1.el7                                                                                                     

Dependency Installed:
  chromium-common.x86_64 0:85.0.4183.121-1.el7            minizip.x86_64 0:1.2.7-18.el7            nss-mdns.x86_64 0:0.14.1-9.el7           


Chromium browser worked however it is much more buggy than Google Chrome and the load it puts on the machine as well as resources it consumes is terrible if compared to Proprietary G. Chrome.

Usually I don't like google chrome as it is a proprietary product and I don't even install it on my Linux Desktops, neither use as using is against any secure wise practice and but I needed this time ..

Thus to save myself some pains therefore proceeded and installed Google Chromium.
Installion  of Google Chrome is a straight forward process you download the latest rpm run below command to resolve all library dependencies and you're in:



[root@localhost mozilla_test0]# rpm -ivh google-chrome-stable_current_x86_64.rpm
warning: google-chrome-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEY
error: Failed dependencies:
    liberation-fonts is needed by google-chrome-stable-87.0.4280.88-1.x86_64 is needed by google-chrome-stable-87.0.4280.88-1.x86_64
[root@localhost mozilla_test0]# wget
–2020-12-11 07:03:02–
Resolving (…, 2a00:1450:4017:802::200e
Connecting to (||:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 72280700 (69M) [application/x-rpm]
Saving to: ‘google-chrome-stable_current_x86_64.rpm


100%[==================================================================================================>] 72,280,700  11.0MB/s   in 6.6s   

2020-12-11 07:03:09 (10.4 MB/s) – ‘google-chrome-stable_current_x86_64.rpm’ saved [72280700/72280700]

[root@localhost mozilla_test0]# yum localinstall google-chrome-stable_current_x86_64.rpm
Loaded plugins: fastestmirror, langpacks
Examining google-chrome-stable_current_x86_64.rpm: google-chrome-stable-87.0.4280.88-1.x86_64
Marking google-chrome-stable_current_x86_64.rpm to be installed
Resolving Dependencies
–> Running transaction check
—> Package google-chrome-stable.x86_64 0:87.0.4280.88-1 will be installed
–> Processing Dependency: liberation-fonts for package: google-chrome-stable-87.0.4280.88-1.x86_64
Loading mirror speeds from cached hostfile
 * base:
 * epel:
 * extras:
 * updates:
–> Processing Dependency: for package: google-chrome-stable-87.0.4280.88-1.x86_64
–> Running transaction check
—> Package liberation-fonts.noarch 1:1.07.2-16.el7 will be installed
–> Processing Dependency: liberation-narrow-fonts = 1:1.07.2-16.el7 for package: 1:liberation-fonts-1.07.2-16.el7.noarch
—> Package vulkan.x86_64 0: will be installed
–> Processing Dependency: vulkan-filesystem = for package: vulkan-
–> Running transaction check
—> Package liberation-narrow-fonts.noarch 1:1.07.2-16.el7 will be installed
—> Package vulkan-filesystem.noarch 0: will be installed
–> Finished Dependency Resolution

Dependencies Resolved

 Package                             Arch               Version                      Repository                                        Size
 google-chrome-stable                x86_64             87.0.4280.88-1               /google-chrome-stable_current_x86_64             227 M
Installing for dependencies:
 liberation-fonts                    noarch             1:1.07.2-16.el7              base                                              13 k
 liberation-narrow-fonts             noarch             1:1.07.2-16.el7              base                                             202 k
 vulkan                              x86_64                  base                                             3.6 M
 vulkan-filesystem                   noarch                  base                                             6.3 k

Transaction Summary
Install  1 Package (+4 Dependent packages)

Total size: 231 M
Total download size: 3.8 M
Installed size: 249 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): liberation-fonts-1.07.2-16.el7.noarch.rpm                                                                     |  13 kB  00:00:00     
(2/4): liberation-narrow-fonts-1.07.2-16.el7.noarch.rpm                                                              | 202 kB  00:00:00     
(3/4): vulkan-filesystem-                                                                   | 6.3 kB  00:00:00     
(4/4): vulkan-                                                                              | 3.6 MB  00:00:01     
Total                                                                                                       1.9 MB/s | 3.8 MB  00:00:02     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : vulkan-filesystem-                                                                                  1/5
  Installing : vulkan-                                                                                             2/5
  Installing : 1:liberation-narrow-fonts-1.07.2-16.el7.noarch                                                                           3/5
  Installing : 1:liberation-fonts-1.07.2-16.el7.noarch                                                                                  4/5
  Installing : google-chrome-stable-87.0.4280.88-1.x86_64                                                                               5/5
Redirecting to /bin/systemctl start atd.service
  Verifying  : vulkan-                                                                                             1/5
  Verifying  : 1:liberation-narrow-fonts-1.07.2-16.el7.noarch                                                                           2/5
  Verifying  : 1:liberation-fonts-1.07.2-16.el7.noarch                                                                                  3/5
  Verifying  : google-chrome-stable-87.0.4280.88-1.x86_64                                                                               4/5
  Verifying  : vulkan-filesystem-                                                                                  5/5

  google-chrome-stable.x86_64 0:87.0.4280.88-1                                                                                              

Dependency Installed:
  liberation-fonts.noarch 1:1.07.2-16.el7         liberation-narrow-fonts.noarch 1:1.07.2-16.el7       vulkan.x86_64 0:      
  vulkan-filesystem.noarch 0:      


Once Chrome is installed you can either run it from gnome-terminal

[test@localhost ~]$ gnome-terminal &


Or find it in the list of CentOS programs:

Applications → Internet → Google Chrome


Last step to do is to make Google Chrome easily updatable to keep up VM level on high security and let it get updated every time when apply security updates with yum check-update && yum upgrade
for that its necessery to create new custom repo file

[root@localhost mozilla_test0]# vim /etc/yum.repos.d/google-chrome.repo

Now letes import the gpg checksum key

[root@localhost mozilla_test0]# rpmkeys –import

That's all folks google-chrome is at your disposal.

Fix FTP active connection issues “Cannot create a data connection: No route to host” on ProFTPD Linux dedicated server

Tuesday, October 1st, 2019

Reading Time: 5 minutes


Earlier I've blogged about an encounter problem that prevented Active mode FTP connections on CentOS
As I'm working for a client building a brand new dedicated server purchased from Contabo Dedi Host provider on a freshly installed Debian 10 GNU / Linux, I've had to configure a new FTP server, since some time I prefer to use Proftpd instead of VSFTPD because in my opinion it is more lightweight and hence better choice for a small UNIX server setups. During this once again I've encounted the same ACTIVE FTP not working from FTP server to FTP client host machine. But before shortly explaining, the fix I find worthy to explain briefly what is ACTIVE / PASSIVE FTP connection.


1. What is ACTIVE / PASSIVE FTP connection?

Whether in active mode, the client specifies which client-side port the data channel has been opened and the server starts the connection. Or in other words the default FTP client communication for historical reasons is in ACTIVE MODE. E.g.
Client once connected to Server tells the server to open extra port or ports locally via which the overall FTP data transfer will be occuring. In the early days of networking when FTP protocol was developed security was not of such a big concern and usually Networks did not have firewalls at all and the FTP DATA transfer host machine was running just a single FTP-server and nothing more in this, early days when FTP was not even used over the Internet and FTP DATA transfers happened on local networks, this was not a problem at all.

In passive mode, the server decides which server-side port the client should connect to. Then the client starts the connection to the specified port.

But with the ever increasing complexity of Internet / Networks and the ever tightening firewalls due to viruses and worms that are trying to own and exploit networks creating unnecessery bulk loads this has changed …


2. Installing and configure ProFTPD server Public ServerName

I've installed the server with the common cmd:


apt –yes install proftpd


And the only configuration changed in default configuration file /etc/proftpd/proftpd.conf  was
ServerName          "Debian"

I do this in new FTP setups for the logical reason to prevent the multiple FTP Vulnerability Scan script kiddie Crawlers to know the exact OS version of the server, so this was changed to:


ServerName "MyServerHostname"


Though this is the bad security through obscurity practice doing so is a good practice.

3. Create iptable firewall rules to allow ACTIVE FTP mode

But anyways, next step was to configure the firewall to be allowed to communicate on TCP PORT 21 and 20 to incoming source ports range 1024:65535 (to enable ACTIVE FTP) on firewal level with iptables on INPUT and OUTPUT chain rules, like this:


iptables -A INPUT -p tcp –sport 1024:65535 -d 0/0 –dport 21 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 –sport 1024:65535 -d 0/0 –dport 20 -m state –state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 0/0 –sport 21 -d 0/0 –dport 1024:65535 -m state –state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -s 0/0 –sport 20 -d 0/0 –dport 1024:65535 -m state –state ESTABLISHED,RELATED -j ACCEPT

Talking about Active and Passive FTP connections perhaps for novice Linux users it might be worthy to say few words on Active and Passive FTP connections

Once firewall has enabled FTP Active / Passive connections is on and FTP server is listening, to test all is properly configured check iptable rules and FTP listener:

/sbin/iptables -L INPUT |grep ftp
ACCEPT     tcp  —  anywhere             anywhere             tcp spts:1024:65535 dpt:ftp state NEW,ESTABLISHED
ACCEPT     tcp  —  anywhere             anywhere             tcp spts:1024:65535 dpt:ftp-data state NEW,ESTABLISHED
ACCEPT     tcp  —  anywhere             anywhere             tcp dpt:ftp
ACCEPT     tcp  —  anywhere             anywhere             tcp dpt:ftp-data

netstat -l | grep "ftp"
tcp6       0      0 [::]:ftp                [::]:*                  LISTEN    


4. Loading nf_nat_ftp module and net.netfilter.nf_conntrack_helper (for backward compitability)

Next step of course was to add the necessery modules nf_nat_ftp nf_conntrack_sane that makes FTP to properly forward ports with respective Firewall states on any of above source ports which are usually allowed by firewalls, note that the range of ports given 1024:65535 might be too much liberal for paranoid sysadmins and in many cases if ports are not filtered, if you are a security freak you can use some smaller range such as 60000-65535.


Here is time to say for sysadmins who haven't recently had a task to configure a new (unecrypted) File Transfer Server as today Secure FTP is almost alltime used for file transfers for the sake of security might be puzzled to find out the old Linux kernel ip_conntrack_ftp which was the standard module used to make FTP Active connections work is substituted nowadays with  nf_nat_ftp and nf_conntrack_sane.

To make the 2 modules permanently loaded on next boot on Debian Linux they have to be added to /etc/modules

Here is how sample /etc/modules that loads the modules on next system boot looks like

cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

Next to say is that in newer Linux kernels 3.x / 4.x / 5.x the nf_nat_ftp and nf_conntrack-sane behaviour changed so  simply loading the modules would not work and if you do the stupidity to test it with some FTP client (I used gFTP / ncftp from my Linux desktop ) you are about to get FTP No route to host errors like:


Cannot create a data connection: No route to host



Sometimes, instead of No route to host error the error FTP client might return is:


227 entering passive mode FTP connect connection timed out error

To make the nf_nat_ftp module on newer Linux kernels hence you have to enable backwards compatibility Kernel variable





echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper


To make it permanent if you have enabled /etc/rc.local legacy one single file boot place as I do on servers – for how to enable rc.local on newer Linuxes check here

or alternatively add it to load via sysctl

sysctl -w net.netfilter.nf_conntrack_helper=1

And to make change permanent (e.g. be loaded on next boot)

echo 'net.netfilter.nf_conntrack_helper=1' >> /etc/sysctl.conf


5. Enable PassivePorts in ProFTPD or PassivePortRange in PureFTPD

Last but not least open /etc/proftpd/proftpd.conf find PassivePorts config value (commented by default) and besides it add the following line:


PassivePorts 60000 65534


Just for information if instead of ProFTPd you experience the error on PureFTPD the configuration value to set in /etc/pure-ftpd.conf is:

PassivePortRange 30000 35000

That's all folks, give the ncftp / lftp / filezilla or whatever FTP client you prefer and test it the FTP client should be able to talk as expected to remote server in ACTIVE FTP mode (and the auto passive mode) will be not triggered anymore, nor you will get a strange errors and failure to connect in FTP clients as gftp.

Cheers 🙂

Installing usual Software Tools and Development header files and libraries on a newly installed Debian Server

Thursday, February 11th, 2010

Reading Time: 3 minutes

Today I start my work as a system administrator for a new IT company.
My first duties include configuration and installation of some usual programs
used in everyday's sys admin job.
In that manner of thoughts I have long ago realized there is a common group of
tools and software I had to install on almost each and every new configured
Debian GNU / Linux running Server.
Here is a list of packages I usually install on new Debian systems,
even though this exact commands are expected to be executed on Debian (5.0) Lenny
I believe they are quite accurate for Debian Testing and Debian Testing/Unstable,
bleeding edge distributions.
Before I show you the apt-get lines with all the packages, I would advice you to install
and use netselect-apt to select the fastest Debian package mirror near you
So to install and use run the following commands;

aptitude install netselect-apt
netselect-apt -n lenny

Now as netselect-apt would have tested for the fastest mirror and created sources.list
file in your current directory, open the sources.list file and decide what should enter your
official /etc/apt/sources.list file or in other words merge the two files as you like.
Good, now as we have a fast mirror to download our packages let's continue further with the
packages to install.
Excecute the following command to install some of the basic tools and packages:

# install some basic required tools, software and header files
debian-server:~# apt-get install tcpdump mc ncurses-dev htop iftop iptraf nmap tcpdump apache2 apachetop
mysql-server-5.0 phpmyadmin vnstat rsync traceroute tcptrace e2fsprogs hddtemp finger mtr-tiny
netcat screen imagemagick flex snort mysql-server-5.0 sysstat lm-sensors alien rar unrar util-linux curl
vim lynx links elinks sudo autoconf gcc build-essential dpkg-dev webalizer awstats

Herein I'll explain just a few of the installed package and their install
purpose,as they could be unknown to some of the people out there.

apachetop - monitors apache log file in real time similar to gnu top
iftop - display bandwidth usage on selected interface interactively
vnstat - show inbound & outbound traffic usage on selected network interfaces
e2fsprogs - some general tools for creation of ext2 file systems etc.
hddtemp - Utility to monitor hard drive temperature
mtr-tiny - matt's traceroute great traceroute proggie
netcat - TCP/IP swiss army knife, quite helpful for network maintance tasks
snort - an Intrusion Detecting System
build-essential - installs basic stuff required for most applications compiled from source code
sysstat - generates statistics about server load each and every ten minutes, check man for more
lm-sensors - enables you to track your system hardware sensors information and warn in CPU heatups etc.

I believe the rest of them are no need to be explained, if you're not familiar with them check the manuals.
So far so good but this is not all I had to install, as you probably know most Apache webservers nowadays
are running PHP and are using a dozen of PHP libraries / extensions not originally bundled with PHP install
Therefore here are some more packages related to php to install that would install some more php goodies.

# install some packages required for many php enabled applications
debian-esrver:~# apt-get install php-http php-db php-mail php-net-smtp php-net-socket php-pear php-xml-parser
php5-curl php5-gd php5-imagick php5-mysql php5-odbc php5-recode php5-sybase php5-xmlrpc php5-dev

As I said that is mostly the basic stuff that is a must have on most of the Debian servers I have
configured this days, of course this is not applicable to all situations, however I hope
this would be of use to somebody out there.

How to install KVM Kernel-based Virtual Machine Virtualization on Linux

Sunday, October 14th, 2018

Reading Time: 22 minutes


If you want to run multiple virtual machines on GNU / Linux server or your Linux powered Desktop you have the possibility to use a couple of Virtual Machines just to name a few VirtualBox and VMWare are the option the native way to do it is using the Linux kernel via a loadable kernel module called KVM (Kernel-based Virtual Machine).
Though Oracle's Virtualbox generally works and you could add new test beds virtual machines (install multiple Linux / *BSD OS) it is not fully Free Software and not even fully open source licensed, VMWare even though superior as a Virtualization product is proprietary and its application costs a lot of money which not each develpoper or small / mid-sized company could afford.

Once the kvm.ko module is loaded your Linux kernel turns into a full-featured Virtual Machine Hypervisor.
Starting with Linux kernel 2.6.X the KVM Hypervisor is available and easy to install virtually all modern Linux distributions Redhat / CentOS Debian / Ubuntu etc. support it and its up to running few commands to install and start using the Power of Kernel embedded Virtualization.

KVM could be used to run in parallel multiple Operating Systems such as Windows / Linux / FreeBSD and others of BSDs family,  each running under a separate virtual machine with its private dedicated (isolated), disc, graphic card, network card etc.

To start up I assume you have already installed some kind of Linux distribution either locally or on a remote dedicated server.

1. Installing KVM on Debian GNU / Linux / Ubuntu / Mint and other deb based distros


Using APT tool install below packages:


root@jeremiah:~# apt install –yes qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils libguestfs-tools genisoimage virtinst libosinfo-bin


2. Installing virt-manager GUI to manage Virtual servers


root@jeremiah:~# apt-cache show virt-manager|grep -i desc -A 1
Description-en: desktop application for managing virtual machines
 It presents a summary view of running domains and their live performance &

Description-md5: 9f7f584744b77cdacc2291f2a8ac220e


root@jeremiah:~# apt install –yes virt-manager






3. Configure bridged networking to allow access to newly configured VMs

Bridging has to be added via /etc/network/interfaces therefore it is a good idea to create a backup of it before modifying:


# cp -rpf /etc/network/interfaces /etc/network/interfaces.bakup-$(echo $(date '+%Y-%m-%d-%H'))


# vim /etc/network/interfaces

auto br0
 iface br0 inet static
         # set static route for LAN
      post-up route add -net netmask gw
      post-up route add -net netmask gw
         bridge_ports eth0
         bridge_stp off
         bridge_fd 0
         bridge_maxwait 0
 # br1 setup with static wan IPv4 with ISP router as a default gateway
 auto br1
 iface br1 inet static
         bridge_ports eth1
         bridge_stp off
         bridge_fd 0
         bridge_maxwait 0


Once file is saved in vim editor restart the networking.


# systemctl restart network.manager


To verify whether the bridge has been succesfully upped.


root@jeremiah:/home/hipo/kvm# brctl show
bridge name    bridge id        STP enabled    interfaces
virbr0        8000.525400cb1cd1    yes        virbr0-nic


4. List all installable Virtual OS images

root@jeremiah:/home/hipo/kvm# virt-builder -list
centos-6                 x86_64     CentOS 6.6
centos-7.0               x86_64     CentOS 7.0
centos-7.1               x86_64     CentOS 7.1
centos-7.2               aarch64    CentOS 7.2 (aarch64)
centos-7.2               x86_64     CentOS 7.2
centos-7.3               x86_64     CentOS 7.3
centos-7.4               x86_64     CentOS 7.4
centos-7.5               x86_64     CentOS 7.5
cirros-0.3.1             x86_64     CirrOS 0.3.1
cirros-0.3.5             x86_64     CirrOS 0.3.5
debian-6                 x86_64     Debian 6 (Squeeze)
debian-7                 sparc64    Debian 7 (Wheezy) (sparc64)
debian-7                 x86_64     Debian 7 (wheezy)
debian-8                 x86_64     Debian 8 (jessie)
debian-9                 x86_64     Debian 9 (stretch)
fedora-18                x86_64     Fedora® 18
fedora-19                x86_64     Fedora® 19
fedora-20                x86_64     Fedora® 20
fedora-21                aarch64    Fedora® 21 Server (aarch64)
fedora-21                armv7l     Fedora® 21 Server (armv7l)
fedora-21                ppc64      Fedora® 21 Server (ppc64)
fedora-21                ppc64le    Fedora® 21 Server (ppc64le)
fedora-21                x86_64     Fedora® 21 Server
fedora-22                aarch64    Fedora® 22 Server (aarch64)
fedora-22                armv7l     Fedora® 22 Server (armv7l)
fedora-22                i686       Fedora® 22 Server (i686)
fedora-22                x86_64     Fedora® 22 Server
fedora-23                aarch64    Fedora® 23 Server (aarch64)
fedora-23                armv7l     Fedora® 23 Server (armv7l)
fedora-23                i686       Fedora® 23 Server (i686)
fedora-23                ppc64      Fedora® 23 Server (ppc64)
fedora-23                ppc64le    Fedora® 23 Server (ppc64le)
fedora-23                x86_64     Fedora® 23 Server
fedora-24                aarch64    Fedora® 24 Server (aarch64)
fedora-24                armv7l     Fedora® 24 Server (armv7l)
fedora-24                i686       Fedora® 24 Server (i686)
fedora-24                x86_64     Fedora® 24 Server
fedora-25                aarch64    Fedora® 25 Server (aarch64)
fedora-25                armv7l     Fedora® 25 Server (armv7l)
fedora-25                i686       Fedora® 25 Server (i686)
fedora-25                ppc64      Fedora® 25 Server (ppc64)
fedora-25                ppc64le    Fedora® 25 Server (ppc64le)
fedora-25                x86_64     Fedora® 25 Server
fedora-26                aarch64    Fedora® 26 Server (aarch64)
fedora-26                armv7l     Fedora® 26 Server (armv7l)
fedora-26                i686       Fedora® 26 Server (i686)
fedora-26                ppc64      Fedora® 26 Server (ppc64)
fedora-26                ppc64le    Fedora® 26 Server (ppc64le)
fedora-26                x86_64     Fedora® 26 Server
fedora-27                aarch64    Fedora® 27 Server (aarch64)
fedora-27                armv7l     Fedora® 27 Server (armv7l)
fedora-27                i686       Fedora® 27 Server (i686)
fedora-27                ppc64      Fedora® 27 Server (ppc64)
fedora-27                ppc64le    Fedora® 27 Server (ppc64le)
fedora-27                x86_64     Fedora® 27 Server
fedora-28                i686       Fedora® 28 Server (i686)
fedora-28                x86_64     Fedora® 28 Server
freebsd-11.1             x86_64     FreeBSD 11.1
scientificlinux-6        x86_64     Scientific Linux 6.5
ubuntu-10.04             x86_64     Ubuntu 10.04 (Lucid)
ubuntu-12.04             x86_64     Ubuntu 12.04 (Precise)
ubuntu-14.04             x86_64     Ubuntu 14.04 (Trusty)
ubuntu-16.04             x86_64     Ubuntu 16.04 (Xenial)
ubuntu-18.04             x86_64     Ubuntu 18.04 (bionic)
opensuse-13.1            x86_64     openSUSE 13.1
opensuse-13.2            x86_64     openSUSE 13.2
opensuse-42.1            x86_64     openSUSE Leap 42.1
opensuse-tumbleweed      x86_64     openSUSE Tumbleweed

5. Create Virtual Machine OS-es from scratch with virt-builder

Below we'll create two images one for Fedora 28 and 1 for Debian 9 using the virt-builder (a tool to build virtual images quickly), the images that could be used are shown through below virt-builder –list command.

# iso='fedora-28';
# iso1='debian-9';


# sudo virt-builder $iso \
     –size=10G \
     –format qcow2 -o /var/lib/libvirt/images/$iso-vm1.qcow2 \
     –hostname $iso-vm1 \
     –network \
     –timezone Europe/Sofia


[   3.3] Downloading:
[   5.2] Planning how to build this image
[   5.2] Uncompressing
[  20.8] Resizing (using virt-resize) to expand the disk to 10.0G
[  50.8] Opening the new disk
[  53.7] Setting a random seed
[  53.7] Setting the hostname: fedora-28-vm1
[  53.7] Setting the timezone: Europe/Sofia
[  53.7] Setting passwords
virt-builder: Setting random password of root to YMTkxaJIkEU24Ytf

[  54.7] Finishing off
                   Output file: /var/lib/libvirt/images/fedora-28-vm1.qcow2
                   Output size: 10.0G
                 Output format: qcow2
            Total usable space: 9.3G
                    Free space: 8.2G (87%)


# sudo virt-builder $iso1 \
     –size=10G \
     –format qcow2 -o /var/lib/libvirt/images/$iso-vm1.qcow2 \
     –hostname $iso1-vm1 \
     –network \
     –timezone Europe/Sofia


[   3.2] Downloading:
[   4.1] Planning how to build this image
[   4.1] Uncompressing
[  16.9] Resizing (using virt-resize) to expand the disk to 10.0G
[  40.1] Opening the new disk
[  42.9] Setting a random seed
virt-builder: warning: random seed could not be set for this type of guest
[  42.9] Setting the hostname: debian-9-vm1
[  43.6] Setting the timezone: Europe/Sofia
[  43.6] Setting passwords
virt-builder: Setting random password of root to JtzEYGff9KxL5jCR
[  44.3] Finishing off
                   Output file: /var/lib/libvirt/images/debian-9-vm1.qcow2
                   Output size: 10.0G
                 Output format: qcow2
            Total usable space: 9.8G
                    Free space: 9.0G (91%)

vim bridged.xml

  <forward mode="bridge"/>
  <bridge name="br0"/>


# sudo virsh net-define –file bridged.xml
# sudo virsh net-autostart br0
# sudo virsh net-start br0


Above two commands will download pre-packaged KVM isos and store them inside /var/lib/libvirt/images/ you see also the root (administrator) password for both ISOs printed out.


root@jeremiah:/home/hipo/kvm# ls -ld /var/lib/libvirt/images/*
-rw-r–r– 1 root         root         10739318784 Oct 12 23:45 /var/lib/libvirt/images/debian-9-vm1.qcow2
-rw-r–r– 1 root         root         10739318784 Oct 12 23:46 /var/lib/libvirt/images/fedora-28-vm1.qcow2


To access directly the new created VMs as we have specified the –vnc option it is possible to directly vnc to the new host with VNC client (in linux I use vncviewer), on Windows you can use something like TightVNC.

6. Use official Linux distributions ISO boot files to install into KVM VM

Those who would like to run inside KVM VM Linux could do it directly using installable ISO files and install the set of Linux with the required packages, just like installing a fresh new Linux on a bare-metal machine.
To do so download your ISO image from the net (either from official distro website or a mirror website, in case if you need to spin an older version) and use virt-install to run the installer inside KVM.


root@jeremiah:~# cd /var/lib/libvirt/boot/;
root@jeremiah:~# wget


# sudo virt-install \
–virt-type=kvm \
–name centos7 \
–ram 2048 \
–vcpus=2 \
–os-variant=centos7.0 \
–virt-type=kvm \
–hvm \
–cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1804.iso \
–network=bridge=br0,model=virtio \
–network=bridge=br1,model=virtio \
–graphics vnc \
–disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2

7. List newly created VMs with Virsh command


root@jeremiah:/home/hipo/kvm# virsh list –all
 Id    Name                           State
 3     fedora-28                      running
 –     debian9                        shut off


The –all parameter lists all available VMs ready to spin, if you want to check what are the VMs that are only running use instead:


root@jeremiah:/home/hipo/kvm# virsh list
 Id    Name                           State
 3     fedora-28                      running


8. Install Virtual Machine OS-es

Below lines will install 2 Virtual machines one Fedora 28 and Debian 9


virt-install –import –name $os \
    –ram 2048 \
    –vcpu 2 \
    –disk path=/var/lib/libvirt/images/$os-vm1.qcow2,format=qcow2 \
    –os-variant fedora-unknown \
    –network=bridge=br0,model=virtio \
    –noautoconsole \
  –hvm \
  –graphics vnc

virt-install –import –name $os     \
–ram 2048     \
–vcpu 2     \
–disk path=/var/lib/libvirt/images/$os-vm1.qcow2,format=qcow2     \
–os-variant debian9     –network=bridge=br0,model=virtio     \
–noautoconsole \
–hvm \
–graphics vnc

To deploy more just change the virtual machine type in os variable and modify the –os-variant variable to match the distribution name, to get the correct –os-variant variables that can be passed use osinfo-query below is output of the cmd:


root@jeremiah:/home/hipo/kvm# osinfo-query os
 Short ID             | Name                                               | Version  | ID                                      
 altlinux1.0          | Mandrake RE Spring 2001                            | 1.0      |        
 altlinux2.0          | ALT Linux 2.0                                      | 2.0      |        
 altlinux2.2          | ALT Linux 2.2                                      | 2.2      |        
 altlinux2.4          | ALT Linux 2.4                                      | 2.4      |        
 altlinux3.0          | ALT Linux 3.0                                      | 3.0      |        
 altlinux4.0          | ALT Linux 4.0                                      | 4.0      |        
 altlinux4.1          | ALT Linux 4.1                                      | 4.1      |        
 altlinux5.0          | ALT Linux 5.0                                      | 5.0      |        
 altlinux6.0          | ALT Linux 6.0                                      | 6.0      |        
 altlinux7.0          | ALT Linux 7.0                                      | 7.0      |        
 centos6.0            | CentOS 6.0                                         | 6.0      |            
 centos6.1            | CentOS 6.1                                         | 6.1      |            
 centos6.2            | CentOS 6.2                                         | 6.2      |            
 centos6.3            | CentOS 6.3                                         | 6.3      |            
 centos6.4            | CentOS 6.4                                         | 6.4      |            
 centos6.5            | CentOS 6.5                                         | 6.5      |            
 centos6.6            | CentOS 6.6                                         | 6.6      |            
 centos6.7            | CentOS 6.7                                         | 6.7      |            
 centos6.8            | CentOS 6.8                                         | 6.8      |            
 centos6.9            | CentOS 6.9                                         | 6.9      |            
 centos7.0            | CentOS 7.0                                         | 7.0      |            
 debian1.1            | Debian Buzz                                        | 1.1      |            
 debian1.2            | Debian Rex                                         | 1.2      |            
 debian1.3            | Debian Bo                                          | 1.3      |            
 debian2.0            | Debian Hamm                                        | 2.0      |            
 debian2.1            | Debian Slink                                       | 2.1      |            
 debian2.2            | Debian Potato                                      | 2.2      |            
 debian3              | Debian Woody                                       | 3        |              
 debian3.1            | Debian Sarge                                       | 3.1      |            
 debian4              | Debian Etch                                        | 4        |              
 debian5              | Debian Lenny                                       | 5        |              
 debian6              | Debian Squeeze                                     | 6        |              
 debian7              | Debian Wheezy                                      | 7        |              
 debian8              | Debian Jessie                                      | 8        |              
 debian9              | Debian Stretch                                     | 9        |              
 debiantesting        | Debian Testing                                     | testing  |        
 fedora-unknown       | Fedora                                             | unknown  |
 fedora1              | Fedora Core 1                                      | 1        |       
 fedora10             | Fedora 10                                          | 10       |      
 fedora11             | Fedora 11                                          | 11       |      
 fedora12             | Fedora 12                                          | 12       |      
 fedora13             | Fedora 13                                          | 13       |      
 fedora14             | Fedora 14                                          | 14       |      
 fedora15             | Fedora 15                                          | 15       |      
 fedora16             | Fedora 16                                          | 16       |      
 fedora17             | Fedora 17                                          | 17       |      
 fedora18             | Fedora 18                                          | 18       |      
 fedora19             | Fedora 19                                          | 19       |      
 fedora2              | Fedora Core 2                                      | 2        |       
 fedora20             | Fedora 20                                          | 20       |      
 fedora21             | Fedora 21                                          | 21       |      
 fedora22             | Fedora 22                                          | 22       |      
 fedora23             | Fedora 23                                          | 23       |      
 fedora24             | Fedora 24                                          | 24       |      
 fedora25             | Fedora 25                                          | 25       |      
 fedora26             | Fedora 26                                          | 26       |      
 fedora3              | Fedora Core 3                                      | 3        |       
 fedora4              | Fedora Core 4                                      | 4        |       
 fedora5              | Fedora Core 5                                      | 5        |       
 fedora6              | Fedora Core 6                                      | 6        |       
 fedora7              | Fedora 7                                           | 7        |       
 fedora8              | Fedora 8                                           | 8        |       
 fedora9              | Fedora 9                                           | 9        |       
 freebsd1.0           | FreeBSD 1.0                                        | 1.0      |          
 freebsd10.0          | FreeBSD 10.0                                       | 10.0     |         
 freebsd10.1          | FreeBSD 10.1                                       | 10.1     |         
 freebsd10.2          | FreeBSD 10.2                                       | 10.2     |         
 freebsd10.3          | FreeBSD 10.3                                       | 10.3     |         
 freebsd10.4          | FreeBSD 10.4                                       | 10.4     |         
 freebsd11.0          | FreeBSD 11.0                                       | 11.0     |         
 freebsd11.1          | FreeBSD 11.1                                       | 11.1     |         
 freebsd2.0           | FreeBSD 2.0                                        | 2.0      |          
 freebsd2.0.5         | FreeBSD 2.0.5                                      | 2.0.5    |        
 freebsd2.2.8         | FreeBSD 2.2.8                                      | 2.2.8    |        
 freebsd2.2.9         | FreeBSD 2.2.9                                      | 2.2.9    |        
 freebsd3.0           | FreeBSD 3.0                                        | 3.0      |          
 freebsd3.2           | FreeBSD 3.2                                        | 3.2      |          
 freebsd4.0           | FreeBSD 4.0                                        | 4.0      |          
 freebsd4.1           | FreeBSD 4.1                                        | 4.1      |          
 freebsd4.10          | FreeBSD 4.10                                       | 4.10     |         
 freebsd4.11          | FreeBSD 4.11                                       | 4.11     |         
 freebsd4.2           | FreeBSD 4.2                                        | 4.2      |          
 freebsd4.3           | FreeBSD 4.3                                        | 4.3      |          
 freebsd4.4           | FreeBSD 4.4                                        | 4.4      |          
 freebsd4.5           | FreeBSD 4.5                                        | 4.5      |          
 freebsd4.6           | FreeBSD 4.6                                        | 4.6      |          
 freebsd4.7           | FreeBSD 4.7                                        | 4.7      |          
 freebsd4.8           | FreeBSD 4.8                                        | 4.8      |          
 freebsd4.9           | FreeBSD 4.9                                        | 4.9      |          
 freebsd5.0           | FreeBSD 5.0                                        | 5.0      |          
 freebsd5.1           | FreeBSD 5.1                                        | 5.1      |          
 freebsd5.2           | FreeBSD 5.2                                        | 5.2      |          
 freebsd5.2.1         | FreeBSD 5.2.1                                      | 5.2.1    |        
 freebsd5.3           | FreeBSD 5.3                                        | 5.3      |          
 freebsd5.4           | FreeBSD 5.4                                        | 5.4      |          
 freebsd5.5           | FreeBSD 5.5                                        | 5.5      |          
 freebsd6.0           | FreeBSD 6.0                                        | 6.0      |          
 freebsd6.1           | FreeBSD 6.1                                        | 6.1      |          
 freebsd6.2           | FreeBSD 6.2                                        | 6.2      |          
 freebsd6.3           | FreeBSD 6.3                                        | 6.3      |          
 freebsd6.4           | FreeBSD 6.4                                        | 6.4      |          
 freebsd7.0           | FreeBSD 7.0                                        | 7.0      |          
 freebsd7.1           | FreeBSD 7.1                                        | 7.1      |          
 freebsd7.2           | FreeBSD 7.2                                        | 7.2      |          
 freebsd7.3           | FreeBSD 7.3                                        | 7.3      |          
 freebsd7.4           | FreeBSD 7.4                                        | 7.4      |          
 freebsd8.0           | FreeBSD 8.0                                        | 8.0      |          
 freebsd8.1           | FreeBSD 8.1                                        | 8.1      |          
 freebsd8.2           | FreeBSD 8.2                                        | 8.2      |          
 freebsd8.3           | FreeBSD 8.3                                        | 8.3      |          
 freebsd8.4           | FreeBSD 8.4                                        | 8.4      |          
 freebsd9.0           | FreeBSD 9.0                                        | 9.0      |          
 freebsd9.1           | FreeBSD 9.1                                        | 9.1      |          
 freebsd9.2           | FreeBSD 9.2                                        | 9.2      |          
 freebsd9.3           | FreeBSD 9.3                                        | 9.3      |          
 freedos1.2           | FreeDOS 1.2                                        | 1.2      |          
 gnome-continuous-3.10 | GNOME 3.10                                         | 3.10     |  
 gnome-continuous-3.12 | GNOME 3.12                                         | 3.12     |  
 gnome-continuous-3.14 | GNOME 3.14                                         | 3.14     |  
 gnome3.6             | GNOME 3.6                                          | 3.6      |              
 gnome3.8             | GNOME 3.8                                          | 3.8      |              
 macosx10.0           | MacOS X Cheetah                                    | 10.0     |            
 macosx10.1           | MacOS X Puma                                       | 10.1     |            
 macosx10.2           | MacOS X Jaguar                                     | 10.2     |            
 macosx10.3           | MacOS X Panther                                    | 10.3     |            
 macosx10.4           | MacOS X Tiger                                      | 10.4     |            
 macosx10.5           | MacOS X Leopard                                    | 10.5     |            
 macosx10.6           | MacOS X Snow Leopard                               | 10.6     |            
 macosx10.7           | MacOS X Lion                                       | 10.7     |            
 mageia1              | Mageia 1                                           | 1        |              
 mageia2              | Mageia 2                                           | 2        |              
 mageia3              | Mageia 3                                           | 3        |              
 mageia4              | Mageia 4                                           | 4        |              
 mageia5              | Mageia 5                                           | 5        |              
 mageia6              | Mageia 6                                           | 6        |              
 mandrake10.0         | Mandrake Linux 10.0                                | 10.0     |       
 mandrake10.1         | Mandrake Linux 10.1                                | 10.1     |       
 mandrake10.2         | Mandrake Linux 10.2                                | 10.2     |       
 mandrake5.1          | Mandrake Linux 5.1                                 | 5.1      |        
 mandrake5.2          | Mandrake Linux 5.2                                 | 5.2      |        
 mandrake5.3          | Mandrake Linux 5.3                                 | 5.3      |        
 mandrake6.0          | Mandrake Linux 6.0                                 | 6.0      |        
 mandrake6.1          | Mandrake Linux 6.1                                 | 6.1      |        
 mandrake7.0          | Mandrake Linux 7.0                                 | 7.0      |        
 mandrake7.1          | Mandrake Linux 7.1                                 | 7.1      |        
 mandrake7.2          | Mandrake Linux 7.2                                 | 7.2      |        
 mandrake8.0          | Mandrake Linux 8.0                                 | 8.0      |        
 mandrake8.1          | Mandrake Linux 8.1                                 | 8.1      |        
 mandrake8.2          | Mandrake Linux 8.2                                 | 8.2      |        
 mandrake9.0          | Mandrake Linux 9.0                                 | 9.0      |        
 mandrake9.1          | Mandrake Linux 9.1                                 | 9.1      |        
 mandrake9.2          | Mandrake Linux 9.2                                 | 9.2      |        
 mandriva2006.0       | Mandriva Linux 2006.0                              | 2006.0   |     
 mandriva2007         | Mandriva Linux 2007                                | 2007     |       
 mandriva2007.1       | Mandriva Linux 2007 Spring                         | 2007.1   |     
 mandriva2008.0       | Mandriva Linux 2008                                | 2008.0   |     
 mandriva2008.1       | Mandriva Linux 2008 Spring                         | 2008.1   |     
 mandriva2009.0       | Mandriva Linux 2009                                | 2009.0   |     
 mandriva2009.1       | Mandriva Linux 2009 Spring                         | 2009.1   |     
 mandriva2010.0       | Mandriva Linux 2010                                | 2010.0   |     
 mandriva2010.1       | Mandriva Linux 2010 Spring                         | 2010.1   |     
 mandriva2010.2       | Mandriva Linux 2010.2                              | 2010.2   |     
 mandriva2011         | Mandriva Linux 2011                                | 2011     |       
 mbs1.0               | Mandriva Business Server 1.0                       | 1.0      |             
 mes5                 | Mandriva Enterprise Server 5.0                     | 5.0      |             
 mes5.1               | Mandriva Enterprise Server 5.1                     | 5.1      |             
 msdos6.22            | Microsoft MS-DOS 6.22                              | 6.22     |         
 netbsd0.8            | NetBSD 0.8                                         | 0.8      |            
 netbsd0.9            | NetBSD 0.9                                         | 0.9      |            
 netbsd1.0            | NetBSD 1.0                                         | 1.0      |            
 netbsd1.1            | NetBSD 1.1                                         | 1.1      |            
 netbsd1.2            | NetBSD 1.2                                         | 1.2      |            
 netbsd1.3            | NetBSD 1.3                                         | 1.3      |            
 netbsd1.4            | NetBSD 1.4                                         | 1.4      |            
 netbsd1.5            | NetBSD 1.5                                         | 1.5      |            
 netbsd1.6            | NetBSD 1.6                                         | 1.6      |            
 netbsd2.0            | NetBSD 2.0                                         | 2.0      |            
 netbsd3.0            | NetBSD 3.0                                         | 3.0      |            
 netbsd4.0            | NetBSD 4.0                                         | 4.0      |            
 netbsd5.0            | NetBSD 5.0                                         | 5.0      |            
 netbsd5.1            | NetBSD 5.1                                         | 5.1      |            
 netbsd6.0            | NetBSD 6.0                                         | 6.0      |            
 netbsd6.1            | NetBSD 6.1                                         | 6.1      |            
 netbsd7.0            | NetBSD 7.0                                         | 7.0      |            
 netbsd7.1            | NetBSD 7.1                                         | 7.1      |            
 netbsd7.1.1          | NetBSD 7.1.1                                       | 7.1.1    |          
 netware4             | Novell Netware 4                                   | 4        |             
 netware5             | Novell Netware 5                                   | 5        |             
 netware6             | Novell Netware 6                                   | 6        |             
 openbsd4.2           | OpenBSD 4.2                                        | 4.2      |          
 openbsd4.3           | OpenBSD 4.3                                        | 4.3      |          
 openbsd4.4           | OpenBSD 4.4                                        | 4.4      |          
 openbsd4.5           | OpenBSD 4.5                                        | 4.5      |          
 openbsd4.8           | OpenBSD 4.8                                        | 4.8      |          
 openbsd4.9           | OpenBSD 4.9                                        | 4.9      |          
 openbsd5.0           | OpenBSD 5.0                                        | 5.0      |          
 openbsd5.1           | OpenBSD 5.1                                        | 5.1      |          
 openbsd5.2           | OpenBSD 5.2                                        | 5.2      |          
 openbsd5.3           | OpenBSD 5.3                                        | 5.3      |          
 openbsd5.4           | OpenBSD 5.4                                        | 5.4      |          
 openbsd5.5           | OpenBSD 5.5                                        | 5.5      |          
 openbsd5.6           | OpenBSD 5.6                                        | 5.6      |          
 openbsd5.7           | OpenBSD 5.7                                        | 5.7      |          
 openbsd5.8           | OpenBSD 5.8                                        | 5.8      |          
 openbsd5.9           | OpenBSD 5.9                                        | 5.9      |          
 openbsd6.0           | OpenBSD 6.0                                        | 6.0      |          
 openbsd6.1           | OpenBSD 6.1                                        | 6.1      |          
 openbsd6.2           | OpenBSD 6.2                                        | 6.2      |          
 opensolaris2009.06   | OpenSolaris 2009.06                                | 2009.06  |      
 opensuse-factory     | openSUSE                                           | factory  |    
 opensuse-unknown     | openSUSE                                           | unknown  |    
 opensuse10.2         | openSUSE 10.2                                      | 10.2     |       
 opensuse10.3         | openSUSE 10.3                                      | 10.3     |       
 opensuse11.0         | openSUSE 11.0                                      | 11.0     |       
 opensuse11.1         | openSUSE 11.1                                      | 11.1     |       
 opensuse11.2         | openSUSE 11.2                                      | 11.2     |       
 opensuse11.3         | openSUSE 11.3                                      | 11.3     |       
 opensuse11.4         | openSUSE 11.4                                      | 11.4     |       
 opensuse12.1         | openSUSE 12.1                                      | 12.1     |       
 opensuse12.2         | openSUSE 12.2                                      | 12.2     |       
 opensuse12.3         | openSUSE 12.3                                      | 12.3     |       
 opensuse13.1         | openSUSE 13.1                                      | 13.1     |       
 opensuse13.2         | openSUSE 13.2                                      | 13.2     |       
 opensuse42.1         | openSUSE Leap 42.1                                 | 42.1     |       
 opensuse42.2         | openSUSE Leap 42.2                                 | 42.2     |       
 opensuse42.3         | openSUSE Leap 42.3                                 | 42.3     |       
 opensusetumbleweed   | openSUSE Tumbleweed                                | tumbleweed |
 rhel-atomic-7.0      | Red Hat Enterprise Linux Atomic Host 7.0           | 7.0      |       
 rhel-atomic-7.1      | Red Hat Enterprise Linux Atomic Host 7.1           | 7.1      |       
 rhel-atomic-7.2      | Red Hat Enterprise Linux Atomic Host 7.2           | 7.2      |       
 rhel2.1              | Red Hat Enterprise Linux 2.1                       | 2.1      |              
 rhel2.1.1            | Red Hat Enterprise Linux 2.1 Update 1  
/etc/bind/masters/            | 2.1.1    |            
 rhel2.1.2            | Red Hat Enterprise Linux 2.1 Update 2              | 2.1.2    |            
 rhel2.1.3            | Red Hat Enterprise Linux 2.1 Update 3              | 2.1.3    |            
 rhel2.1.4            | Red Hat Enterprise Linux 2.1 Update 4              | 2.1.4    |            
 rhel2.1.5            | Red Hat Enterprise Linux 2.1 Update 5              | 2.1.5    |            
 rhel2.1.6            | Red Hat Enterprise Linux 2.1 Update 6              | 2.1.6    |            
 rhel2.1.7            | Red Hat Enterprise Linux 2.1 Update 7              | 2.1.7    |            
 rhel3                | Red Hat Enterprise Linux 3                         | 3        |                
 rhel3.1              | Red Hat Enterprise Linux 3 Update 1                | 3.1      |              
 rhel3.2              | Red Hat Enterprise Linux 3 Update 2                | 3.2      |              
 rhel3.3              | Red Hat Enterprise Linux 3 Update 3                | 3.3      |              
 rhel3.4              | Red Hat Enterprise Linux 3 Update 4                | 3.4      |              
 rhel3.5              | Red Hat Enterprise Linux 3 Update 5                | 3.5      |              
 rhel3.6              | Red Hat Enterprise Linux 3 Update 6                | 3.6      |              
 rhel3.7              | Red Hat Enterprise Linux 3 Update 7                | 3.7      |              
 rhel3.8              | Red Hat Enterprise Linux 3 Update 8                | 3.8      |              
 rhel3.9              | Red Hat Enterprise Linux 3 Update 9                | 3.9      |              
 rhel4.0              | Red Hat Enterprise Linux 4.0                       | 4.0      |              
 rhel4.1              | Red Hat Enterprise Linux 4.1                       | 4.1      |              
 rhel4.2              | Red Hat Enterprise Linux 4.2                       | 4.2      |              
 rhel4.3              | Red Hat Enterprise Linux 4.3                       | 4.3      |              
 rhel4.4              | Red Hat Enterprise Linux 4.4                       | 4.4      |              
 rhel4.5              | Red Hat Enterprise Linux 4.5                       | 4.5      |              
 rhel4.6              | Red Hat Enterprise Linux 4.6                       | 4.6      |              
 rhel4.7              | Red Hat Enterprise Linux 4.7                       | 4.7      |              
 rhel4.8              | Red Hat Enterprise Linux 4.8                       | 4.8      |              
 rhel4.9              | Red Hat Enterprise Linux 4.9                       | 4.9      |              
 rhel5.0              | Red Hat Enterprise Linux 5.0                       | 5.0      |              
 rhel5.1              | Red Hat Enterprise Linux 5.1                       | 5.1      |              
 rhel5.10             | Red Hat Enterprise Linux 5.10                      | 5.10     |             
 rhel5.11             | Red Hat Enterprise Linux 5.11                      | 5.11     |             
 rhel5.2              | Red Hat Enterprise Linux 5.2                       | 5.2      |              
 rhel5.3              | Red Hat Enterprise Linux 5.3                       | 5.3      |              
 rhel5.4              | Red Hat Enterprise Linux 5.4                       | 5.4      |              
 rhel5.5              | Red Hat Enterprise Linux 5.5                       | 5.5      |              
 rhel5.6              | Red Hat Enterprise Linux 5.6                       | 5.6      |              
 rhel5.7              | Red Hat Enterprise Linux 5.7                       | 5.7      |              
 rhel5.8              | Red Hat Enterprise Linux 5.8                       | 5.8      |              
 rhel5.9              | Red Hat Enterprise Linux 5.9                       | 5.9      |              
 rhel6.0              | Red Hat Enterprise Linux 6.0                       | 6.0      |              
 rhel6.1              | Red Hat Enterprise Linux 6.1                       | 6.1      |              
 rhel6.2              | Red Hat Enterprise Linux 6.2                       | 6.2      |              
 rhel6.3              | Red Hat Enterprise Linux 6.3                       | 6.3      |              
 rhel6.4              | Red Hat Enterprise Linux 6.4                       | 6.4      |              
 rhel6.5              | Red Hat Enterprise Linux 6.5                       | 6.5      |              
 rhel6.6              | Red Hat Enterprise Linux 6.6                       | 6.6      |              
 rhel6.7              | Red Hat Enterprise Linux 6.7                       | 6.7      |              
 rhel6.8              | Red Hat Enterprise Linux 6.8                       | 6.8      |              
 rhel6.9              | Red Hat Enterprise Linux 6.9                       | 6.9      |              
 rhel7.0              | Red Hat Enterprise Linux 7.0                       | 7.0      |              
 rhel7.1              | Red Hat Enterprise Linux 7.1                       | 7.1      |              
 rhel7.2              | Red Hat Enterprise Linux 7.2                       | 7.2      |              
 rhel7.3              | Red Hat Enterprise Linux 7.3                       | 7.3      |              
 rhel7.4              | Red Hat Enterprise Linux 7.4                       | 7.4      |              
 rhl1.0               | Red Hat Linux 1.0                                  | 1.0      |               
 rhl1.1               | Red Hat Linux 1.1                                  | 1.1      |               
 rhl2.0               | Red Hat Linux 2.0                                  | 2.0      |               
 rhl2.1               | Red Hat Linux 2.1                                  | 2.1      |               
 rhl3.0.3             | Red Hat Linux 3.0.3                                | 3.0.3    |             
 rhl4.0               | Red Hat Linux 4.0                                  | 4.0      |               
 rhl4.1               | Red Hat Linux 4.1                                  | 4.1      |               
 rhl4.2               | Red Hat Linux 4.2                                  | 4.2      |               
 rhl5.0               | Red Hat Linux 5.0                                  | 5.0      |               
 rhl5.1               | Red Hat Linux 5.1                                  | 5.1      |               
 rhl5.2               | Red Hat Linux 5.2                                  | 5.2      |               
 rhl6.0               | Red Hat Linux 6.0                                  | 6.0      |               
 rhl6.1               | Red Hat Linux 6.1                                  | 6.1      |               
 rhl6.2               | Red Hat Linux 6.2                                  | 6.2      |               
 rhl7                 | Red Hat Linux 7                                    | 7        |                 
 rhl7.1               | Red Hat Linux 7.1                                  | 7.1      |               
 rhl7.2               | Red Hat Linux 7.2                                  | 7.2      |               
 rhl7.3               | Red Hat Linux 7.3                                  | 7.3      |               
 rhl8.0               | Red Hat Linux 8.0                                  | 8.0      |               
 rhl9                 | Red Hat Linux 9                                    | 9        |                 
 sled10               | SUSE Linux Enterprise Desktop 10                   | 10       |                 
 sled10sp1            | SUSE Linux Enterprise Desktop 10 SP1               | 10.1     |               
 sled10sp2            | SUSE Linux Enterprise Desktop 10 SP2               | 10.2     |               
 sled10sp3            | SUSE Linux Enterprise Desktop 10 SP3               | 10.3     |               
 sled10sp4            | SUSE Linux Enterprise Desktop 10 SP4               | 10.4     |               
 sled11               | SUSE Linux Enterprise Desktop 11                   | 11       |                 
 sled11sp1            | SUSE Linux Enterprise Desktop 11 SP1               | 11.1     |               
 sled11sp2            | SUSE Linux Enterprise Desktop 11 SP2               | 11.2     |               
 sled11sp3            | SUSE Linux Enterprise Desktop 11 SP3               | 11.3     |               
 sled11sp4            | SUSE Linux Enterprise Desktop 11 SP4               | 11.4     |               
 sled12               | SUSE Linux Enterprise Desktop 12                   | 12       |                 
 sled12sp1            | SUSE Linux Enterprise Desktop 12 SP1               | 12.1     |               
 sled12sp2            | SUSE Linux Enterprise Desktop 12 SP2               | 12.2     |               
 sled9                | SUSE Linux Enterprise Desktop 9                    | 9        |                  
 sles10               | SUSE Linux Enterprise Server 10            
/etc/bind/masters/        | 10       |                 
 sles10sp1            | SUSE Linux Enterprise Server 10 SP1                | 10.1     |               
 sles10sp2            | SUSE Linux Enterprise Server 10 SP2                | 10.2     |               
 sles10sp3            | SUSE Linux Enterprise Server 10 SP3                | 10.3     |               
 sles10sp4            | SUSE Linux Enterprise Server 10 SP4                | 10.4     |               
 sles11               | SUSE Linux Enterprise Server 11                    | 11       |                 
 sles11sp1            | SUSE Linux Enterprise Server 11 SP1                | 11.1     |               
 sles11sp2            | SUSE Linux Enterprise Server 11 SP2                | 11.2     |               
 sles11sp3            | SUSE Linux Enterprise Server 11 SP3                | 11.3     |               
 sles11sp4            | SUSE Linux Enterprise Server 11 SP4                | 11.4     |               
 sles12               | SUSE Linux Enterprise Server 12                    | 12       |                 
 sles12sp1            | SUSE Linux Enterprise Server 12 SP1                | 12.1     |               
 sles12sp2            | SUSE Linux Enterprise Server 12 SP2                | 12.2     |               
 sles9                | SUSE Linux Enterprise Server 9                     | 9        |                  
 solaris10            | Solaris 10                                         | 10       |               
 solaris11            | Oracle Solaris 11                                  | 11       |            
 solaris9             | Solaris 9                                          | 9        |                
 ubuntu10.04          | Ubuntu 10.04 LTS                                   | 10.04    |          
 ubuntu10.10          | Ubuntu 10.10                                       | 10.10    |          
 ubuntu11.04          | Ubuntu 11.04                                       | 11.04    |          
 ubuntu11.10          | Ubuntu 11.10                                       | 11.10    |          
 ubuntu12.04          | Ubuntu 12.04 LTS                                   | 12.04    |          
 ubuntu12.10          | Ubuntu 12.10                                       | 12.10    |          
 ubuntu13.04          | Ubuntu 13.04                                       | 13.04    |          
 ubuntu13.10          | Ubuntu 13.10                                       | 13.10    |          
 ubuntu14.04          | Ubuntu 14.04 LTS                                   | 14.04    |          
 ubuntu14.10          | Ubuntu 14.10                                       | 14.10    |          
 ubuntu15.04          | Ubuntu 15.04                                       | 15.04    |          
 ubuntu15.10          | Ubuntu 15.10                                       | 15.10    |          
 ubuntu16.04          | Ubuntu 16.04                                       | 16.04    |          
 ubuntu16.10          | Ubuntu 16.10                                       | 16.10    |          
 ubuntu17.04          | Ubuntu 17.04                                       | 17.04    |          
 ubuntu17.10          | Ubuntu 17.10                                       | 17.10    |          
 ubuntu4.10           | Ubuntu 4.10                                        | 4.10     |           
 ubuntu5.04           | Ubuntu 5.04                                        | 5.04     |           
 ubuntu5.10           | Ubuntu 5.10                                        | 5.10     |           
 ubuntu6.06           | Ubuntu 6.06 LTS                                    | 6.06     |           
 ubuntu6.10           | Ubuntu 6.10                                        | 6.10     |           
 ubuntu7.04           | Ubuntu 7.04                                        | 7.04     |           
 ubuntu7.10           | Ubuntu 7.10                                        | 7.10     |           
 ubuntu8.04           | Ubuntu 8.04 LTS                                    | 8.04     |           
 ubuntu8.10           | Ubuntu 8.10                                        | 8.10     |           
 ubuntu9.04           | Ubuntu 9.04                                        | 9.04     |           
 ubuntu9.10           | Ubuntu 9.10                                        | 9.10     |           
 win1.0               | Microsoft Windows 1.0                              | 1.0      |            
 win10                | Microsoft Windows 10                               | 10.0     |             
 win2.0               | Microsoft Windows 2.0                              | 2.0      |            
 win2.1               | Microsoft Windows 2.1                              | 2.1      |            
 win2k                | Microsoft Windows 2000                             | 5.0      |             
 win2k12              | Microsoft Windows Server 2012                      | 6.3      |           
 win2k12r2            | Microsoft Windows Server 2012 R2                   | 6.3      |         
 win2k3               | Microsoft Windows Server 2003                      | 5.2      |            
 win2k3r2             | Microsoft Windows Server 2003 R2                   | 5.2      |          
 win2k8               | Microsoft Windows Server 2008                      | 6.0      |            
 win2k8r2             | Microsoft Windows Server 2008 R2                   | 6.1      |          
 win3.1               | Microsoft Windows 3.1                              | 3.1      |            
 win7                 | Microsoft Windows 7                                | 6.1      |              
 win8                 | Microsoft Windows 8                                | 6.2      |              
 win8.1               | Microsoft Windows 8.1                              | 6.3      |            
 win95                | Microsoft Windows 95                               | 4.0      |             
 win98                | Microsoft Windows 98                               | 4.1      |             
 winme                | Microsoft Windows Millennium Edition               | 4.9      |             
 winnt3.1             | Microsoft Windows NT Server 3.1                    | 3.1      |          
 winnt3.5             | Microsoft Windows NT Server 3.5                    | 3.5      |          
 winnt3.51            | Microsoft Windows NT Server 3.51                   | 3.51     |         
 winnt4.0             | Microsoft Windows NT Server 4.0                    | 4.0      |          
 winvista             | Microsoft Windows Vista                            | 6.0      |          
 winxp                | Microsoft Windows XP                               | 5.1      |  


9. Start / Stop listed KVM Virtual Machine


root@jeremiah:~# virsh list –all
 Id    Name                           State
 3     fedora-28                      running
 –     debian9                        shut off


To start debian9 linux virtual machine that is currently off


root@jeremiah:~# virsh start fedora-28
Domain fedora-28 started


root@jeremiah:/home/hipo# virsh start debian9
error: Failed to start domain debian9
error: Requested operation is not valid: network 'default' is not active

root@jeremiah:/home/hipo# virsh net-list –all
Name                 State      Autostart     Persistent
br0                  active     yes           yes
default              inactive   no            yes


root@jeremiah:/home/hipo# virsh net-start default
Network default started

root@jeremiah:/home/hipo# virsh start debian9
Domain debian9 started


10. Attach to running VM with virsh or virt-manager


root@jeremiah:~# virsh list
 Id    Name                           State
 1     fedora-28                      running
 3     debian9                        running

root@jeremiah:~# virsh connect debian9


Note that to make the login prompt appear you have to press enter once after the ^] connection string appears


An alternative way is to use virt-manager GUI KVM desktop management interface and click over the Virtual Machine Guest name, in same fashion like in VirtualBox.



If you have KVM running on your Linux desktop PC / notebook you can also connect via VNC with virsh command.


root@jericho:~# virsh vncdisplay centos7

Another handy thing is to expose the Virtualized Guest OS with VNC in order to be able to connect and manage installation or further Linux configuration via VNC using an SSH Tunnel with port forwarding:


$ ssh -L 5901:


11.  Start / Shutdown / Suspend / Reboot (safe reboot) a VM guest machine domain



root@jericho:~# virsh shutdown debian9
root@jericho:~# virsh start fedora-28
root@jericho:~# virsh suspend debian9
root@jericho:~# virsh reboot fedora-28


12. Remove / Delete KVM Virtual Machines domain


root@jeremiah:~# virsh undefine fedora-28
root@jeremiah:~# virsh destroy fedora-28

Closing words

Using KVM to experiment with different OS distributions is really fun just like you can easily run a number of the major most popular Linux Distributions and a set of different versions. It takes few minutes to have a fully functional Linux to play with and it saves a lot of hassles when dealing with GNU / Linux and FreeBSD, doing so in Virtualbox for me prooved to be much more complicated (not to mention that often Virtualbox had an ugly bugs so even Importing an Appliance as a Guest VM with an official distro OS-es failed with weird errors.
One other very practical use of Kerkel-based Virtualization is if you want to run your servers using own Micro-Services architecture (e.g. run multiple Linux OS-es each running a separate Apache / Nginx / MySQL / PostGreSQL / Backup / Storage) etc. all of it running on a single dedicated server or a self-hosted bare-metal
There are plenty of Web Interfaces for Management KVM (proprietary and free software) that could even futher simplify the use and deploy / destory of KVM VMs.
All that makes possible running your own Linux or Web hosting provider a relatively easy task and seriously could cut business expenses and operational (maintenance) costs.

If you plan to run youw own hosting company, I can help you establish your infrastructure and advise you on the right technologies to use.


Linux “bash: mail: command not found” error fix – Installing mail cli on Fedora, Debian, CentOS, Ubuntu

Friday, September 7th, 2018

Reading Time: 2 minutes


If you just hired a cheap VPS with some kind of Linux OS installed or just installed a home Linux test system environment inside a Virtual Machine (such as VirtualBox) on your notebook and you want to read system email reports delivered by services (e.g. track possible errors with the OS) or simply test whether Email relaying is configured properly

and you end up with shell error:

bash: mail: command not found

because mail command is missing and you wonder what Linux package you have to install in order to have the lovely mail / mailx command back on the OS … this article will help you how you can easily solve it by installing the mailx binary file (e.g. install the package providing it depending on the Linux Distribution Operating System you face the problem on.

1.  Install mailx command on Debian / Ubuntu / Mint and other .deb based Linux

root@linux:~# apt-get install –yes bsd-mailx


An alternative way to install the mailx system binary is to install  mailutils package

which will set up the system with essential mail related programs and set up a light Exim MTA and common server Email surrounding  so you can easily configure default installed Exim Mail Server to serve as an SMTP relay (through dpkg-reconfigure exim4-config) command


root@linux~:# apt-get install mailutils
Reading package lists… Done
Building dependency tree       
Reading state information… Done
The following additional packages will be installed:
  exim4-base exim4-config exim4-daemon-light guile-2.0-libs libgsasl7
  libkyotocabinet16v5 libmailutils5 libmariadbclient18 libntlm0
  mailutils-common mysql-common
Suggested packages:
  eximon4 exim4-doc-html | exim4-doc-info spf-tools-perl swaks mailutils-mh
The following NEW packages will be installed:
  exim4-base exim4-config exim4-daemon-light guile-2.0-libs libgsasl7
  libkyotocabinet16v5 libmailutils5 libmariadbclient18 libntlm0 mailutils


root@linux:~# dpkg-reconfigure exim4-config



2. Install mailx Linux command on Fedora / CentOS / RHEL e.g. Redhat based distros


On RPM based distrubutions the package name is different from debians to install it there you have to fetch and install current distro mailx .rpm

To install mail command on older CentOS / Redhat 7/6/5 distributions


[root@centos:~]# yum install -y mailx


On Fedora 22+ version yum auto-dependency tool was substituted with dnf:


[root@fedora:~]# dnf install -y mailx


3. Send Test Email with mail command


root@linux:~# echo "Sample Message Body" | mail -s "Whatever … Message Subject"


Check the mailbox, you just sent the sample email, hopefully if MTA is relaying correctly and the SMTP relay is properly delivering the email should be at the recipient address.

Installing the phpbb forum on Debian (Squeeze/Sid) Linux

Saturday, September 11th, 2010

Reading Time: 4 minutes


I've just installed the phpbb forum on a Debian Linux because we needed a goodquick to install communication media in order to improve our internal communication in a student project in Strategic HR we're developing right now in Arnhem Business School.

Here are the exact steps I followed to have a properly it properly instlled:

1. Install the phpbb3 debian package
This was pretty straight forward:

debian:~# apt-get install phpbb3

At this point of installation I've faced a dpkg-reconfigure phpbb deb package configuration issue:
I was prompted to pass in the credentials for my MySQL password right after I've selected the MySQL as my preferred database back engine.
I've feeded my MySQL root password as well as my preferred forum database name, however the database installation failed because, somehow the configuration procedure tried to connect to my MySQL database with the htcheck user.
I guess this has to be a bug in the package itself or something from my previous installation misconfigured the way the debian database backend configuration was operating.
My assumption is that my previously installed htcheck package or something beforehand I've done right after the htcheck and htcheck-php packages installation.

after the package configuration failed still the package had a status of properly installed when I reviewed it with dpkg
I've thought about trying to manually reconfigure it using the dpkg-reconfigure debian command and I gave it a try like that:

debian:~# dpkg-reconfigure phpbb3

This time along with the other fields I've to fill in the ncurses interface I was prompted for a username before the password prompted appeared.
Logically I tried to fill in the root as it's my global privileges MySQL allowed user.
However that didn't helped at all and again the configuration tried to send the credentials with user htcheck to my MySQL database server.
To deal with the situation I had to approach it in the good old manual way.

2. Manually prepare / create the required phpbb forum database

To completet that connected to the MySQL server with the mysql client and created the proper database like so:

debian:~# mysql -u root -p
CREATE database phpbb3forum;

3. Use phpmyadmin or the mysql client command line to create a new user for the phpbb forum

Here since adding up the user using the phpmyadmin was a way easier to do I decided to go that route, anyways using the mysql cli is also an option.

From phpmyadmin It's pretty easy to add a new user and grant privileges to a certain database, to do so navigate to the following database:

Privileges -> -> Add a new user ->

Now type your User name: , Host , Password , Re-type password , also for a Host: you have to choose Local from the drop down menu.

Leave the Database for user field empty as we have already previously created our desired database in step 2 of this article

Now press the "Go" button and the user will get created.

Further after choose the Privileges menu right on the bottom of the page once again, select through the checkbox the username you have just created let's say the previously created user is phpbb3

Go to Action (There is a picture with a man and a pencil on the right side of this button

Scroll down to the page part saying Database-specific privileges and in the field Add privileges on the following database: fill in your previosly created database name in our case it's phpbb3forum

and then press the "Go" button once again.
A page will appear where you will have to select the exact privileges you would like to grant on the specific selected database.
For some simplicity just check all the checkbox to grant as many privilegs to your database as you could.
Then again you will have to press the "Go" button and there you go you should have already configured an username and database ready to go with your new phpbb forum.

4. Create a virtualhost if you would like to have the forum as a subdomain or into a separate domain

If you decide to have the forum on a separate sub-domain or domain as I did you will have to add some kind of Virtualhost into either your Apache configuration /etc/apache2/apache2.conf or into where officially the virutualhosts are laid in Debian Linux in /etc/apache2/sites-available
I've personally created a new file like for instance /etc/apache2/sites-available/

Here is an example content of the new Virtualhost:

<VirtualHost *>

# Indexes + Directory Root.
DirectoryIndex index.php index.php5 index.htm index.html index.cgi index.phtml index.jsp index.asp

DocumentRoot /usr/share/phpbb3/www/

# Logfiles
ErrorLog /var/log/apache2/yourdomain/error.log
CustomLog /var/log/apache2/yourdomain/access.log combined
# CustomLog /dev/null combined
<Directory /usr/share/phpbb3/www/>
Options FollowSymLinks MultiViews -Includes ExecCGI
AllowOverride All
Order allow,deny
allow from all </Directory>

In above Virtualhost just change the values for ServerAdmin , ServerName , DocumentRoot , ErrorLog , CustomLog and Directory declaration to adjust it to your situation.

5. Restart the Apache webserver for the new Virtualhost to take affect

debian:~# /etc/init.d/apache2 restart

Now accessing your should display the installed phpbb3 forum
The default username and password for your forum you can use straight are:

username: admin
password: admin

So far so good you by now have the PHPBB3 forum properly installed and running, however if you try to Register a new user in the forum you will notice that it's impossible because of a terrible ugly message reading:

Sorry but this board is currently unavailable.

I've spend few minutes online to scrape through the forums before I can understand what I have to stop that annoying message from appearing and allow new users to register in the phpbb forum

The solution came natural and was a setting that had to be changed with the forum admin account, thus login as admin and look at the bottom of the page, below the text reading Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group you will notice a link with Administration Control Panel
just press there a whole bunch of menus will appear on the screen allowing you to do numerous things, however what you will have to do is go to
Board Settings -> Disable Board

and change the radio button there to say No

That's all now your forum will be ready to go and your users can freely register and if the server where the forum is installed has an already running mail server, they will receive an emails with a registration data concerning their new registrations in your new phpbb forum.
Cheers and Enjoy your new shiny phpbb Forum 🙂

Migrate Webserver and SQL data from old SATA Hard drive to SSD to boost websites performance / Installing new SSD KINGSTON 120GB hard disk on Linux

Monday, March 28th, 2016

Reading Time: 8 minutes

Blog and websites hosted on a server were giving bad performance lately and the old SATA Hard Disk on the Lenovo Edge server seemed to be overloaded from In/Out operations and thus slowing down the websites opeining time as well as SQL queries (especially the ones from Related Posts WordPress plugin was quite slow. Sometimes my blog site opening times were up to 8-10 seconds.

To deal with the issue I obviously needed a better speed of I/O of hard drive thus as I've never used SSD hard drives so far,  I decided to buy a new SSD (Solid State Drive) KINGSTON SV300S37A120G, 605ABBF2, max UDMA/133  hard disk.
Mounting the hard disk physically on the computer tower case wasn't a big deal as there are no rotating elements of the SSD it doesn't really matter how it is mounted main thing is that it is being hooked up somewhere to the case.

I was not sure whether the SSD HDD is supported by my Debian GNU / Linux so I had see whether Linux Operating System has properly detected your hard disk use dmesg

1. Check if SSD Hard drive is supported in Linux


linux:~# dmesg|grep -i kingston
[    1.182734] ata5.00: ATA-8: KINGSTON SV300S37A120G, 605ABBF2, max UDMA/133
[    1.203825] scsi 4:0:0:0: Direct-Access     ATA      KINGSTON SV300S3 605A PQ: 0 ANSI: 5


linux:~# dmesg|grep -i sdb
[    1.207819] sd 4:0:0:0: [sdb] 234441648 512-byte logical blocks: (120 GB/111 GiB)
[    1.207847] sd 4:0:0:0: [sdb] Write Protect is off
[    1.207848] sd 4:0:0:0: [sdb] Mode Sense: 00 3a 00 00
[    1.207860] sd 4:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.207928]  sdb: unknown partition table
[    1.208319] sd 4:0:0:0: [sdb] Attached SCSI disk


Well great news as you see from above output obviously the Kingston SSD HDD was detected by the kernel.
I've also inspected whether the proper dimensions of hard drive (all 120 Gigabytes are being detected by the OS):


linux:~# fdisk -l /dev/sdb
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Even better as the proper HDD sizing was detected by Linux kernel.
Next thing to do was of course to create ext4 filesystem on the SSD HDD.
I wanted to give 2 separate partitions for my Webserver Websites DocumentRoot directories which all lay under the standard Apache location inside /var/www as well as MySQL data folder which is also under the standard Debian based Linuces – /var/lib/mysql as the SQL data directory was just 3.3 GB size, I've decided to reserve 20GB gigabytes for the MySQL and another 100 GB for my PHP / CSS / JS / HTML and other data files /var/www.

2. Create SSD partitions with cfdisk

Hence I needed to create:

1. SSD partition of 100GB
2. SSD partition of 20GB

I have cfdisk installed and I believe, the easiest way to create the partitions is using interactive partitioner as CFDISK instead of fdisk: so in order to make the proper partitions I've ran


linux:~# cfdisk /dev/sdb

I' will skip explainig details on how to use CFDISK as it is pretty standard – display or manipulate disk partition table tool.
Just press on NEW button (moving with arrow keys buttons) and choose the 2 partitions size 100000 and 20000 MB (one thing to note here is that you have to choose between Primary and  Logical creation of partitions, as my SSD is a secondary drive and I already have a ) and then press the
WRITE button to save all the partition changes.

!!! Be very careful here as you might break up your other disks data make sure you're really modifying the SSD Hard Drive and not your other /dev/sda or other attached external Hard drive or ATA / SATA disk.
Press the WRITE button only once you're absolutely sure, you do it at your own (always create backup of your other data and don't blame me if something goes wrong) …

Once created the two partitions will look like in the screenshot below:


3. Create ext4 filesystem 100 and 20 GB partitions

Next thing to do before the two partitions are ready to mount under Webserver's files documentroot /var/www and /var/lib/mysql is to create ext4 filesystem, though some might prefer to stick to ext3 or reiserfs partition, I would recommend you use ext4 for the reason ext4 according to my quick research is said to perform much better with SSD Hard Drives.

The tool to create the ext4 filesystems is mkfs4.ext4 it is provided by debian package e2fsprogs I have it already installed on my server, if you don't have it just go on and install it with:

linux:~# apt-get install –yes e2fsprogs


To create the two ext4 partitions run:

linux:~# mkfs4.ext4 /dev/sdb5


linux:~# mfs4.ext4 /dev/sdb6

Here the EXT4 filesystem on partition that is supposed to be 100 Gigabytes will take 2, 3 minutes as the dimensions of partition are a bit bigger, so if you don't want to get boring go grab a coffee, once the partitions are ready you can evaluate whether everyhing is properly created with fdisk you should get output like the one below


linux:~# fdisk -l /dev/sdb
Disk /dev/sdb: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders, total 234441648 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63   234441647   117220792+   5  Extended
/dev/sdb5             126    39070079    19534977   83  Linux
/dev/sdb6        39070143   234441647    97685752+  83  Linux


4. Mount newly created SSD partitions under /var/www and /var/lib/mysql

Before I mounted /var/www and /var/lib/mysql in order to be able to mount under the already existing directories I had to:

1. Stop Apache and MySQL server
2. Move Mysql and Apache Documentroot and Data directories to -bak
3. Create new empty /var/www and /var/lib/mysql direcotries
4. Copy backpups ( /var/www-bak and /var/lib/mysql-bak ) to the newly mounted ext4 SSD partitions

To achieve that I had to issue following commands:

linux:~# /etc/init.d/apache2 stop
linux:~# /etc/init.d/mysql stop

linux:~# mv /var/www /var/www-bak
linux:~# mv /var/lib/mysql /var/lib/mysql-bak

linux:~# mkdir /var/www
linux:~# mkdir /var/lib/mysql
linux:~# chown -R mysql:mysql /var/lib/mysql

Then to manually mount the SSD partitions:

linux:~# mount  /dev/sdb5 /var/lib/mysql
linux:~# mount /dev/sdb6 /var/www

To check that the folders are mount into the SSD drive, ran mount cmd:


linux:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
/dev/sdc1 on /backups type ext4 (rw)
/dev/sdb5 on /var/lib/mysql type ext4 (rw,relatime,discard,data=ordered))
/dev/sdb6 on /var/www type ext4 (rw,relatime,discard,data=ordered))


That's great now the filesystem mounts fine, however as it an SSD drive and SSD drives are being famous for having a number of limited writes on disk before the drive lifetime is over it is a good idea to increase a bit the lifetime of the SSD by mounting the SSD partitions with noatime and errors=remount-ro (in order to not log file access times to filesystem table and to remount the FS read only in case of some physical errors of the drive).

5. Configure SSD partitions to boot every time Linux reboots

Now great, the filesystems gets mounted fine so next thing to do is to make it automatically mount every time the Linux OS boots up, this on GNU / Linux is done through /etc/fstab, for my 2 ext4 partitions this is the content to add at the end of /etc/fstab:


/dev/sdb5               /var/lib/mysql      ext4        noatime,errors=remount-ro       0       1
/dev/sdb6               /var/www        ext4    noatime,errors=remount-ro       0       1


quickest way to add it without a text editor is to echo to the end of file:

linux:~# cp -rpf /etc/fstab /etc/fstab.bak_25_03_2016
linux:~# echo ' /dev/sdb5               /var/lib/mysql      ext4        noatime,errors=remount-ro,discard       0       1' >> /etc/fstab
linux:~# echo ' /dev/sdb6               /var/www        ext4    noatime,errors=remount-ro,discard       0       1 ' >> /etc/fstab

Then mount again all the filesystems including the 2 new created SSD (100 and 20 GB) partitions:

linux:~# umount /var/www
linux:~# umount /var/lib/mysql
linux:~# mount -a

To assure properly mounted with noatime and remount-ro on errors options:

linux:~# mount | grep -i sdb
/dev/sdb5 on /var/lib/mysql type ext4 (rw,noatime,errors=remount-ro)
/dev/sdb6 on /var/www type ext4 (rw,noatime,errors=remount-ro)


It is also a good idea to check a statistics of disk free command:

linux:~# df -h|grep -i sdb
/dev/sdb5         19G  0G    19G  0% /var/lib/mysql
/dev/sdb6         92G   0G    92G  0% /var/www

6. Copy all Webserver and SQL data from backupped directories to new SSD mounted

Last but not least is to copy all original content files from /var/www-bak and /var/lib/mysql-bak to the new freshly  created SSD partitions, though copying the files can be made with normal linux copy command (cp),
I personally prefer rsync because rsync is much quicker and more efficient in copying large amount of files in my case this were 48 Gigabytes.

To copy files from with rsync:


linux:~# rsync -av –log-file /var/log/backup.log  /var/www-bak /var/www
linux:~# rsync -av –log-file /var/log/backup.log  /var/lib/mysql-bak /var/lib/mysql

Then ofcourse, finally to restore my websites normal operation I had to bring up the Apache Webservers and MySQL service


linux:~# /etc/init.d/apache2 start
linux:~# /etc/init.d/mysql start

7. Optimizing SSD performance with periodic trim (discard of unused blocks on a mounted filesystem)

As I digged deeper into how to even further optimize SSD drive performance I learned about the cleaning action TRIM of the partitions for a long term performance proper operation, to understand it better think about trimming like Windows degrament operatin.

fstrim – discard unused blocks on a mounted filesystem

fstrim [-o offset] [-l length] [-m minimum-free-extent] [-v] mountpoint

fstrim is used on a mounted filesystem to discard (or "trim") blocks which are not in use by the filesystem. This is useful for
solid-state drives (SSDs) and thinly-provisioned storage.

By default, fstrim will discard all unused blocks in the filesystem. Options may be used to modify this behavior based on range or
size, as explained below.

Trimming is really necessery, otherwise SSD become very slow after some time. All modern SSD's support TRIM, but older SSD's from before 2010 usually don't.
Thus for an older SSD you'll want to check this on the website of the manufacturer.

As I mentioned earlier TRIM is not supported by all SSD drives, to check whether TRIM is supported by SSD:

linux:~# hdparm -I /dev/sdb|grep -i -E 'trim|discard'
                  *          Data set Management TRIM supported (limit 1 block)

It's easiest to let the system perform an automatic TRIM. That can be done in several ways.

The quickest way for trimming is to place into /etc/rc.local trim  commands, in my case it was the following commands:


fstrim -v /var/lib/mysql
fstrim -v /var/www

To add it I've used my favourite vim text editor.
Adding commands to rc.local will make SSD trimming be executed at boot time so this will reduce a bit the downtime during the trim with some time so perhaps for those like me which are running a crually important websites a better

An alternative way is to schedule a daily cron job to do just place a new job in /etc/cron.daily/trim e.g.:

linux:~# vim /etc/cron.daily/trim


fstrim -v /var/lib/mysql
fstrim -v /var/www

linux:~# chmod +x /etc/cron.daily/trim

However the best way to enable automatic trimming to SSD  is to just add the discard parameter to /etc/fstab I've already done that earlier in this article.

Not really surprising the increase of websites opening (page load times) were decreased dramatically web page loading waiting time fall down 2 to 2.5 times, so the moral of story for me is always when possible from now on to use SSD in order to have superb websites opening times.

To sum it up what was achieved with moving my data into SSD Drive, before moving websites and SQL data to SSD drive the websites were opening for 6 to 10 seconds now sites open in 2 to 4.5 seconds which is below 5 seconds (the normal waiting time for a user to see your website).
By the way it should be not a news forfor people that are into Search Engine Optimization but might be for some of unexperienced new Admins and Webmasters that, all that all page opening times that  exceeds 5 secs is considered to be a slow website (and therefore perhaps not worthy to read).
The high load page times >5 secs makes the website also less interesting not only for end users but also for search engines (Google / Yahoo / Bing / Baidoo etc.) will is said to crawl it less if website is slow.
Search Engines are said to Index much better and crawl more frequently into more responsive websites.
Hence implementing SSD to a server and decreasing the page load time should bring up my visitors stats a bit too.

Well that's all for today, hope you enjoyed 🙂

Make Viber calls with no smartphone from Mobile to PC and from PC to Mobile – Bluestacks install android mobile apps on PC

Thursday, April 24th, 2014

Reading Time: 5 minutes


Since I've bought ZTE smat phone and I have Android on it, decided to install   Viber – iOS, Android and Desktop PC – Free Calls, Text and Picture sharing through the internet app. Viber is used by a lot of my people including many friends already so I installed it as well to be possible to speak for free with close friends …

Why Viber?

What makes this nifty app so great is its capability to make free calls over mobile phones through the Internet Viber.
Viber saves you a lot of money as calls are handled only through the Internet (you need Wifi on your mobile or Mobile 3G Internet access on phone) and you don't need to pay to your mobile operator 0.10 – 0.15 euro / cents per minute. Besides being Free another advantage of Viber is conversations sound quality which is much better than a regular phone call

Viber doesn't need a special registration, but as (login) identificator uses your mobile phone number – you just need to have a working Mobile operator phone num. Once registered under a number even if you change your mobile sim card to other operator (for example moving from country to country) still the Viber account will continue work. Another good reason to use Viber is it makes possible price free calls between different countries (for example if you travel a lot and you want to regularly speak with your wife) – in my case right now I'm in Bulgaria and my wife is in Belarus, so to save money and keep talking daily we use Viber daily.

What Devices and Operating System Viber Supports and what is Viber advantages / disadvantages ?

Another reason why Viber is so great is its multi-platform support it works on iPhone, Blackberry, Windows Phone, Nokia (Symbian), Windows, Mac OS and even (Korean own OS-ed) Bada devices. Some might argue that Viber is inferior to Skype and interms of Voice and Video quality its better because of its enhanced HD voice enhanced codecs, besides that Viber's video is still in Beta. However Viber has one big advantage it makes easy possible to reach people using just their Mobile Phone numbers where in Skype it takes time and effort to register in Skype install application on your Mobile keep yourself logged in in Skype and have all contacts previously added, all this happens automatically in Viber in time of installation of Viber App on your mobile.

Which Is Cheaper Viber or Skype?


Once installed Viber could integrate itself with rest of your Mobile OS Call Manager and in time of call a friend number you have the opportunity to make it free Viber call. Viber are also selling Viber Credits so if you want to use your Viber Voice Over IP you can call external mobile operator numbers on a very very cheap price. Viber Calls to landline or mobile phones could be up to 400% cheaper than Skype! Whether you own a Smartphone it will be nice to give Viber a try.

Viber – How to make Phone calls between Desktop PC and Smarphone Mobile


One not so standard Viber use is to make Viber calls with no smartphone (at hand) from PC to another Viber equipped Mobile and vice versa.
I needed to make Viber calls from my ZTE Android running mobile to my wife's MacBook Air PC because her mobile is an old Nokia running obscure Symbian version which is not supporting Viber + she doesn't have an Internet access tariff switched on her mobile.

Here is what I had to do to make Phone calls between my Mobile Viber App and my wife's MacbookAir Notebook PC:

  • Install BlueStacks Web App Player




    BlueStacks App Player is a software designed to enable Android applications to run on Windows PC, Apple Macintosh Computers and Windows tablets. BlueStacks is something like (VMware, Qemu) Virtual Machine which allows you to install and run any Android App on your Desktop PC.
    Its curious that app was created by Rosen Sharma in 2008 an ex CTO (Chief Technology Officer) of McAfee

  •  A mobile phone with a working SIM card (Nokia 6310 or any old mobile no need to be a smartphone
  • Desktop PC with Windows 7, 8 or PC with Mac OS

Install Bluestacks

BlueStacks is needed in order to emulate a smartphone on your PC, therefore once setupped Bluestacks. Launch it and  inside its necessary to login with your Gmail (Google Account) in order to allow access to Google Play Appstore on your PC.
viber with no mobile phone bluestacks

Installing and Verifying Viber

This is the most crucial and tricky part in order to make Viber working on any device you need to receive a special Viber verification code, you need to fill in this code to confirm Viber installation on PC. Here I assume you have BlueStacks running with Viber Application installed.


First will be prompted to Agree with Terms and Conditions and provide Mobile Phone number for verification. Tell the Viber app that you have a smartphone with Viber already when prompted. After receving Viber Verification Code you need to fill in this code into BlueStacks Window (inside Viber should be running), go further to next step and you should be done with Desktop PC Viber number registration.

N.B. ! One brackets to open here is you need to have a working Mobile Phone number where you will receive the verification code as SMS, otherwise you cannot get the verification. On your filled in mobile phone number you will get the verification code as SMS.

Making Viber Calls to (Windows Mac) PC without Smartphone

There is no more further need for BlueStacks so you can uninstall it, however I preferred to keep it as its useful to be able to install Android Applications straight on your Desktop PC. To start using Viber on Desktop, just launch Viber application (not through BlueStacks) but the direct install.

Use Viber dial pad to dial your desired remote Smartphone number with Viber equipped.
Enjoy the free Internet calls ! 🙂

Windows XP / 7, Minimize any program to system tray free software – RBTray, Trayconizer and Windows HideIT

Monday, January 5th, 2015

Reading Time: 4 minutes

As Linux admin, I'm already aware of AllTray *NIX application able to send any application to GNOME / KDE tray.
But what If you have a program on Windows XP / 7 / 8,  that doesn't have a minimize to tray functionality and you want to send it to tray?
I.e. what if you want to send programs like Notepad (that doesn't by default go to win systray) to Windows  tray in order to prevent them mess up with other Open Windows minimized windows?

After a quick research on the topic I found these 3 – RBtray, Trayconizer, HideIt, Below is a very quick review on each


1. Minimize any Windows program to tray with RBTray

If you want to stick to open source (GPL) software a tiny free software proggie that does the trick is RBTray current latest RBtray is 4.3 release is download mirror is here.

To use RBTray you don't need to do anything, once program is unarchived from archive, once launched there will be no system application that it is running, but you can go to any minimized program (not in tray) and by clicking with right mouse button on minimize button you will the app minimize to tray.

Here is how RBTray works (taken from archive README file):

Extract the 32-bit or 64-bit binaries (depending on your OS) to a
 folder, e.g.
C:Program FilesRBTray.  Double click RBTray.exe to start it.  If you want it
to automatically start after you reboot, create a shortcut to RBTray.exe in
your Start menu's Startup group.

Right click on any program's minimize button to minimize it to the tray.  To
restore, single-click the program's icon in the tray.

Right click on any tray icon created by RBTray and click Exit RBTray in the
popup menu.  Or run RBTray.exe with the –exit parameter.

2. Miminize any app to system tray with Trayconizer

Trayconizer is the other tray minizer tool you might want to check out, Windows tray minize application a download mirror of Trayconizer is here. As of time of writing this post (current) latest Trayconizer version is 1.1.1.

Trayconizer allows you to minimize virtually any application to the system tray rather than having it take up valuable space in your taskbar. The screen shot to the left shows Trayconizer minimizing Notepad to the system tray. Trayconizer is definitely the tool of choice of system administrators who need to keep minimized windows program to system tray each time on boot as it can be easily run from command line.

Using Trayconizer is simple. To start Trayconizer on Notepad, you would execute: C:PathToTrayconizer.exe C:WindowsNotepad.exe.

You can create a shortcut in your Startup group to execute Trayconizer on a program that you use frequently but want to keep tucked out of the way in the system tray when you're not using it. There is even an option for starting the application initially in the minimized state.

Trayconizer will automatically shut itself down when you close the program you are Trayconizing. Additionally, multiple Trayconized programs are handled by a single instance of Trayconizer to avoid wasting system resources.

Trayconizer requires no DLL's beyond the base Win32 API libraries and will not store any entries in your registry.

3. Minimize any program to Windows systray with Windows HideIT


Another good tool useful in hiding (minimizing) Windows programs which are lacking the minimize option embedded built-in is Windows HideIT.

Hideit official download website is here, note that with Hideit, Its pretty confusing to find where to download in (so to download look in the right upper corner for a download button) HideIT Download Mirror is here.

Hideit should be able to minimize any Application to sysytem tray, while Rbtray fails ith some. Both RBtray and Windows
HIdeIT will popup with a blue down-arrow on Tray icon once launched and you can show / hide minimized applications from there.

All RbTray, Trayconizer and HideIt tray minimizers should work on virtually all NT 4.0 Windows XP / 2000 / Vista / 7 / 8 though I haven't tested on all of 'em yet. If you happen to find it working on  Win NT 4.0 / 8 etc., please drop a comment.