aboutsummaryrefslogtreecommitdiff
path: root/bootstrap.txt
blob: d02088a4f3d0a5f0083d32bc163e0ed5e8c207a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
* On base system upgrade, move extra packages to base.

* Packages to watch out for (new versions often cause upgrade issues):

  - systemd
  - qemu-system-x86
  - linux-image-amd64 & btrfs-progs
  - g++

  If some of them are very recent (and thus likely to still have issues)
  in unstable, consider using testing. See Debian Changelog for release
  dates.

  Check the current source (unstable/testing) and update if necessary.

* Examining init changes:

  - Get the latest initramfs-tools-core and udev packages.
  - Extract /usr/share/initramfs-tools/{scripts,init} into new directory.
  - Compare:

    diff -urw <old> <new>

    We currently only use init plus udev in scripts/init-{top,bottom} (but
    the latter may use functions form other files).

* Grep for 'bug' and @@ in init and bootstrap scripts, see if any bugs have
  been fixed and corresponding workarounds can be removed.

  For some may make sense to do a round of cleanups after successful bootstrap
  not to conflate failures.

* Upgrade to latest debootstrap and debian-archive-keyring from unstable
  (or testing). Other required host packages:

  uuid-runtime      (uuidgen)
  systemd-container (systemd-nspawn)

* Note: as of latest attempt, bootstrap over https was still broken.

* Bootstrap:

  ./bootstrap 2>&1 | tee bootstrap-X.Y.log

  NOTE: tee does not play well with bash prompt (used for troubleshooting).

  NOTE: if during boostrap you need to but unable to delete an intermediate
  btrfs submodules, then it most likely has nested submodules (see nspawn()
  in bootstrap).

  NOTE: to kill nspawn container, press Ctrl-]]].

  Save the log for later comparison (might have to redo a from-stage-1
  bootstrap to get the complete log).

  To bootstrap an architecture variant with a pre-configured kernel:

  ./bootstrap --arch-variant m1 --kernel-source .../linux-asahi-5.19-5-1.tar.xz

* Compare sizes to previous version for any abnormalities (if a lot larger,
  check if GCC executables are stripped or if the kernel is somewhy is now
  built with debug info).

* After deployment, test VM upload/removal scripts (there are often issues
  after upgrading to new btrfs-progs).