Ricardo Wurmus writes: > Chris Marusich writes: > >>> Partitioning will allow for custom setups and also offer several >>> default "most common" options such as: >>> >>> Simple all in one big partition on one disk >>> Separate root and home >>> LVM/LVM encrypted (this would probably be more difficult to add) >> >> Is this different from LUKS? > > No. LUKS is used at the bottom across the whole device (e.g. /dev/sda) > and LVM is used on top of it. You’d first unlock the LUKS partition > with > > cryptsetup luksOpen /dev/sda1 root > > and then create a PV on /dev/mapper/root, add the PV to a volume group > (VG), and then create one or more logical volumes (LV) inside of the VG, > such as /dev/mapper/vg-{home,root,swap}. > > Our problem is that the initrd in GuixSD currently does not have any > support for LVM. I’m using LUKS+LVM for my home directory and I > manually unlock and mount the home directory after booting. I see. Thank you for clarifying that! >> One more thing to consider. While you write this installer, you might >> want to think about how we can make the installation process itself as >> reproducible as possible. One of Guix's features is reproducible >> software builds. Shouldn't GuixSD also make it possible to reproduce >> the process of partitioning the system's disks, making its filesystems, >> and configuring the system for the first time? >> >> Some existing software attempts to solve this specific problem. For >> example, RedHat's Kickstart installation process provides a way to >> automate the installation of RedHat's brand of GNU/Linux. Something >> that solves this same problem for GuixSD would be great! Even if this >> is out of scope for your project this year, it would be great if in the >> future we could stand on the shoulders of what you create to add such a >> feature with minimal additional effort. > > I like that idea. It would be great if we could pass a kernel parameter > at boot time to initialise the system from a given “operating-system” > configuration file. Kickstart is very convenient in this manner, but it > relies on terrible macros that nobody seems to really understand. With > Kickstart I can boot from a thumb drive or a network image, edit the > kernel boot line to add a line like this: > > ks=http://server/config.ks > > to install the system according to the configuration outlined in the > Kickstart file “config.ks”. > > With GuixSD we would append something like this to the kernel line: > > guix=http://server/config.scm > > to fetch “config.scm” over HTTP and instantiate the operating system > configuration it contains. Yes, something like that might be useful. By the way, I didn't mention Kickstart because I think it's a good example that we should follow (although I'm sure we can learn from the way Kickstart and other existing software solves the problem); it's just the first example that came into my head. -- Chris