Can I do a Silent or Unattended Release Upgrade?
The following command upgrades to the new stable release without prompts:
do-release-upgrade -f DistUpgradeViewNonInteractive
The following command upgrades to the current development release without prompts:
do-release-upgrade -d -f DistUpgradeViewNonInteractive
I haven't tested it, but it seems it just performs the default action when a question arises. It also times out any scripts if they hang for too long.
You might have to do use dpkg-reconfigure
afterwards if you are unhappy with the configuration of certain packages, but most of the time you should be ok.
Source: http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrade-fully-automatic-non-interactive-upgrade/ . In the link there are also other ways to do this.
To confirm what Thomas Ward states in his answer and contradict the accepted answer, do-release-upgrade -d -f DistUpgradeViewNonInteractive
DOES NOT WORK.
In fact at the very first prompt it broke my 16.04 to 18.04 test partition broken and I had to reclone it. This is where the script freezes:
Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...
Configuration file '/etc/systemd/logind.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y
Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...
Due to Input Inhibitors neither reboot nor shutdown will work after killing the script. You have to do a cold shutdown (hold power button ~ 10 seconds).
Thank goodness this was a 16.04 clone upgrade and not on the real 16.04 partition.
To make life even more interesting a new 898 MB partition was added to my NVMe SSD and my regular partitions shifted:
$ lsdrv
NAME FSTYPE LABEL MOUNTPOINT SIZE MODEL
nvme0n1 477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs 858M
├─nvme0n1p3 16M
├─nvme0n1p1 ntfs 450M
├─nvme0n1p8 ntfs Shared_WSL+Linux /mnt/e 9G
├─nvme0n1p6 ext4 Ubuntu18.04 23.7G
├─nvme0n1p4 ntfs NVMe_Win10 /mnt/c 390.4G
├─nvme0n1p2 vfat /boot/efi 99M
├─nvme0n1p9 swap Linux Swap [SWAP] 7.9G
└─nvme0n1p7 ext4 NVMe_Ubuntu_16.0 / 44.6G
nvme0n1p5
used to be where my Ubuntu 16.04 partition resided but now it is onnvme0n1p7
nvme0n1p8
used to be where my 18.04 test partition resided but now it is onnvme0n1p8
NOTE: I also upgraded Windows 10 from Build 1709 to Build 1803 this afternoon so it is possible that it created the new 898 MB nvme0n1p5
partition in ntfs
format.
Just to expand on previous answers, here is how to remotely do the same as the accepted answer, using a passwordless upgrade over ssh that will get your box upgraded to the latest version. It is copied off my own blog entry.
All of these steps assume your package repository is working. Meaning if you execute apt-get update you are not presented with lots of 404s due to having an outdated version. You need to fix that first, so see this answer for that.
0. Update all existing packages
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
1. Set up passwordless execution
Add your self to the list of users that can execute do-release-upgrade using sudo without entering a password is achieved by executing
sudo visudo -f /etc/sudoers.d/do-release-upgrade.
and adding the following line, substituting my-username for your own of course:
my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade
2. Start incremental upgrades
Log out and execute the following command from your computer. It will do an upgrade without prompting you for input (accepting all default answers), wait for the computer to reboot, and then try upgrading again. It runs until you are upgraded to the latest version.
while true; do
ssh my-user@my-server sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
sleep 120;
done
3. Fix configuration files to their previous state
Afterwards you will have to move the backed up config files to their previous location as the upgrade process has put default configurations in their place.
Not satisfied with the default answers?
This guy has a way to pre-prepare answers for each prompt, but the downside is that you must know how many prompts there are …