Ubuntu 16.04 Desktop ubiquity documentation is lacking

Bug #1654696 reported by Newton Liu
This bug affects 7 people
Affects Status Importance Assigned to Milestone
ubiquity (Ubuntu)

Bug Description

There is no good or up-to-date documentation regarding how to modify and debug the Ubuntu 16.04 Desktop preseed file. The wikis, such as wiki.ubuntu.com/Ubiquity and all the wikis that link to/from it, do not give much help.

For example, some questions I have are:
1. What are the mappings of d-i keys used in the Ubuntu Server to ubiquity keys in the Ubuntu Desktop?
2. If I have both a ubiquity/failure_command and ubiquity/success_command, and neither run, how do I debug this?
3. For OEM installs (oem-config/enable=true), how do I directly call oem-config-prepare so that I do not have to manually double click on the "Prepare for shipping to end user" icon? If your answer is "use the ubiquity/success_command", see question #2.
4. Is it possible to use d-i directly instead of ubiquity for Ubuntu Desktop installs?

Newton Liu (newtonl)
information type: Proprietary → Public
Revision history for this message
Newton Liu (newtonl) wrote :

Update regarding #2 and #3:
Apparently there can't be any extra whitespace between "string" and the first command. For example, this doesn't work:

  ubiquity ubiquity/success_command string \
      mkdir /target/foo

While this does work:

  ubiquity ubiquity/success_command \
      string mkdir /target/foo

New issue:
5. Please provide documentation for installing additional packages from the /cdrom/pool during install time. I don't want to have to unsquash the casper/filesystem.squashfs, chroot into it and add packages that way. I would like to be able to run "apt-get install <.deb file in pool>" in the ubiquity/success_command.

6. During oem-config, I see a "Error opening file..." error pop up after oem-config has finished asking questions, and starts installing. However, I can't tell what it failed to open from the oem-config.log (attached).

Revision history for this message
Newton Liu (newtonl) wrote :
Revision history for this message
Newton Liu (newtonl) wrote :

More detail about #5:
The existing documentation about adding extra packages to the live cd pool is pretty out of date:

What would be ideal is to be able to use reprepro to add/remove new packages the cdrom pool, or some more recent tool than apt-ftparchive/dpkg-scanpackages, and be able to apt-get install from it in the success_command.

Revision history for this message
Newton Liu (newtonl) wrote :

Another issue/comment (probably would be resolved by #1):

7. I am unable to disable the automatic upgrades during install time.

For instance, the kernel included with the 16.04.1 Desktop ISO is 4.4.0-31, while the latest in the Canonical repos (as of writing this comment) is 4.4.0-64. I've tried adding the following into my preseed file to try to prevent automatically upgrading the kernel during ubiquity install time:

 d-i netcfg/enable boolean false
 d-i pkgsel/update-policy select none
 d-i pkgsel/upgrade select none
 d-i base-installer/kernel/image string none
 d-i base-installer/install-recommends boolean false
 d-i mirror/http/proxy string
 d-i apt-setup/use_mirror boolean false
 d-i mirror/protocol string
 d-i ubiquity/download_updates boolean false
 ubiquity ubiquity/download_updates boolean false

If there is a network connection, then ubiquity will automatically go and update the kernel to the latest version. Worse yet, if there is a network connection, but to one that can't reach the Canonical repos, it will take an awful amount of time trying to download packages and timing out. This is the case in the factory, where systems will be connected only to a private network for PXE.

I want the initial state of a freshly installed system, whether it is installed with or without a network connection, to be deterministic.

(I realize the Automation Ubiquity wiki [https://wiki.ubuntu.com/UbiquityAutomation] says that pkgsel and netcfg doesn't work with ubiquity, but I was hopeful.)

Revision history for this message
Newton Liu (newtonl) wrote :

Another item:

8) A PXE install where the PXE server and client are on a private network with no external internet access will fail with a "The 'grub-efi-amd64-signed' package failed to install into /target/. Without GRUB boot loader, the installed system will not boot." error.

The PXE server initiates the install with the following grub boot menu entry:

title Software Install
        set gfxpayload=keep
        kernel (nd)/DevBoxSW/vmlinuz.efi nouveau.modeset=0 boot=casper ip=enp2s0f0 netboot=nfs username=root nfsroot= file=/cdrom/preseed/nvpxefactory.seed boot=casper debug-ubiquity automatic-ubiquity toram quiet splash --debug debug-oem-config --
        initrd (nd)/DevBoxSW/initrd.lz

Where "(nd)/DevBoxSW/" is where the PXE server's TFTP server keeps a copy of the vmlinuz and initrd of the ISO I'm trying to install, "" is the PXE server's NFS server, and "nvidia/content/DevBoxSW" is the directory it exports that contains the contents of the ISO file I want to install.

However, using the exact same ISO will work fine if I create a bootable USB stick with it, and directly install on the client system where its network cable is both plugged in and unplugged.

Revision history for this message
Thor K. H. (nitrolinken) wrote :

nvidia isn't the correct project for this.

affects: nvidia → ubiquity
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Colin Watson (cjwatson)
affects: ubiquity → ubiquity (Ubuntu)
Changed in ubiquity (Ubuntu):
status: New → Confirmed
Changed in ubiquity (Ubuntu):
status: New → Confirmed
Revision history for this message
inodez (matt-causey) wrote :

Is this issue still being tracked? I still have question #2 from the OP.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers