Saturday 25 April 2020

Canonical have announced the release of Ubuntu 20.04 LTS - 20.04 (Focal Fossa)



Canonical have announced the latest release of Ubuntu 20.04 Long-Term Support (LTS) as Ubuntu 20.04 LTS (Focal Fossa).

I’ve respun the desktop ISO using my ‘isorespin.sh‘ script and created ISOs suitable for Intel Atom and Intel Apollo Lake devices:

Atom (-i ubuntu-20.04-desktop-amd64.iso --atom)
Apollo (-i ubuntu-20.04-desktop-amd64.iso --apollo)

I've also respun the desktop ISO with the '--server' option to create a pseudo server ISO suitable for Intel devices with a 32-bit bootloader:

Server (-i ubuntu-20.04-desktop-amd64.iso --server)



Also announced are the official 20.04 flavours of Ubuntu including Lubuntu which I've also respun to created an ISO suitable for Intel Atom devices:

Atom (-i lubuntu-20.04-desktop-amd64.iso --atom)


Downloading Note

After downloading an ISO file it is recommended to test that the file is correct and safe to use by verifying the integrity of the downloaded file. An error during the download could result in a corrupted file and trigger random issues during the usage of the ISO.

The program 'md5sum' is designed to verify data integrity using the MD5 (Message-Digest algorithm 5) 128-bit cryptographic hash. The MD5 calculation gives a checksum (called a hash value), which must equal the MD5 value of a correct ISO.

First open a terminal and go to the correct directory to check a downloaded ISO. Then run the command 'md5sum <ISO>' for example:
md5sum linuxium-atom-ubuntu-20.04-desktop-amd64.iso
'md5sum' should then print out a single line after calculating the hash:

e1a389390b80c468b00f68e999ed9fa0  ./linuxium-atom-ubuntu-20.04-desktop-amd64.iso

Compare the hash (the alphanumeric string on left) from your output with the corresponding hash below. If both hashes match exactly then the downloaded file is almost certainly intact. However if the hashes do not match then there was a problem with the download and you should download the file again.


ISO 'md5sum' hashes

e1a389390b80c468b00f68e999ed9fa0  ./linuxium-atom-ubuntu-20.04-desktop-amd64.iso
ea3e1596843c261a686091569de04895  ./linuxium-apollo-ubuntu-20.04-desktop-amd64.iso
4d871473bd0a19c21eb082dfb5617421  ./linuxium-ubuntu-20.04-server-amd64.iso
aec469c56b398e8238f4ddc9d2b825c4  ./linuxium-atom-lubuntu-20.04-desktop-amd64.iso


Please donate if you find these ISOs useful.

Tuesday 21 April 2020

linuxminipcs.com


A while back I created the website www.linuxminipcs.com which I hoped would become the 'go to' site for all matters Linix on mini PCs. Unfortunately it didn't go viral! Neither has it got much attention and the reality is that it meets the criteria of being a failed project: it has become a burden both financially and resourcefully as well as technically.

So it is time to close it down and in early May the site will quietly disappear.

Please donate if you find my remaining sites useful using the following link http://goo.gl/nXWSGf as everything helps with support costs.

Friday 17 April 2020

Using 'isorespin.sh' to create a server ISO from an Ubuntu desktop ISO


To simplify the creation of a server ISO by respinning an Ubuntu desktop ISO I've added a new option '--server'. This option is compatible with existing options so you can create a server ISO that works on both 32-bit and 64-bit bootloaders found on various low cost Intel Atom mini PCs or one that works on the more recent Apollo and Gemini Lake mini PCs.

Invocation is as simple as adding '--server' to your 'isorespin.sh' command. For example to create a 'vanilla' server ISO from an Ubuntu 18.04.4 desktop ISO enter:
isorespin.sh -i ubuntu/ubuntu-18.04.4-desktop-amd64.iso --server
Here is a (speeded up) video showing this example in action:



The '--server' option is only supported with Ubuntu 18.04 and 20.04 desktop ISOs at the moment. This is because whilst removing the 'ubuntu-desktop' task essentially creates the base for a server ISO, it still leaves a small number of residual packages that need purging. This new option removes the bulk of these and those that are left are really insignificant.

The option now creates 'ubuntu' as the default user without a password, similar to how the standard desktop ISO works. It also downloads the latest version of 'linservin.sh' to '/usr/local/bin' for convenience when installing.

The latest version of 'isorespin.sh' can be downloaded from here.

You can install the server ISO using the 'linservin.sh' which I've also updated. Now rather than having to enter 'c' to 'change to the detected value' you simply hit enter to accept the default or enter your own value if required:


The script also now creates a swap file which is adjusted in size to be appropriate for the device's disk and memory sizes.

An updated 'installation' video can be seen here:


which again is speeded up in parts to make it more watchable.

The latest version of 'linservin.sh' can be downloaded from here.

Please donate if you find the scripts useful using the following link http://goo.gl/nXWSGf as everything helps with development costs.












Tuesday 7 April 2020

Creating and Installing a Server Respun Ubuntu Desktop ISO


Whilst Canonical release 'server' images of Ubuntu getting them to boot or install on Intel mini PCs can be difficult especially if the mini PC is limited by the BIOS enforcing a 32-bit bootloader. As a result there have been many requests for 'isorespin.sh' to respin an Ubuntu server ISO. However the structure of a server ISO is different to a desktop ISO and as a result is incompatible with the script. So I've always suggested as a workaround to first respin and install the desktop ISO and then purge the desktop packages and install the required server packages.

But what if you try and respin a desktop ISO as a server ISO?

Well this is possible however you need to add the package 'casper' in order to boot it. You also need to create a user as part of respinning otherwise you won't be able to login.

The problem is that even after successfully booting a 'pseudo' server ISO installing it is rather tedious.

Therefore I'm developing a text based script to simplify the installation and I've documented the current status below.

First you need to respin the Ubuntu desktop ISO using 'isorespin.sh' with the following options:

isorespin.sh \
-i ubuntu-18.04.4-desktop-amd64.iso \
--atom \
-e ubuntu-desktop \
-p "ubuntu-server casper gdisk network-manager linux-generic-hwe-18.04" \
-f linservin.sh \
-c "useradd -c ubuntu -d /home/ubuntu -m -g users -s /bin/bash ubuntu" \
-c "sed -i '/^root/ a ubuntu ALL=(ALL:ALL) ALL' /etc/sudoers" \
-c "passwd -de ubuntu"

To explain further the options included are:
'-i ubuntu-18.04.4-desktop-amd64.iso' is the desktop ISO I've currently been testing with.
'--atom' for an Intel Atom based device. Alternatively use '--apollo' for those relevant devices that don't boot the standard desktop ISO or '-b rEFInd' to include the 'rEFInd' boot manager.
'-e ubuntu-desktop' to purge (remove) the packages tagged with task 'ubuntu-desktop' which will remove the graphical interface.
'-p ubuntu-server' to install all the packages included in the metapackage 'ubuntu-server'.
'-p casper' to provice the scripts required to boot the ISO.
'-p gdisk' is required by my installation script in order to format the storage.
'-p network-manager' again required by the installation script in order to have internet access.
'-p linux-generic-hwe-18.04' as it was removed during the desktop purge.
(Note: these packages have been combined into one '-p' option)
'-f linservin.sh' includes my installation script (see below).
-c "useradd ..." this command creates the user 'ubuntu' for the respun ISO. Any user can be created.
-c "sed ..." allows the 'ubuntu' user 'sudo' access.
-c "passwd ..." allows a password of choice to be created on initial boot.

A further '--debug' option can be added so that the resultant logfile shows details of all the package dependencies used in the purge and install commands. Full documentation on the options can be found here.

My 'Linuxium server install' script 'linservin.sh' can be downloaded by clicking on this link.

Using the above options creates the 'pseudo' server ISO. I've uploaded a respun ISO here which you can use for testing and I've renamed it as 'linuxium-atom-ubuntu-18.04.4-server-amd64.iso' just to avoid confusion.

Next create a 'LiveUSB' by writing the ISO to a USB using 'dd':
dd if=linuxium-atom-ubuntu-18.04.4-server-amd64.iso of=/dev/sdX bs=4M
where 'X' is the drive letter for the USB.


Then boot from the 'LiveUSB' using 'Try Ubuntu without installing' and you'll have a 'live' server ISO which you can use similar to any live ISO. Also don't try clicking the 'Install Ubuntu' option as this will fail as the required packages have already been removed by the purge command.

Prior to attempting an installation you must have a working internet connection as packages are required to be downloaded. It is not important whether it is by ethernet or wifi and the 'nmcli' command can be used to configure a connection.

Finally to install the server ISO simply run 'linservin.sh' which is included on the ISO in 'usr/local/bin':


The script can also be run with options:
linuxium@LINUXIUM:~$ linservin.sh -h
Usage: /usr/local/bin/linservin.sh [ OPTIONS ]
where OPTIONS include '-h' for 'help'
'-v' for 'version'
'-c' for 'check' (version)
'-y' run automatically with best guessed values (dangerous)
linuxium@LINUXIUM:~$
which are self explanatory.

The script then shows the variables it will use for the installation together with values it determines may be the most appropriate and then allows you to select what you want:


It will then ask for confirmation to start the installation (bearing in mind this will completely overwrite the existing hard drive of the device) and it requires a (case sensitive) 'Y' to continue.

The following video shows the installation on an Intel Compute Stick (STCK1A32WFC):



Importantly the installer will detect whether the bootloader is 32-bit for 64-bit and install GRUB accordingly.

The installation progress is recorded in a logfile 'linservin.log' which is also copied to the installed filesystem and is available under '/var/log/installer'.

If the 'server' ISO proves popular I'm considering adding a '--server' option to 'isorespin.sh' to facilitate the respinning of server ISOs. Otherwise feedback is appreciated to improve the current 'linservin.sh' script.

Please donate if you find the script useful using the following link http://goo.gl/nXWSGf as everything helps with development costs.