[opensuse-factory] install support of Live media going away, Btrfs seed alternative
This is based on thread "install option on latest TW livecd" I think a neat idea to replace Live media installations with Yast, is Btrfs seed device based installation. This has been supported since the very early days. https://btrfs.wiki.kernel.org/index.php/Seed-device The gist is, the live system would be on a Btrfs volume with the seed flag set. A minimalist utility would (initially) support adding root and swap only to free space on the disk, and then add that new root partition (sprout) to the Btrfs volume, and then delete the seed device. Now entirely in kernel code, this causes the fs to be migrated to the sprout at an extent level. The sprout gets a new volume UUID. It's similar to LVM pvmove, but a lot faster. During the migration, the file system is usable, the user can make modifications that will be retained on persistent media, and this minimalist installer can do post-install changes like machine ID, bootloader configuration, enable software updating, and redirect the journal to persistent media, and so on. Strictly speaking a reboot isn't needed once the seed is deleted, just eject the media and keep working. In practice there may be good reasons to encourage a reboot sooner than later. +1 is on-the-fly media checking is used every time a block is read, via Brfs always on metadata and data checksum verification. This is unlike a conventional media check at boot time, which has a high time penalty at the start, can be bypassed by the user, and typically is only done once. +1 is losing the heavy weight dependency on Yast for partitioning and installation. Make it a simple point and shoot installation. Less features, yes. But also far lower surface area for user and software bugs. +0 but very cool and totally nutty, is there can be multiple seeds chained together. For example, seed 1 could be the official openSUSE Live KDE, and seed 2 could be the official openSUSE Live GNOME. Seed 2 contains only the changes (substractions and additions) from seed 1. So it's deduplicated. Seed assembly is also done in the kernel, e.g. using root=UUID= to point to the volume UUID of seed 2, the kernel finds in seed 2 the reference for seed 1. Just an idea. -- Chris Murphy -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org
participants (1)
-
Chris Murphy