Host your website at ALL-INKL.COM - Webhosting Server Hosting Domain Provider

Which section on do you like most?

View Results

Loading ... Loading ...

MySQL – ERROR 1064 (42000): You have an error in your SQL syntax;

Basic Information

MySQL is a database management system for a special kind of SQL databases. SQL databases basically contain a data model and then the data itself. The data model defines the structure for the stored data.

SQL is also the name for the programming language.

The SQL Syntax of the programming language is basically distinguished between the Data Definition Language (DDL) and the Data Manipulation Language (DML). SQL for MySQL is well documented in the internet:

MySQL is widespread and a base for many web pages and web systems in the internet. MySQL is open source although some module are closed source. In Linux MySQL can be easily installed and used. There is also an installer for Windows available.

The Problem

Before I upgraded from an older MySQL version to a newer one the following command could be executed successfully:

mysql> GRANT ALL PRIVILEGES ON testdb.* TO testuser@localhost IDENTIFIED BY 'secpasswd';

Executing the command after I upgraded MySQL gave me the following error message:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'secpasswd'' at line 1

The command should basically create a user “testuser” and give this user full access to the database “testdb”. It’s really frustrating because the command above worked for me long time without problems.

But after short trails I found the new way to create a user and to grant access to the database.

The Fix

The complete procedure is listed here:

CREATE database testdb;

The command above creates the databases with the name “testdb”.

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'secpasswd';

The second command above creates a user (“testuser”) and sets a password.

GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';

The last step gives the user “testuser” full access to the database “testdb”. The procedure works for me on MySQL version 8.0.31-0ubuntu0.20.04.2.


Often syntax and commands are changing after system upgrades. Software is often replaced by forks or software which fits better to the users needs. Professionals invest a lot of time to find out how the new versions or the new software works. But on the other side updated and new software comes with new features and bug fixes.

Feel free to comment my post.

Install WordPress and MySQL on Ubuntu

cup of coffee, notebooks, a pen and a table device

WordPress is a software which was initially designed for blogging (weblog) purposes. A blog software can be used to publish content chronologically to the internet. Over the time and with ongoing releases WordPress developed and nowadays it can be used as a basis for ordinary webpages. It can be used similar as Joomla! or Drupal or even Bootstrap (HTML and CSS).

If you want to run your own blog or a small webpage WordPress is first choice.

To customize the base system, a broad range of themes and plugins can be installed. Most of them are free and only advanced use costs money.

WordPress is popular because first successes can be achieved easily a no software development skills are required to set up a nice little web page.

The development of WordPress goes on and the current version is 6 and its sub versions. WordPress is based on PHP and runs on the Apache2 web server and on Linux. This tutorial shows the installation of WordPress on Ubuntu Linux.

1. Install Software

First of all we need to install software on our Ubuntu. Open a terminal and type the following lines to have a web server (Apache2), a database (MySQL) and PHP installed:

sudo apt-get --yes install mysql-server apache2 
sudo apt-get --yes install libapache2-mod-php php-mbstring 
sudo apt-get --yes php-xml php-intl php-mysql
sudo a2enmod php7.4

2. Create the MySQL Database

Now we need to run the MySQL Command Line Interface (CLI). Therefor we need to execute in a terminal:

sudo mysql -u root -p

We are in the MySQL CLI now. Type:

mysql> CREATE DATABASE wordpress;

As the next step, we need to create a user, grant the necessary permissions to the user and at the same time we are setting a password:

mysql> CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'secpasswd';
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress'@'localhost';

And then we quit the MySQL CLI:

mysql> quit

3. Download WordPress to the right Directory

Now we need to download and extract WordPress in a terminal/shell with these commands:

cd /var/www/html
sudo wget
sudo unzip

To not run into an error during the installation, the ownership for the WordPress directory has to be changed. On my Ubuntu system the “www-data” user and the “www-data” group need to have the ownership of the directory structure. Run the following command:

chown -R  www-data:www-data /var/www/html/wordpress

6. Install and Configure WordPress

Next, open an internet browser and connect to “http://localhost/wordpress”.

Select a language and click on “Let’s go!”. Now the fine tuning has to be done. Provide these settings:

Database: "wordpress" 

Username: "wordpress"

Password: "secpasswd"

Database Host: "localhost"

Click to “Submit” and on the next page “Run the installation”.

Provide now “Site Title”, the WordPress “Username”, a secure WordPress password, your email address and click to “Install WordPress”.


Congratulations! You successfully installed WordPress on your Ubuntu computer! Open a browser and connect to “http://localhost/wordpress/” and login. You can check out now the backend of WordPress and you have a basic site set up for future customization.

Continue with installing themes and plugins and the configuration of menus. It’s just easy to go on from this point.

If you are interested in other CMS, check out my Joomla!, CMSimple or Confluence tutorials!

Feel free to comment this post!

Install CMSimple on Ubuntu

a computer, a notebook, a pencil and a mobile phone

Basic Information

Many websites in the internet run on Content Management Systems (CMS) nowadays. A CMS provides a relatively easy way to publish web content to the internet. The good thing about a CMS is that no software development skills are necessary. Although there are often good templates and plugins provided the fine tuning to have a CMS with a fancy design still can be tricky.

CMS with high market shares are WordPress, Drupal and Joomla!. These names are around all the time when it is about CMS and web page development. These systems are put on web servers like the Apache web server and they use a database system like MySQL to store the content like blog posts and pages in it.

I am sure there are use cases for CMS where it can be an advantage to not store content in a database system. Webhosters for example limit the amount of available databases to their customers – means in short: more databases cost more money.

I want to introduce a CMS which doesn’t need a database to store its content. The name of the CMS is “CMSimple”. All the pages and the contents of CMSimple are stored in files. The next paragraphs show the procedure to have CMSimple up and running.

Here are the steps I took to install CMSimple on a Ubuntu PC for test purposes:

1. Download

Open a terminal and download the Zip File from the CMSimple download page:

sudo wget /tmp
sudo unzip /tmp/

2. Install the Apache2 Web Server

sudo apt-get --yes install apache2 apache2-data apache2-utils
sudo apt-get --yes install libapache2-mod-php

The command above installs the Apache web server on Ubuntu. The next command starts the web server:

sudo service apache2 start

3. Put the CMS on the Webserver

Now the downloaded and extracted files need to be put to the web server directory and permissions need to be modified:

sudo mkdir /var/www/html/cms
sudo cp -r /tmp/CMSimple_5-8/* /var/www/html/cms/
sudo rm -rf /var/www/html/cms/2*
sudo cp /var/www/html/cms/setup/setupControl.php /var/www/html/cms/
sudo chown -R www-data:www-data  /var/www/html/cms/*

4. Login and change the Password

The developers of CMSimple write on their page that there is a limit of 5 minutes for you to change the password. After that time you have to start all over again.

So open a browser and type the following URL to the address line of the browser:


Set a password with at lease 5 positions. I personally recommend to set a 16 positions complex password on production pages.

On the next screen type the same password in to the “Password:” input box. Leave the “User (optional):” input box blank.


Now the hard work just starts. Customize your page with text, images and all the stuff a fancy page requires. As mentioned above the content is just stored in the file system. This can be also an performance advantage and the loading time could be reduced compared to other extensive CMS.

If you are doing a technology evaluation currently, give CMSimple a chance. Small web projects could be done for sure with this CMS. New designs, so called templates, can be easily created for CMSimple.

If you are interested in a CMS with a database as a data storage, check out my WordPress, Joomla! or Confluence tutorial!

Have fun 😊

rm: cannot remove ‘file.txt’: Read-only file system on BTRFS

Basic Information

Recently we were experiencing an error on an OpenSuse Linux and BTRFS.

OpenSuse is a popular Linux and comes by default with the BTRFS (B-tree FS) file system. The BTRFS file system is a modern file system with many advantages compared to the old EXT4.

For clarification: A file system basically manages the way how your data is stored on a hard disk drive. A hard disk drive can be spitted into partitions and every partition gets its own file system. As I wrote in our case it is BTRFS.

The basic management like setting permissions and ownership of files and directories is similar on all the Linux file systems – also on BTRFS. Normally a user doesn’t have to care much about the file system type.

Our problem with BTRFS showed up as follows:

The Problem

Recently we started up an OpenSuse PC with a BTRFS file system and we wanted to erase the file “file.txt” with the “rm” command as you can see here:

rm file.txt
rm: cannot remove 'file.txt': Read-only file system

You are seeing in the second line the error message we got.

A further analysis showed up that the device /dev/sde1 was keeping the file which we wanted to erase.
As a symptom of the problem we were identifying that /dev/sde1 was mounted as “read-only” volume.

Because the partition is mounted as “read-only” we cannot erase, create or modify any file on /dev/sde1 – also not our “file.txt” !

Host your website in Germany at
ALL-INKL.COM - Webhosting Server Hosting Domain Provider

The Fix

1. Boot a Linux Live System

Since the device /dev/sde1 was occupied by the installed OpenSuse Linux and could not be unmounted I decide to boot my PC with a Ubuntu Live System. I choose “Try Ubuntu” and I got a fully working system with graphical user interface.

2. Open a Terminal and Check BTRFS

We assume that the file system is mounted “read-only” because of a file system defect. We have to execute the following command:

sudo btrfs check /dev/sde1

3. Reboot

Although now error was recognized by the check we rebooted the system. And: The device /dev/sde1 was now mounted as rw (read write). We could successfully erase, create and modify all the files on our BTRFS partition again.


The task was successfully closed. Keep in mind that there could be a serious hardware issue with the hard disk drive. It could be the case that the problem appears again. There are other Linux tools to check the integrity of the hard disk drive and maybe the very last solution for the problem could be a hard disk drive replacement.

Install and Test Confluence Wiki and MySQL on Ubuntu

women writes notes to a note book, coffee cup

Basic Information

Confluence is a Wiki system comparable with MediaWiki. In companies it is used for documentation purposes and as an information hub. It is basically a commercial software and Atlassian is the company behind it. It is possible to have a free installation with some limitations or to buy a license to have an instance with full features. Confluence is proprietary software written in Java.

The data store which holds basically the majority of the web content of Confluence is in our case MySQL. MySQL is available in the Ubuntu repositories.

Please notice that a productive installation needs to have a good planning. I provide here a good first impression on how to do a successful setup of a test instance of Confluence.

1. Install Software

On Ubuntu the prerequisite to have Confluence finally up an running is to have these packages installed by Terminal/Shell:

sudo apt-get --yes install mysql-server

2. Create a MySQL Database

After we have installed the MySQL Ubuntu package we need to create a database and an user and grant access to the user with the MySQL Command Line Interface (CLI). First log in with empty password:

sudo mysql -u root -p

Then create a database with the name “confluence”:

mysql> CREATE DATABASE confluence;

The next command creates a user called “confluence” with the password “secpasswd”. And the user gains access to the database:

mysql> GRANT ALL PRIVILEGES ON confluence.* TO confluence@localhost IDENTIFIED BY 'secpasswd';

Exit the MySQL CLI:

mysql> quit

After this stay in the Terminal/Shell and run this command:

sudo echo transaction-isolation=READ-COMMITTED >>/etc/mysql/mysql.conf.d/mysqld.cnf

This step is required. If not done the installation will fail later on.

3. Download Confluence

To download Confluence run in a Terminal/Shell:

wget -O /tmp/atlassian-confluence-7.20.1-x64.bin

Now is is necessary to set the right permissions to the downloaded file to make it executable:

chmod a+x /tmp/atlassian-confluence-7.20.1-x64.bin

4. Start the Installation

To start the installation procedure run in a Terminal/Shell:

sudo /tmp/atlassian-confluence-7.20.1-x64.bin

Fontconfig and Jave Runtime Environment (JRE) are configured. The next steps are summarized on a screenshot. The configurations are red marked:

We did an “Express Install” and Confluence is now accessible by an internet browser and the address “http://localhost:8090”. The installation continues now by browser.

I recommend for testing purposes to choose:

Trail Installation

A link is provided to to register for a trail license. This can be done easily with a Google Account. After setting the trail license choose:

Non-clustered (single node)

Next it’s about the database settings. Use “MySQL”, open a Terminal/Shell and do the following:

wget -O /tmp/
unzip /tmp/ -d /tmp
sudo cp /tmp/mysql-connector-java-5.1.49/mysql-connector-java-5.1.49-bin.jar /opt/atlassian/confluence/confluence/WEB-INF/lib
sudo service confluence restart

Refresh the browser and continue with “MySQL” and insert the following data into the appropriate fields:

Setup type: "simple"

Hostname: “localhost”

Port: "3306"

User: “confluence”

Database name: “confluence”

Password: “secpasswd”

Click on “Next”

On the “Load Content” Page, let’s set up an “Example Site”.

On the “Configure User Management” page I selected “Manage users and groups within Confluence. I set on the “Configure System Administrator Account” my username, email and password. Then I got “Setup Successful” and clicked to “Start”.


The setup can be very tricky but finally we got a good first impression and a solid test environment. Maybe several health check messages are popping up and some optimizations need to be done. Since Confluence is not completely free, MediaWiki or XWiki could be an alternative. As I wrote above a free license with several restrictions is offered by Atlassian.

Install Joomla! and MySQL on Ubuntu

mobile computer, a note book, someone is writing into the note book

This tutorial is about installing the Content Management System (CMS) Joomla! and the Database system MySQL on Ubuntu. Joomla! is one of the most popular CMS nowadays. It provides an easy way to set up web pages and to publish content in the internet. Joomla! is a typical CMS while other software like WordPress is more focused on providing blogs.

MySQL is the database system and keeps the information stored which is displayed by Joomla!. Another component which is used in out setup is the Apache2 web server. The web server handles the http requests from internet browsers and basically sends the Joomla! content to the visitors computer.

An other compounded which needs to be installed is PHP. Joomla is mainly written in PHP and therefor a bunch of Linux packages related to PHP need to be installed as well.

1. Install Software

As a first step we need to install some Ubuntu packages like MySQL, Apache2 and PHP . They are all in the standard repositories and the installation should not cause problems. Execute this commands in a Terminal or Shell:

sudo apt-get --yes install mysql-server apache2 
sudo apt-get --yes install libapache2-mod-php php-mbstring 
sudo apt-get --yes php-xml php-intl php-mysql
sudo a2enmod php7.4

2. Create the MySQL Database

Since MySQL is installed already we can just enter the MySQL Command Line Interface (CLI) with the following command:

sudo mysql -u root -p

Now we are in the MySQL CLI and we need to create the database for Joomla!

mysql> CREATE DATABASE joomla;

As the next step, we need to create a user, grant the necessary permissions to the user and at the same time we are setting a password:

mysql> GRANT ALL PRIVILEGES ON joomla.* TO joomla@localhost IDENTIFIED BY 'secpasswd';

…and quit then:

mysql> quit

3. Download Joomla! to the right Directory

Now we need to download and extract Joomla! in a terminal/shell with these commands:

sudo mkdir /var/www/html/joomla
cd /var/www/html/joomla
sudo wget
sudo unzip 

The “unzip” command extracts the compressed ZIP file. Notice that the version 4.2.4 is the newest as I am writing this blog post. In a few weeks a new version will be released.

5. Modifications in the File System

To not run into an error during the next steps, the ownership for the Joomla! directory has to be set. On my Ubuntu system the “www-data” user and the “www-data” group have to be the owner of the directory structure. Run the following command:

chown -R  www-data:www-data /var/www/html/joomla

6. Install and Configure Joomla!

Next, open an internet browser and connect to “http://localhost/joomla”. So far so good!.

The rest is a quite simple process:

Enter a site name and click on “Setup Login Data”. Then set a Super User name and a password. Provide an email address. Click on “Setup Database Connection”. On the page “Database Configuration” the data from the step above is needed:

Choose: “MySQLi”

User: “joomla”

Database: “joomla”

Password: “secpasswd”

The host should stay “localhost”.

Then click on “Install Joomla” and wait a few moments.

Then you see “Open Site” and “Open Administrator”.


The most critical step is probably the 5. step “Modifications in the File System”. It took me a few minutes to resolve some permission and server errors. If you follow my instructions it will work.

But now you can log in with the user “user” and the “secpasswd” which you set during the installation procedure.

Other web apps like WordPress and MediaWiki are installed in the same way. You find my MediaWiki blog post here.

Feel free to comment this blog post!

Install MediaWiki and MySQL on Ubuntu

screen displays a web page

Basic Information

The aim of this tutorial is to have MediaWiki running on a Ubuntu PC. MediaWiki is basically a web based system which provides information to visitors. This information can be modified by multiple users. In companies it is used to documentation and collaboration purposes. The famous website “Wikipedia” has as its base system a MediaWiki.

To have MediaWiki running and online other components are required as well. A web server and a database server are needed. The web server handles the http requests from the web browsers and the database contains basically the information which is stored by MedaiWiki.

MediaWiki is written in the programming language PHP. PHP components need to be installed as well.

I use “Apache2” as web server and I use “MySQL” as database server in this tutorial. Both is open source software and available in the Ubuntu repositories.

1. Install Software

As a first step it is necessary to open a terminal with a bash and install the Apache2 web server, PHP and the MySQL database server and client:

sudo apt-get --yes install mysql-server apache2 
sudo apt-get --yes install libapache2-mod-php php-mbstring 
sudo apt-get --yes php-xml php-intl php-mysql
sudo a2enmod php7.4

2. Create a MySQL Database

As I wrote before the database keeps basically the information of the MediaWiki installation.
Run these commands to enter MySQL and to create a database:

sudo mysql -u root -p

Enter the Mysql Root password – in my case the password is blank.

mysql> CREATE DATABASE wiki;

The command above creates the database.

mysql> GRANT ALL PRIVILEGES ON wiki.* TO wikiuser@localhost IDENTIFIED BY 'secpasswd';

The command above creates a user called “wikiuser” with the password “secpasswd”. Then do this:

mysql> quit

3. Download MediaWiki to the right Directory

Now we need to download the latest stable version of MediaWiki. At the date of writing this blog post the following commands did the job:

sudo cd /var/www/html/
sudo wget
sudo unzip 

The last command extracts the compressed zip file.

4. Install and Configure MediaWiki

Now we need to open the browser and connect to this address: “http://localhost/mediawiki-1.38.4/index.php” . Click on “set up the wiki”.

From now it is a quite intuitive process. Select the language for MediaWiki and continue.

On the page called “Connect to Database” we need to provide the setting which we set before in the step “2. Create a MySQL Database” of this tutorial.

Host: “localhost”

User: “wikiuser”

Database: “wiki”

Password: “secpasswd”

Click on “Continue”

On the page called “Name”, set the name of the Wiki installation, set a username and a password. Later you will need the username and the password to log into the MediaWiki.

In our test lab situation we can safely click on “I’m bored already, just install the wiki.”

4. Download the Configuration

Download now the “LocalSettings.php” and copy it to “/var/www/html/mediawiki-1.38.4”.

Click finally the “Enter the Wiki”.


The process is basically not very complicated. A lot of web applications have a similar setup procedure. I will post soon an instruction about installing WordPress. I did a Joomla” tutorial already – click here to see it. That’s basically very close to what I posted today.

Keep in mind that there could problems with the PHP version arise. Not every MediaWiki version is compatible with all the PHP version. See here the MediaWiki requirments:

Another issue could be that the MediaWiki is not accessible from other computers in the network. A host firewall could cause this problem.

ata3:00: status: DRDY ERR

harddisk apart

The Problem

During the years in my career I relatively often see a specific error message on Linux production servers. The error is associated with hard drive failures. I saw the problem on systems with conventional HDD drives as well on servers which are only using NVMe drives. RAID array disks are affected as well as single drive systems.

The information in the internet is relatively rare in relation to the appearance of the problem. Sometimes the error are appearing on std out, directly in the shell and sometimes they are only visible when “dmesg” is executed.

Here is the error which is meant:

ata3:00: status: { DRDY ERR }
ata3.00: error {UNC }
ata3:00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata3:00: BMDMA stat 0x25
ata3:00: failed command: READ DMA

For sure the details like the ATA number are different depending on the configuration of the system.

The Analysis

The error basically says that somethings wrong with a specific disk drive. We need to find out which physical disk is causing the error.

This command works for me on Ubuntu 20.04:

ls /dev/disk/by-path -al

It shows the ATAx to /dev/sdX association on my system. Since I know now the /dev/sdx device I need to get the serial number of the hard drive:

smartctl -a /dev/sdX

To know the serial number of the hard disk is important because the serial number is, at least on HDDs, printed on a sticker on the disk.

infolinks ad, man says, he earns 1000$ with

The Fix

I had luck at least in 40 percent of the cases in which this error appeared by just shutting down the computer, opening the casing, identifying the right physical disk and changing the connecting SATA cable.

One time the error appeared on multiple disks at the same time. The fix was to order an identical mainboard and physically installing it. I connected the disks again to the new mainboard and the error never appeared again.

Another method could be just to shut down the system and unplug and reconnect the SATA cables on the same socket (loose contact). This solved the problem one time for me.

In the case of NVMe drives it could help to shut down the computer and also unplug the NVMe and reconnect it to rule out a loose contact.

But sometimes there is just a hard disk drive defect and the hard disk needs to be replaced.

3ware 9500S-4LP – Raid 5 Degraded

screwdriver and micro chip

The Problem

I had a RAID 5 failure on an old Linux Server with special hardware connected. A RAID 5 as you probably know is a redundant disk array of hard disks. Disks are usually connected to a RAID Controller. The controller in my server is a 3ware 9500S-4LP. This controller is outdated but still available to buy at some web shops. Sometimes it is not possible to migrate outdated systems to new hardware like in this specific case.

On my server three disks were attached to the controller. I used the tw_cli which was available for downloading on the 3ware homepage in the past. Recently I found the binaries here:

I downloaded the tw_cli package, extracted it, executed it and then to get an overview I did:

//server> show 

Ctl	Model 		Ports	Drives	Units	NotOpt	RRate	VRate	BBU ------------------------------------------------------------------------ 
c8 	9500S-4LP 	4 	3 	1 	1 	4 	4 	-

I used the “show” command to get the basic controller information.

Then, the next command showed detailed information about the controller state.

//server> info c8 u0 
Unit 	UnitType Status 	%Cmpl 	Port 	Stripe 	Size(GB) Blocks 
u0 	RAID-5 	DEGRADED 	- 	- 	64K 	745.037 1562456064 
u0-0 	DISK 	DEGRADED 	- 	p3 	- 	372.519 781228032 
u0-1 	DISK 	OK 		- 	p2 	- 	372.519 781228032 
u0-2 	DISK 	OK 		- 	p0 	- 	372.519 781228032

I saw that it was degraded because of a failed disk.

The Fix

I had to stop all the processes which were executed on the RAID 5 volume. Then I had to umount the RAID 5 volume from the file system. The next step was to remove the degraded disk on the port 3 with this command:

//server>maint remove c8 p3

Then I shut the server down. I saw on the controller hardware on which SATA Port the p3 Disk was connected. I replaced the disk with a newer, bigger one. The cache of the new disk was bigger than on the old one. That is important!

//server>maint rescan c8

This was the next important step – “rescan” for the newly installed disk. And then to start recreation of the RAID I finally did:

//server>maint rebuild c8 u0 p3

After a few hours i got this:

//server> info c8 u0 
Unit 	UnitType 	Status 	%Cmpl 	Port 	Stripe 	Size(GB) Blocks ----------------------------------------------------------------------- 
u0 	RAID-5 		REBUILDING 42 	- 	64K 	745.037	1562456064 
u0-0 	DISK 		DEGRADED 	- p3 	- 	372.519	781228032 
u0-1 	DISK 		OK 		- p2 	- 	372.519	781228032
u0-2 	DISK 		OK 		- p0 	- 	372.519	781228032

The rebuild took only a few hours.

If the Rebuild doesn’t start and you get an error message, it could be a good alternative to start the rebuild inside the controller BIOS.

Finally the server was as good as it was before 🙂

Minix – First Steps

I want to introduce a UNIX teaching system to you called Minix which means Mini Unix. A quite interesting system, is licensed under a BSD license and comes with pkgin package manager.

During the last years no new versions were released – the current stable version is 3.3.0 since the year 2014.

I used Virtual Box for my tutorial. VirtualBox is a software to virtualize other systems in a kind of a container. The virtual “container” is then isolated from the rest of the host system. This means that you can run two or more operating systems on the same hardware. In our case we use the host system, which can be a Windows or a Linux and then we use Minix as a virtual guest.

Minix is a small system and the download has approximately 288 Megabytes. Very low RAM is used by Minix and a modern computer can easily run Minix as a VirtualBox guest.

1. Download Minix

First of all download Minix 3.3.0 from here:

Recognize that as http URL is used instead a https URL. Some modern browsers will give some kind of warning when downloading this file.

After the download completed, it is necessary to extract the compressed bz2 file. In Windows you can use “7 Zip” and under Ubuntu there is a binary called “bzip2” which can be used for extraction. Finally you will hat a ISO (DVD image) file.

2. Create a Virtual Box Guest

Create a new virtual machine with around 800 Megabytes of RAM (i.e. VirtualBox) and boot the VM with the ISO file. Minix will also run if you assign less RAM but the performance will be poor. You will find information about how to use VirtualBox easily in the internet. Also how to boot from the ISO file is well described in the internet.

3. Setup

After starting the virtual guest you should log in with root privileges (no password). After logging in run the command to start the installation:


During the setup select your preferred language, select automatic installation mode rather than expert mode and select the appropriate disk for the installation.
Around 8000 files will be installed.

4. Network Interface Card Selection

Important! Select the appropriate NIC – I selected number 9, the VirtualBox driver.

5.Network Settings

Next question was about using DHCP or manually config. I choosed DHCP in my testlab.

6. Eject the ISO file

Shutdown the VirtualBox guest (the Minix), eject the ISO file from the virtual guest and start the VM again. To eject the ISO is necessary so that when you boot the virtual guest next time the already installed Minix is started instead of the setup procedure again.

7. Start Minix

The Bootloader appears. Select number 1 and login as root with no password.

8.Verify the Network Configuration


does the same job as in Linux. In a modern Linux the command is mostly “ip a”. The equivalent in Windows would be “ipconfig”. If executed, it shows the IP address configuration of Minix.

9. Software installation

For software installation use for example:

pkgin update
pkgin search ssh
pkgin openssh-6.6.1


pkgin install bash

The commands above install the “Secure Shell” (SSH) which is a software for accessing remote system in a secure way. You will find tons of information in the internet about it. The “bash” is a command interpreter an is widely used in Linux. With the command above the “bash” is installed in Minix.

10. Add Repositories

But at this point we are very limited. There are too less packages available for installation. So we must add another repository. This is done in this file:

Uncomment this repository and change ftp:// to http:// :
and give a hash to the … repo.

11. Synchronize the Repositories


pkgin clean
pkgin update

12. Add Software

Now we have a huge package list available. We could now easily setup Samba, Apache, Postgres, Mysql or other more interesting stuff, servers and services. The mentioned software is popular Unix/Linux software and definitely worth to learn and know about.

13. Start a Service

Other good commands for testing purpose are:

sh /usr/pkg/etc/rc.d/sshd status
sh /usr/pkg/etc/rc.d/sshd start

This starts the previously installed Secure Shell Server or outputs the status of the server.


If you are interested to go beyond Linux this could be a nice way to do so. If you are Windows user, Minix could be an interesting stopover before exploring the exciting Linux world.

Keep in mind that originally the main purpose of Minix was to provide a UNIX teaching system. In my testlab the performance in the VirtualBox guest was not very impressive.

Host your website at ALL-INKL.COM - Webhosting Server Hosting Domain Provider

Women makes 500$ with

consulting picture

WordPress Cookie Notice by Real Cookie Banner