summaryrefslogtreecommitdiff
path: root/README.md
blob: 5755eb343020c858d24d832eb3eb4c13b57cb4a0 (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
Install Debian using vmdb2 (v-i)
=============================================================================

This is a hack for my own amusement. It's not meant to be taken
seriously.

This is a rudimentary installer of Debian based on vmdb2. It has
nothing to do with debian-install, the official Debian installer,
known as d-i. I use d-i, but would like something better:

* I'd like something I can easily modify. d-i requires building
  special udeb packages for any software that's to be part of the
  installer. v-i is happy with normal debs.

* d-i uses preseeding for automating an installation. Preseeding means
  providing answers, in a file, to questions the package may ask
  during its installation. This is fine, if a little cumbersome, but
  only helps to answer questions the packages ask. v-i lets you have
  the full power of Ansible during initial installation.

On the other hand, d-i is mature software and tested by thousands. v-i
can just barely install my own Thinkpad x220 laptop.


Architecture
-----------------------------------------------------------------------------

The vmdb2-installer builds a bootable disk image with Debian. The
image boots with UEFI, and has everything you need to run vmdb2. You
write the image to a USB drive, boot off that, and run vmdb2 in the
booted system to install Debian onto the hard drive.

Thus:

- build system -> installer image
- installer image -> USB drive
- boot from USB drive
- run vmdb2 to install onto laptop hard drive

The image building uses vmdb2 as well. Things get a little recursive.


Hacking
-----------------------------------------------------------------------------

The main files are:

* v-i.vmdb -- the vmdb2 specification file for the installer image
* v-i.yml -- the Ansible playbook used by v-i.vmdb
* x220.vmdb -- the vmdb2 specification file to install onto an x220;
  this is used from the system booted from the image built by v-i.vmdb
* x220.yml -- the Ansible playbook used by x220.vmdb