live-metal/TODO.md

4.3 KiB
Raw Permalink Blame History

metal

connman not set up, might not like it.

bluez missing

default devuan user disappears

change /tmp to tmpfs

rewrite the docker helpers that just set config in apt-conf.d to the sysconf pattern.

  1. a heredoc that doesn't redirect to a file with function names of the form: confprint()
  2. a line to direct the print function to a file of the form: conf_print_fstab | sudo tee "$strapdir/etc/fstab" >/dev/null

Move the docker blend and associated files into its own blend directory. Move the metal blend and associated file into its own blend directory.

add submodules, dockerfile and gitlab-ci.yml so that images can be build automatically.


debootstrap has the option 'doing_variant' that accepts

  • minbase - base="$devuan_required apt"
  • buildd - base="$devuan_required apt build-essential"
  • fakechroot - base="devuan_required (get_debs Priority: important)"
    required="$required binutils"
  •         - base="$devuan_required $(get_debs Priority: important)"
    

To get the packages involved: dpkg-query -f '{binary:Package} {Priority}\n' -W | grep -w 'required|important'

so we would have to override lib/libdevuansdk/zlibs/bootstrap to:

  • add --variant or
  • change the --includes to be a list in config debootstrap_includes+=() to reflect the changes above and allow for other variant at the debootstrap stage.
  • set equivalent groupings in blend $release/config $base_packages and have them applied after debootstrap.

debootstrap/scripts/ceres also has

  case $MIRRORS in
        https://*)
      base="$base apt-transport-https ca-certificates"
  ;;
  esac

But not for other apt-transports like apt-transport-tor

  case $MIRRORS in
        https://*)
      base="$base apt-transport-https ca-certificates"
  ;;
  tor+http://\*)
  base="$base apt-transport-tor ca-certificates"
  esac

  deb tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged <release codename> main
  deb tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged <release codename>-updates main
  deb tor+http://devuanauxrkggcowgm2vcs6go3c5pgxdidd5wqjpg7zpfaxkmgspr6id.onion/merged <release codename>-security main

If you are going to install packages into the running livesd before a get-selections it would make sense to save the results of a diff on /home/default in the overlay to capture and configuration that you may choose to do as well as a debconf-get-selections for any settings chosen during install.

  1. image_partition_disk_zfs can have two more options to fit the openzfs instructions: i. bios v uefi (we do both) a. Run this if you need legacy (BIOS) booting: sgdisk -a1 -n1:24K:+1000K -t1:EF02 $DISK

    b. Run this for UEFI booting (for use now or in the future):
    sgdisk     -n2:1M:+512M   -t2:EF00 $DISK
    

    ii. Unencrypted v encrypted (is zfs native encryption performant yet?) a. Unencrypted or ZFS native encryption: sgdisk -n4:0:0 -t4:BF00 $DISK

    b. LUKS:
    sgdisk     -n4:0:0        -t4:8309 $DISK
    
  2. raid as specified by type, so far we have mirror or none/striped but we do have available disks list so we could add raidz, raidz2, or raidz3 adding tests for the correct number of disks needed for each.

https://icesquare.com/wordpress/zfs-performance-mirror-vs-raidz-vs-raidz2-vs-raidz3-vs-striped/

#How many disks do you have? 1: ZFS is not for you. 2: Mirror 3-5: RAIDZ1 6-10 RAIDZ1 x 2 10-15: RAIDZ1 x 3 16-20: RAIDZ1 x 4

RAIDZ levels comparison chart

Stripe Mirror RAIDZ RAIDZ2 RAIDZ3 Stripe+mirror Min number of disks 1 2 3 4 5 4 Fault to­le­ran­ce None (N-1) disk 1 disk 2 disks 3 disk (N-1) disk in each N-disk mirror Disk space over­head None (N-1)/N 1 disk 2 disks 3 disks (N-1)*P for P stipe over N-disk mirrors Read speed Fast Fast Slow, see below Fast Write speed Fast Fair Slow, See below Fair Hard­ware cost Cheap High to highest High Very high Very High (disks) High to highest

Minimum number of disks Stripe 1 default/unset

Mirror 2 already implemented RAIDZ 3 zpool create rpool raidz1 VDEV1 VDEV2 VDEV3

RAIDZ2 4 zpool create rpool raidz2 VDEV1 VDEV2 VDEV3 VDEV4

RAIDZ3 5 zpool create rpool raidz3 VDEV1 VDEV2 VDEV3 VDEV4 VDEV5

Stripe+mirror 4 sudo zpool create NAME mirror VDEV1 VDEV2 mirror VDEV3 VDEV4 or: sudo zpool create NAME mirror VDEV1 VDEV2 sudo zpool add NAME mirror VDEV3 VDEV4