Opened 2 years ago

Last modified 6 months ago

#16217 new enhancement

Installer: Add Install Modes

Reported by: bitigchi Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Applications/Installer Version: R1/Development
Keywords: Cc:
Blocked By: #3822 Blocking: #16496, #17107
Platform: All


Some ideas about improving the installer experience

Installer should do a brief system scan upon launch to get information about the system, then a window with three main options should be presented:

  1. Wipe system and install (asks about drives if there are more than one present -- no additional prompt. If there are more than one drives/partitions but only one operating system, it should select the partition with an existing OS install)
  2. Upgrade existing install to $OS_VERSION (finds the Haiku partition and overwrites the system files - "Overwrite system files" if installed version is the same)
  3. Install alongside other OS (should fix efi/boot menu and grub booting if present)

Below these options, there should be a checkbox present to install updates automatically. I guess in this case it's going to halt the file copy for the upgradeable packages and download them instead. This option should be greyed out if there is no internet connection present.

After selecting one of these options, these should happen:

  1. A progress bar with no additional prompt, install should complete and return success.
  2. Same as 1
  3. This is rather complicated to design and implement, but for the moment current installer screen can be presented, but still should fix boot menu (EFI/BIOS integration) and/or GRUB booting automatically.

A basic mockup is attached both as image and LibreOffice Draw file, so that if you have any ideas or improvements, you can use this as template (and attack back).

Related tickets are added to "Blocked By:".

Attachments (2)

installer_bitigchi.odg (10.6 KB ) - added by bitigchi 2 years ago.
installer_mockup.png (600.1 KB ) - added by bitigchi 2 years ago.

Download all attachments as: .zip

Change History (16)

by bitigchi, 2 years ago

Attachment: installer_bitigchi.odg added


by bitigchi, 2 years ago

Attachment: installer_mockup.png added


comment:1 by nephele, 2 years ago

What's wrong with the current design?

Option 1 and 2 seems to be basically the same, but I see no reason to keep partitioning of other systems unless explicitly asked to keep a certain partition (OpenBSD will make many smaller partitions to avoid paths beeing written to fillign the entire disk and deadlocking the system; Windows uses a 100MB rescue parition before the main OS parititon; Linux generally uses SWAP partitions and a system partition with an additional data parittion, basically none of those cases match our partitioning)

still should fix boot menu (EFI/BIOS integration) and/or GRUB booting automatically.

EFI booting is not that complex to properly do (In the sense of making it properly interop with compliant implementations to facilitate multiboot), BIOS boot integration with different OSES is basically impossible to do reliably, and likewise for grub2/mbr (It gets updated as a whole package by linux distros on /every/ update, so unless you convince linux distros to generate entries for Haiku you are pretty much out of luck)

in reply to:  1 comment:2 by bitigchi, 2 years ago

Replying to nephele:

Option 1 and 2 seems to be basically the same

First option wipes everything clean (including other OSs and partition tables etc.), second option upgrades or overwrites existing Haiku install.

in reply to:  1 comment:3 by X512, 2 years ago

Replying to nephele:

BIOS boot integration with different OSES is basically impossible to do reliably

Running multiple OS can be easily done if PBR (partition boot record) and BootMan is used. Windows, Linux (need options when installing) and Haiku support this.

Version 0, edited 2 years ago by X512 (next)

comment:4 by nephele, 2 years ago

I am not saying it's impossible, I am saying it's not reliable, linux distros tend to overwrite the mbr at times, and so do rescue tools of other systems, it isn't a fire and forget like efi multiboot.

comment:6 by diver, 2 years ago

Blocking: 16496 added

comment:7 by pulkomandy, 2 years ago

I don't think we should use Installer to upgrade an existing system (option 2). Rather this should be done from the running system, either using SoftwareUpdater or some tool provided on the install DVD but run from the existing system. Maybe Installer can provide some info about how to do it.

In option 1 we can start with "wipe whole drive" option. Unfortunately with EFI we are not just going to create a single partition on the drive. LAter on we can see about smarter options: replacing just one partition, or even resizing the existing OS partition to make some space for ourselves.

Option 3 would indeed be very nice but possibly more complicated to get working. I would focus on 1 first.

comment:8 by pulkomandy, 2 years ago

Blocked By: 16092, 16133 removed

Removing some unrelated blocking tickets. There is already the "component" field if you want to find related tickets about Installer.

comment:9 by pulkomandy, 2 years ago

Blocked By: 15989 removed

comment:10 by bitigchi, 2 years ago

Option 2 can still be done by the package manager within the Installer. At least a user would expect an installer to perform such a task, like all the other operating systems.

comment:11 by pulkomandy, 2 years ago

No, it can't easily be done this way. The package manager is not designed to oerate on a system that's not being booted.

And, "all other operating systems" is not true either. This is typically not the case for Linux distros, and even for Windows the process does not go this way: you will usually download an updater that will guide you through the update (it may ask you to insert an USB disk, make that bootable, and then reboot on it to perform the update in some cases). No one ships CDs for updates anymore.

Here is for Windows:

Here is for Mac OS:

Here is for Ubuntu:

comment:12 by bitigchi, 2 years ago

What I mean is, in any case if you overwrite an install, it will fix it in other operating systems.

Updating from the internet is fine, but in that case there are two use cases not covered:

  • Fixing an unbootable system (in case there are no previous states to return to, correct me if there is a way to fix this)
  • No internet connection (a tool should be provided to upgrade offline)

comment:13 by pulkomandy, 2 years ago

I didn't say the upgrade has to be online necessarily. I just sait it has to be run from the running system (you insert the CD, and tell your computer to get the packages from there, without rebooting).

Fixing an unbootable system is a valid use case for the Installer, but it is not a normal update path. Because we don't know what needs to be fixed, it has to be more destructive: remove "suspicious" things in non-packaged (all drivers, all copies of system libs, probably other add-ons), reset most system settings to their default values, etc. That is different from a system update. And should rarely be needed because there are previous states to return to, making it a lower priority work.

comment:14 by pulkomandy, 6 months ago

Blocking: 17107 added
Note: See TracTickets for help on using tickets.