Annotation of wikisrc/projects/project/sysinst-enhancements.mdwn, revision 1.6

1.1       jmmv        1: [[!template id=project
                      2: 
                      3: title="Sysinst enhancements"
                      4: 
                      5: contact="""
                      6: [tech-install](mailto:tech-install@NetBSD.org)
                      7: """
                      8: 
                      9: mentors="""
1.3       wiki       10: [Martin Husemann](mailto:martin@NetBSD.org)
1.1       jmmv       11: """
                     12: 
1.2       jmmv       13: category="userland"
                     14: difficulty="easy"
1.1       jmmv       15: duration="3 months"
1.6     ! wiki       16: done_by="Eugene Lozovoy"
1.1       jmmv       17: 
                     18: description="""
                     19: The goal of this project is to enhance the NetBSD system installer (sysinst) to provide additional support for (in order):
                     20: 
1.4       wiki       21: * partition disks using GPT
                     22: * prepare multiple disks
                     23: * combine multiple partitions to raid/lvm volumes
                     24: * encrypt partitions via cgd
1.1       jmmv       25: * other enhancements
                     26: 
1.3       wiki       27: The installer currently supports installing the system to any available single disk. It is possible to select which parts (distribution sets) of the system to install, and also to customise the disk partition layout. Sysinst can also use vnode pseudo disks, so can be tested without the need to re-install the host system.
1.1       jmmv       28: 
1.5       wiki       29: The first goal is to allow partitioning disks using the GUID partition table (GPT). The current partitioning code is tied heavily to the BSD disklabel. Fixing it is straight forward, but both methods have to be offered and only some architectures can boot from GPT disks.
1.1       jmmv       30: 
1.4       wiki       31: The second goal is to allow preparing several disks. This part would also be usefull (see "other enhancements" below) as a stand-alone tool. Various disks may be partitioned using different shemes, for example when the boot disk can not use GPT, but secondary (large) disks should use it. This part also is a direct prerequisite for the following one.
1.1       jmmv       32: 
1.4       wiki       33: The third goal is to (optionally) create logical volumes from multiple partitions or disks, either using raidframe or LVM. This includes making the volumes bootable, if possible.
1.1       jmmv       34: 
1.3       wiki       35: The fourth goal is to add support for creating and installing on to cgd (encrypted) partitions. The initial support will not be for the boot partition, but other partitions should be supported.
                     36: 
1.1       jmmv       37: The other enhancements that might be possible are (not in priority order):
                     38: 
                     39: #### user interface
                     40: * customise colours
                     41: * add "back" and "forward" menu options
                     42: * run parts of the installer independently (e.g. disk partitioning, set installation)
                     43: 
                     44: #### cgd enhancements
                     45: * add the ability to encrypt the whole disk and to enter the decryption key at boot time
                     46: 
                     47: #### automated test setup
                     48: * add the ability to install Anita for automated testing 
                     49: 
                     50: The candidate must have:
                     51: 
                     52: * familiarity with the system installer. You should have used sysinst to install the system.
                     53: * familiarity with C programming. The system installer program consists of C code.
                     54: * a test system, preferably with a 2nd bootable device.
                     55: 
                     56: The following would also be useful:
                     57: 
                     58: * familiarity with NetBSD.
                     59: * familiarity with user interface programming using curses.
                     60: 
                     61: ### References:
                     62: 
                     63: * [sysinst source (opengrok)](http://cvsweb.netbsd.org/bsdweb.cgi/src/distrib/utils/sysinst/)
                     64: * [vnconfig manual page](http://netbsd.gw.com/cgi-bin/man-cgi?vnconfig++NetBSD-current)
                     65: * [raidctl manual page](http://netbsd.gw.com/cgi-bin/man-cgi?raidctl++NetBSD-current)
                     66: * [cgdconfig manual page](http://netbsd.gw.com/cgi-bin/man-cgi?cgdconfig++NetBSD-current)
                     67: * [LVM on NetBSD](http://www.netbsd.org/docs/guide/en/chap-lvm.html)
                     68: * [Anita automated testing](http://www.gson.org/netbsd/anita/)
                     69: """
                     70: ]]
                     71: 
                     72: [[!tag gsoc]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb