Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature request] Multidisk installations and management #237

Closed
Samsagax opened this issue Jun 18, 2021 · 5 comments
Closed

[Feature request] Multidisk installations and management #237

Samsagax opened this issue Jun 18, 2021 · 5 comments
Assignees

Comments

@Samsagax
Copy link
Member

This had been requested before and some users even hacked their installation to make it work. I think we can improve on that and gather experiences for making it work as a turnkey feature.
Currently the installer only allows to use a single disk with a predefined partition scheme that looks like this:

  • msdos partition table for BIOS systems, gpt partition table for UEFI systems
  • 512Mib fat32 partition for mounting /boot (set as esp 1 if in UEFI system)
  • The rest of the disk in a partition to mount /

The /etc/fstab describing the partition layout is shipped with the distribution image.

There is a need for support of multiple disks setups that enable to use available space in a larger game library (for ChimeraOS) or user data (for any other possible usage). Two different approaches can be used for this and can be implemented simultaneously:

The first approach is to treat additional disks as separated from the system and handling them in an application (as per effort made in #224). Setting them up after installation, parting and mounting them with the help of some systemd.mount units. The application (possibly steam-buddy/chimera) should be able to:

  • Show disks to the user and allow it to partition/format it for use as a library.
  • Set up the automounting of the drives at boot time.
  • Register the library inside Steam for games or use it's own record for non-Steam games.
  • Allow the user to select on which library the next games will be installed and move games between libraries (as BPM doesn't allow for library selection at the moment).

The second approach would be to bundle all disks into a raid (as described in #107) with the help of a cache disk (preferably the SSD in the machine). This will allow for a fast, near-SSD speed for all games in one massive library. This won't allow for adding more storage to the backing part of the cached devices, but won't negate the use of the approach above (for example for removable media). This process needs to be handled at install-time with this changes:

  • Allow the installer to detect if there are more than one disk and ask the user which usage it preffers (cached single library or multiple libraries).
  • Modify the partition scheme we currently use and overwrite the /etc/fstab in the image with the new layout:
  • Set the system to a fixed size that allows for updating and some minimal space (currently could be around 12Gigs on the safe side).
  • Partition the rest of the primary drive (an SSD presumably) as a bcache.
  • Add all disks the user selects as backing devices for the bcache.
  • Separate /home and mount the cached drives on it.

Both approaches have their merits and disadvantages, can be done simultaneously and won't interfere with each other. Both can be implemented as part of both steam-buddy (chimera) and frzr-bootstrap.

@psykoen
Copy link

psykoen commented Oct 5, 2021

dont how to +1 here so i would like this feauture to

@psykoen
Copy link

psykoen commented Oct 5, 2021

dont how to +1 here so i would like this feauture to

just found it

@Samsagax
Copy link
Member Author

This feature is now enabled on the Gamepadui, thanks to @pastaq.
Still needs some polish since the formatting is done via command line.

@pastaq
Copy link
Contributor

pastaq commented May 26, 2022

This feature is now enabled on the Gamepadui, thanks to @pastaq. Still needs some polish since the formatting is done via command line.

There is a PR pending for the chimera app to add this functionality via web. That's needs some polish as well.

@alkazar
Copy link
Member

alkazar commented Aug 10, 2022

I am closing this since there is an initial implementation now available. If there are further changes/improvements we want to make lets create new issues for those.

@alkazar alkazar closed this as completed Aug 10, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants