Rename stage0.sh to prep.sh; updates to documentation to reflect this and explain...
[selfix.git] / bootstrap.md
1 Bootstrapping SELFIX
2 ====================
3
4 ## Initial setup
5
6 The SELFIX GNU/Linux distribution uses a multi-stage process to
7 bootstrap from source. This document contains that process.
8
9 Install QEMU. Create two disk images. One will hold the host distro that
10 you're bootstrapping from. The other will contain SELFIX.
11
12     qemu-img create -f qcow2 trisquel.qcow2 22G
13     qemu-img create -f qcow2 selfix.qcow2 22G
14
15 Boot the virtual machine with the two disk images and the host
16 distro's ISO connected:
17
18     qemu-system-x86_64 -m 1000 -hda trisquel.qcow2 -hdb selfix.qcow2
19     -cdrom trisquel-netinst_7.0_amd64.iso -boot d -enable-kvm
20
21 Install the host distro onto the disk image mounted under -hda. This
22 should be visible within the installer as the disk labeled sda, with
23 the disk to contain SELFIX visible as sdb.
24
25 When formatting and mounting the drives make sure that sdb is mounted as
26 /selfix or you will need to edit the SELFIX bootstrap scripts.
27
28 ## Boot and prep the host system
29
30 Once the host distro is installed boot without the ISO:
31
32     qemu-system-x86_64 -m 1000 -hda trisquel.qcow2 -hdb selfix.qcow2
33     -enable-kvm -redir tcp:2222::22
34
35 Once the host system is booted, login and install SSH:
36
37     sudo apt install openssh-server
38
39 Once installed you may logout of the host system and connect over SSH
40 instead:
41
42     ssh -p2222 user@localhost
43
44 Install git onto the host distro:
45
46     sudo apt install git
47
48 Clone the git repository:
49
50     git clone https://jxself.org/git/selfix.git
51
52 Then run the included prep.sh script. This script will install some
53 needed prerequisites on the host system (like a compiler), download
54 and verify the source code needed to boostrap SELFIX, and create an
55 unprivileged user to use for building. Once this is completed switch
56 to the unprivileged user:
57
58     sudo su - selfix
59
60 Then run stage0.sh.
61
62 Copyright & Licensing
63 =====================
64
65 Copyright (C) 2017 Jason Self <j@jxself.org>
66
67 You can redistribute and/or modify this file under the terms of the GNU
68 Affero General Public License as published by the Free Software
69 Foundation, either version 3 of the License, or (at your option) any
70 later version.
71
72 This file is distributed in the hope that it will be useful, but
73 WITHOUT ANY WARRANTY; without even the implied warranty of
74 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
75 Affero General Public License for more details.
76
77 You should have received a copy of the GNU Affero General Public License
78 along with this file. If not, see <http://www.gnu.org/licenses/>.