[yast-devel] Storage::Proposal and boot requirements
![](https://seccdn.libravatar.org/avatar/feeb205686bc49a16cc68ed0b496ed9a.jpg?s=120&d=mm&r=g)
As part of https://trello.com/c/OgN6SVc4/ we need to discuss a couple of things in the general approach of the new proposal. Just sending this mail to set the background to the discussion. I think it fits into this ML better than into the opensuse-storage one. The old proposal ================ By default it provides a layout based on the settings from control.xml and "Edit Proposal Settings" The "Choose Hard Disk" button can also be used in addition to "Edit Proposal Settings" to manually select the disk (only one) and the areas of that disk to use. Our current approach ==================== DiskAnalyzer decides which is the list of candidate disks (just making sure they are not removable, they are not the installation media and so on). VolumesGenerator decides all the volumes that are needed (including boot-related, root, home, etc.) SpaceMaker tries to make space in all the candidate disks. PartitionCreator decides where to place every partition based on the resulting free spaces. Problems ======== The needed volumes for booting can vary based on where "/" is finally going to be located. We have examples about it already and we can easily think about more interdependencies. The pieces for the "Choose Hard Disk" option are there, but I'm not 100% sure what's the plan about it. Questions in my head ==================== Who should have the responsibility of deciding... - ...what disks/areas can be used? (now it's DiskAnalyzer) - ...where to place "/"? (now it's PartitionCreator) - ...where to place "/boot"? (now it's PartitionCreator) How to make sure that all the components know about those decisions in time to make their job? One alternative =============== To me, knowing the devices that is going to hold "/" looks like a prerequisite to make a proposal. Thus, adding it as an input parameter could make sense. So, in a schematic way we can say that instead of the current Proposal.new(settings: the_settings) we would have Proposal.new(settings: the_settings, root_device: "/dev/sda") or Proposal.new(settings: the_settings, root_device: "/dev/sda", # Restrict the set returned by DiskAnalyzer areas: ["/dev/sda", "/dev/sdb2"]) Of course, these two parameter could we merged into Proposal::Settings if we decide it makes sense, just keeping in mind that root_device would be mandatory (and with no generic reasonable default). Another alternative =================== Discussing this with Steffen, he suggested the possibility of doing a two steps approach, so instead of expecting the "user" to give us the root device as parameter, we 1. find a 'system disk' (the one holding "/" and boot volumes) 2. find space for the rest (if anything) Let's discuss it today in the mailing list or in a call. Cheers. -- Ancor González Sosa YaST Team at SUSE Linux GmbH -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org To contact the owner, e-mail: yast-devel+owner@opensuse.org
participants (1)
-
Ancor Gonzalez Sosa