I'm consulting for a cyber-security company.

The company's product is a hardware device installed with Ubuntu 14.04 which resides in remote customers sites.

There's a management API in these devices which allows connecting to them and running scripts.

There's a motivation to upgrade all the hardware devices (in customers remote sites) to Ubuntu 18.04 and this process should be fully unattended.

As far as I know, when upgrading a major version, grub files are edited and usually, it requires the user to choose which version of grub configuration file should be used.

The grub package is only an example and I'm sure there are many more such packages which require some human intervention.

Is there any known method to accomplish such a task?


Upgrading from 14.04 to 18.04 unattended on such environment is like trying to hit a fly with a trebuchet. Sure it's possible, but you can bet how big is the chance to succeed. I mean, of course you can force every change to go with defaults and with a little bit of luck maybe your system will be upgraded properly, but don't expect it will not be required to fix some stuff "by hand".

Anyway, if you want to make it, first you should have a clone of your environment in a separate network. For bare-metal (dedicated or in-house servers) dd or rsync might become handy. Also read about clonezilla live CD system, that has all you need for cloning stuff. For virtual machines or containers it's easy to make a clone or snapshot. It's also possible on LVM partitions.

Once you have a clone or mirror-like environment you can test the upgrade process and automate it for production. Keep in mind that you should not skip any LTS on the way. First upgrade from 14.04 to 16.04, then from 16.04 to 18.04.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.