Skip to content

Posts from the ‘Ubuntu’ Category


Plymouth in 16.04 doesn’t automatically switch to login terminal

In Ubuntu 16.04, there is a bug in plymouth that it doesn’t automatically switch back when the boot process is finished. In fact, the splash screen is terminated and stayed in graphical terminal (VT7). Hence the user is stuck with a fsck screen output without login prompt that the user has to manually enter CTRL + ALT + Fn keys to login.

See this bug entry.

It takes me a while to come up with a workaround solution. Simply add the following line at the end of /etc/rc.local.

(sleep 1; chvt 1) &

However, I have no idea why simple ‘chvt 1’ won’t do the job but it works.


ICMP Identifier field in UDP between Linux and OSX

Ping packet is traditionally created as a raw packet and formatted into ICMP ECHO REQUEST. The problem with creating a raw socket requires root privilege. It is alright if the program is running as part of the system service under root anyway. However, running as a non privilege user, the program requires extra care by configuring the setuid bit which poses security risks e.g. the program may have memory leak which can be hijacked with shellcode.
Read more »


Checklist to configure headless and offline Ubuntu 14 system


Grub Failsafe boot

Set the boot failsafe prompt to have some timeout instead of indefinite wait

echo 'GRUB_RECORDFAIL_TIMEOUT=5' >> /etc/default/grub

Grub RecordFail boot

In some cases, a power outage can cause the Ubuntu stuck in the GRUB menu indefinitely in the next boot which causes headless system to hang. Here is more info of the issue. To avoid that, add the following line to /etc/default/grub:


Then runs update-grub. Alternatively, runs this command and it will remove the issue in the next boot.

grub-editenv create

Fsck fix

Don’t ask when fs needs checking

echo 'FSCKFIX=yes' >> /etc/default/rcS


Automatic Check New Release



Apport – sending bug/crash reports



Postfix – Mail transfer agent

update-rc.d postfix disable

apt-check – periodic apt check


APT::Periodic::Update-Package-Lists "0";

More to come when I find out more ….


Installing new kernel within Linux kickstart

I have to build a Ubuntu installer ISO using the kickstart utility but I need the installer to install a particular version of kernel. Here is the link for a quick guide on setting up Ubuntu kickstart. First, I added the following line into %packages section in the installer build script to install the target kernel package, ks.cfg: Read more »


VMplayer: How to bridge to a specific network port

Suppose you need to bridge another network interface under your VM to a specific physical network port. First, you need to create a vmnet port and bind with that specific port. Here are the commands:

vmnet-bridge -n 2 -i eth1  -d /var/run/ -1vmnet2
mknod /dev/vmnet2 c 119 4
vmnet-netifup -d /var/run/ /dev/vmnet2 vmnet2
ifconfig vmnet2 up

Read more »


Plymouth: Create your own splash screen with scrolling boot messages

I have been trying to create a simple splash screen and configure it with scrolling boot messages. However, there are very little online documentation and reference, brief introductions can be found at Plymouth themes: Fix, install, create in Ubuntu 10.04 (Lucid Lynx) and Software/Plymouth/Scripts. In here, I am documenting how to create the splash screen with scrolling messages. Read more »


Ubuntu 10.04 LiveCD customisation gotchas

Here are the gotchas that I came across so far via building Ubuntu 10.04 LiveCD from scratch. Read more »


How to extract storage device information (Parte 2 – using lshw and xmlstarlet)

In Ubuntu 10.04, udevinfo is no longer available and I need to write a LiveCD tool to retrieve storage information (such as vendor, size, filesystem, label) from existing partitions (e.g /dev/sda1). So I cannot use the command lines anymore mentioned in my previous blog.

After a day of researching various tools and experiment parsing command line outputs. Eventually, I decide to use lshw to generate all the storage information and output into XML format. Then use xmlstarlet to extract specific device data. Read more »


Note on creating Ubuntu 10.04 (Lucid) LiveCD from scratch – missing initctl

It’s about time for me to update the LiveCD product, AppQoS Live! (based on Ubuntu 8.04 Hardy) and move on to Lucid 10.04 as more newer hardware having trouble to work with.

I was following the LiveCDCustomizationFromScratch documentation to experiment Ubuntu 10.04 LiveCD. Then I hit a problem when I booted off from the created LiveCD. The boot screen just hangs. Switching to one virtual console, the last few messages on the screen are:

Begin: Running /scripts/init-bottom/ ... 
init: ureadahead-other main process terminated with status 4
init: ureadahead-other main process terminated with status 4

Read more »


Awk scripts for reading and editing Ubuntu /etc/network/interfaces file (Part 2/2)

ubuntulogoFor modifying the /etc/network/interfaces file, I use another script and it is slightly more complicated.

[ Modified 28/Nov/14 ] – Created a new github repository for this script

[ Modified 22/May/14 ] – Added feature to remove an interface definition

Read more »