From Fedora Project Wiki
(Initial Change proposal)
 
(retargeting change to F42)
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= Modernize Live Media =
= Modernize Live Media =
{{Change_Proposal_Banner}}


== Summary ==
== Summary ==
Line 15: Line 13:


== Current status ==
== Current status ==
[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF42]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
Line 24: Line 22:
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]


* Targeted release: [[Releases/38 | Fedora Linux 38 ]]  
* Targeted release: [https://docs.fedoraproject.org/en-US/releases/f42/ Fedora Linux 42]  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
* Last updated: <!-- this is an automatic macro — you don't need to change this line -->  {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
Line 32: Line 30:
ON_QA -> change is fully code complete
ON_QA -> change is fully code complete
-->
-->
* FESCo issue: <will be assigned by the Wrangler>
* [https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/WSMTPFN5QFPXGAMOSNSUJ7MTKUF632WX/ devel thread]
* Tracker bug: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/2885 #2885]
* Release notes tracker: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=2139918 #2139918]
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/898 #898]


== Detailed Description ==
== Detailed Description ==
Line 52: Line 51:
* Proposal owners:
* Proposal owners:
** Modify [https://pagure.io/fedora-kickstarts fedora-kickstarts] to drop embedded livesys setup scripts and use {{package|livesys-scripts}}
** Modify [https://pagure.io/fedora-kickstarts fedora-kickstarts] to drop embedded livesys setup scripts and use {{package|livesys-scripts}}
** Add livesys and livesys-late services to presets in {{package|fedora-release}}
** Add <code>livesys.service</code> and <code>livesys-late.service</code> to the systemd presets in {{package|fedora-release}}
** [https://src.fedoraproject.org/rpms/dracut/pull-request/26 Backport <code>dmsquash-live-autooverlay</code> module] to {{package|dracut}}
** Modify [https://github.com/weldr/lorax/tree/master/share/templates.d/99-generic lorax-generic-templates] to offer menu entries for configuring the persistent overlay
** Modify [https://github.com/weldr/lorax/tree/master/share/templates.d/99-generic lorax-generic-templates] to offer menu entries for configuring the persistent overlay


Line 75: Line 75:


Testing persistence behavior is simple:
Testing persistence behavior is simple:
1. Boot normally
 
2. Create a file in the home directory
# Boot normally
3. Reboot into the environment
# Create a file in the home directory
4. See the file is there still
# Reboot into the environment
# See the file is there still


Testing the reset behavior would go similar to the regular test, except you should expect the file to not show up in step 4. Same for booting with no persistence.
Testing the reset behavior would go similar to the regular test, except you should expect the file to not show up in step 4. Same for booting with no persistence.

Latest revision as of 12:13, 22 August 2024

Modernize Live Media

Summary

Modernize the live media by switching to the "new" live environment setup scripts provided by livesys-scripts and leverage new functionality in dracut to enable support for automatically enabling persistent overlays when flashed to USB sticks.

Owner


Current status

Detailed Description

As part of preparing to change our tooling around producing images, we need to update the way we produce working live media. This has been done in two parts: the live environment setup scripts have been reworked to run properly through systemd and are packaged in livesys-scripts and new functionality in dracut has been added to enable support for automatically enabling persistent overlays when flashed to USB sticks so that livecd-iso-to-disk.sh can be retired.

Feedback

Benefit to Fedora

Since we introduced live media in Fedora Linux 7, the actual mechanism in which the live environment sets itself up has been complex and intricately tied to the method in which we produce the media (using Kickstarts). The nature of the implementation of those scripts means that they are hard to understand and debug, which has caused problems in the past whenever we've needed to update them.

As we look forward to new and better tooling for producing images (such as kiwi and osbuild), we cannot continue to rely on kickstart-driven image builds that construct shell scripts on the fly to embed in the image as we do now. With livesys-scripts, those scripts have been simplified and turned into systemd services that activate only in live environments.

This also gives us the opportunity to introduce new functionality for live media. New functionality was added to dracut and backported to Fedora so that we can retire the remaining usage of livecd-iso-to-disk.sh and provide a better experience with our live media, particularly for portable backup and rescue environments by introducing the ability to automatically setup persistence on boot when unpartitioned space is detected on a USB stick on boot.

Scope

  • Other developers:
    • Anaconda may need adaptations to correctly filter out more live environment specific boot arguments when configuring the installed environment.
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives: N/A

Upgrade/compatibility impact

There should be no impact here, as this affects only the live environment.

How To Test

Once the changes are merged, simply try to boot produced live media.

There should be new options for resetting the persistent overlay and booting with no persistence. The default options should boot with persistence and setup of persistence should work.

Testing persistence behavior is simple:

  1. Boot normally
  2. Create a file in the home directory
  3. Reboot into the environment
  4. See the file is there still

Testing the reset behavior would go similar to the regular test, except you should expect the file to not show up in step 4. Same for booting with no persistence.

Otherwise, the media should work like before, and things like live installation should work as expected.

User Experience

When booting live media, two new menu options will become available: one to reset the persistent overlay while booting, and one to boot without persistence. The default boot options will create a persistent overlay if it doesn't exist and can be written (e.g. when booting from a USB stick).

Dependencies

Contingency Plan

  • Contingency mechanism: Revert changes to fedora-kickstarts and lorax to go back to previous behavior
  • Contingency deadline: Final Freeze
  • Blocks release? Yes


Documentation

Information on the persistent overlay functionality is included in the Dracut documentation.

Release Notes

By default, Fedora Linux live environments flashed to writable USB media with sufficient free space will maintain user changes to the environment. This "persistence" can be reset at boot time through the boot menu.