summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile37
m---------fsmgr0
m---------import-grub-bootx64-efi0
-rw-r--r--partitions/Makefile33
-rw-r--r--partitions/part5.conf2
-rw-r--r--partitions/part6.conf2
-rw-r--r--partitions/part7.conf2
-rw-r--r--partitions/part8.conf2
-rwxr-xr-xsrc/partvi4
9 files changed, 42 insertions, 40 deletions
diff --git a/Makefile b/Makefile
index f7b88c7..c1dfb8a 100644
--- a/Makefile
+++ b/Makefile
@@ -91,7 +91,7 @@ SUDO_MAKE = sudo MAKEFLAGS="$$MAKEFLAGS" $(MAKE)
91 91
92.PHONY: install-configuration install-bootserver install-boot-server start-bootserver 92.PHONY: install-configuration install-bootserver install-boot-server start-bootserver
93install-boot-server: install-bootserver 93install-boot-server: install-bootserver
94install-bootserver: | rootfs/samizdat.btrfs 94install-bootserver: | $(rootfs)
95 exit 1; sudo initrd.sh 95 exit 1; sudo initrd.sh
96 $(SUDO_MAKE) instdir=/ real-install-bootserver start-bootserver 96 $(SUDO_MAKE) instdir=/ real-install-bootserver start-bootserver
97 97
@@ -138,30 +138,24 @@ update-submodules:
138install-submodules: cmd=install 138install-submodules: cmd=install
139install-submodules: update-submodules $(INSTALL_SUBMODULES) 139install-submodules: update-submodules $(INSTALL_SUBMODULES)
140 140
141GOLD = 141rootfs = rootfs/_filesystem/samizdat.seed.btrfs
142ifdef GOLD
143rootfs = samizdat-gold.seed.btrfs
144patchfs =
145else
146rootfs = samizdat.seed.btrfs
147patchfs = $(patsubst %.seed.btrfs,%.patch.btrfs,$(rootfs)) 142patchfs = $(patsubst %.seed.btrfs,%.patch.btrfs,$(rootfs))
148endif 143rootfs_verity = $(addsuffix .verity,$(rootfs) $(patchfs))
149rootfs_verity = $(addprefix rootfs/,$(addsuffix .verity,$(rootfs) $(patchfs)))
150 144
151.PHONY: rootfs rootfs-deps 145.PHONY: rootfs rootfs-deps
152rootfs-deps: 146rootfs-deps:
153 [ -e install-submodules-stamp ] || make install-submodules-stamp 147 [ -e install-submodules-stamp ] || make install-submodules-stamp
154 [ -e install-stamp ] || $(SUDO_MAKE) install-stamp 148 [ -e install-stamp ] || $(SUDO_MAKE) install-stamp
155 149
156btrfs_images = $(addprefix rootfs/, $(rootfs) $(patchfs)) 150btrfs_images = $(rootfs) $(patchfs)
157rootfs-clean: 151rootfs-clean:
158 make -C rootfs clean all 152 make -C rootfs clean all
159 153
160rootfs: rootfs-deps $(btrfs_images) $(rootfs_verity) 154rootfs: rootfs-deps $(btrfs_images) $(rootfs_verity)
161 sudo mkdir -p /srv/nbd 155 sudo mkdir -p /srv/nbd
162 sudo ln -sf "$$PWD"/rootfs/$(rootfs) /srv/nbd/samizdat.btrfs 156 sudo ln -sf "$$PWD"/$(rootfs) /srv/nbd/samizdat.btrfs
163ifneq (,$(patchfs)) 157ifneq (,$(patchfs))
164 sudo ln -sf "$$PWD"/rootfs/$(patchfs) /srv/nbd/samizdat.patch.btrfs 158 sudo ln -sf "$$PWD"/$(patchfs) /srv/nbd/samizdat.patch.btrfs
165endif 159endif
166 160
167FORCE: 161FORCE:
@@ -170,12 +164,12 @@ $(btrfs_images): FORCE
170 164
171boot: rootfs 165boot: rootfs
172 sudo ./src/mkinitramfs-samizdat 166 sudo ./src/mkinitramfs-samizdat
173 sudo ROOTFS=rootfs/$(rootfs) ./src/parted-usb.sh 167 sudo ROOTFS=$(rootfs) ./src/parted-usb.sh
174 168
175fastboot: rootfs 169fastboot: rootfs
176 sudo qemu.sh 170 sudo qemu.sh
177 171
178samizdat.netinst.iso: | rootfs/samizdat.btrfs 172samizdat.netinst.iso: | $(rootfs)
179 exit 1; sudo initrd.sh 173 exit 1; sudo initrd.sh
180 sudo xorriso-usb.sh $(reuse_child) --bootloader --out $@ 174 sudo xorriso-usb.sh $(reuse_child) --bootloader --out $@
181 175
@@ -207,7 +201,7 @@ verity_root_hash = $(shell sed -ne 's/^Root hash:[ \t]*//p' $<)
207 201
208root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log) 202root_hash = $(shell sed -ne 's/^Root hash: *//p' < $<.log)
209 203
210veritymount: rootfs/samizdat.seed.btrfs.verity.log 204veritymount: $(rootfs).verity.log
211 @sudo veritysetup remove samizverity >/dev/null 2>&1 || true 205 @sudo veritysetup remove samizverity >/dev/null 2>&1 || true
212 sudo veritysetup create samizverity $(basename $(basename $<)) \ 206 sudo veritysetup create samizverity $(basename $(basename $<)) \
213 $(basename $<) \ 207 $(basename $<) \
@@ -227,8 +221,7 @@ apt = $(shell which apt || which apt-get)
227apt-get-update-stamp: 221apt-get-update-stamp:
228 @if $(stale); then set -x; sudo $(apt) update && touch $@; fi 222 @if $(stale); then set -x; sudo $(apt) update && touch $@; fi
229 223
230rootfs/seed.iso: $(addprefix rootfs/samizdat.seed.btrf, s \ 224rootfs/seed.iso: $(rootfs) $(if $(VERITY),$(addprefix $(rootfs),.verity .verity.log))
231 $(if $(VERITY), s.verity s.verity.log))
232 rm -f $@~tmp 225 rm -f $@~tmp
233 touch $@~tmp 226 touch $@~tmp
234 fallocate -n -l 10G $@~tmp 227 fallocate -n -l 10G $@~tmp
@@ -287,9 +280,11 @@ upgrade-key: upgrade key
287 280
288.PHONY: usb key emu testinitrdkey testinitrd total-destroy persist 281.PHONY: usb key emu testinitrdkey testinitrd total-destroy persist
289 282
290persist: | partitions/persist.img 283PERSIST_FILE = partitions/_liveboot/persist.img
291partitions/persist.img: 284
292 make -C partitions $(notdir $@) 285persist: | $(PERSIST_FILE)
286$(PERSIST_FILE):
287 $(MAKE) -C partitions $(patsubst partitions/%,%,$@)
293 288
294usb emu efi: initrd rootfs 289usb emu efi: initrd rootfs
295key keymu emu-key: initrd 290key keymu emu-key: initrd
@@ -297,7 +292,7 @@ cleanmu: rootfs-clean total-destroy emu
297mu: up cleanmu 292mu: up cleanmu
298 293
299usb emu key keymu emu-key total-destroy efi: 294usb emu key keymu emu-key total-destroy efi:
300 make -C partitions clean $@ 295 $(MAKE) -C partitions clean $@
301 296
302testinitrdkey: keymu 297testinitrdkey: keymu
303testinitrd: emu 298testinitrd: emu
diff --git a/fsmgr b/fsmgr
Subproject 041fde012385cd83876573edd97e30d25f4fb89 Subproject 60f8cbcdd073854e6ea804b3129010dffbf0cde
diff --git a/import-grub-bootx64-efi b/import-grub-bootx64-efi
Subproject 1dcb9429626603052fe4d307d7deb29c7182f1d Subproject 2d4e384597040b63b8bc34b8db32a9c4e0f39af
diff --git a/partitions/Makefile b/partitions/Makefile
index 1007a5c..91a60d9 100644
--- a/partitions/Makefile
+++ b/partitions/Makefile
@@ -1,29 +1,36 @@
1 1
2.PHONY: all clean 2.PHONY: all clean
3 3
4all: whole.img 4whole = _build/whole.img
5key = _build/key.img
6
7all: $(whole)
5 8
6stage0_efi_file = ../import-grub-bootx64-efi/3/BOOTX64.EFI 9stage0_efi_file = ../import-grub-bootx64-efi/3/BOOTX64.EFI
7$(stage0_efi_file): 10$(stage0_efi_file):
8 make -C ../import-grub-bootx64-efi ver=3 11 make -C ../import-grub-bootx64-efi ver=3
9 12
10whole.img: $(stage0_efi_file) 13$(whole): $(stage0_efi_file)
11 partvi 14 partvi
12 15
13key.img: $(stage0_efi_file) 16$(key): $(stage0_efi_file)
14 partvi key 17 partvi key
15 18
19_liveboot:
20 btrfs subvolume create $@
21
16PERSIST_SIZE=20G 22PERSIST_SIZE=20G
17persist.img: 23PERSIST_FILE=_liveboot/persist.img
24$(PERSIST_FILE): | _liveboot
18 [ ! -e $@ ] 25 [ ! -e $@ ]
19 fallocate -l "$(PERSIST_SIZE)" $@ 26 fallocate -l "$(PERSIST_SIZE)" $@
20 truncate -s 0 $@ 27 truncate -s 0 $@
21 truncate -s "$(PERSIST_SIZE)" $@ 28 truncate -s "$(PERSIST_SIZE)" $@
22 29
23persist := $(shell [ -e persist.img ] && printf %s '-drive file=persist.img,media=disk,driver=raw' || true) 30optional_persist_disk != [ ! -e $(PERSIST_FILE) ] || printf %s '-drive file=$(PERSIST_FILE),media=disk,driver=raw'
24 31
25.PHONY: usb emu key emu-key keymu 32.PHONY: usb emu key emu-key keymu
26usb: whole.img 33usb: $(whole)
27 usb=$$(usb) && sudo dd status=progress if="$<" of="$$usb" 34 usb=$$(usb) && sudo dd status=progress if="$<" of="$$usb"
28 35
29# QEMU_DISPLAY_OPTIONS = -nographic 36# QEMU_DISPLAY_OPTIONS = -nographic
@@ -34,16 +41,16 @@ QEMU_OPTIONS = $(QEMU_BIOS_OPTIONS) $(QEMU_DISPLAY_OPTIONS)
34define emu 41define emu
35 NO_AT_BRIDGE=1 qemu-system-x86_64 ${QEMU_OPTIONS} -m 800 -enable-kvm -boot c \ 42 NO_AT_BRIDGE=1 qemu-system-x86_64 ${QEMU_OPTIONS} -m 800 -enable-kvm -boot c \
36 -drive file=$(1),media=disk,driver=raw \ 43 -drive file=$(1),media=disk,driver=raw \
37 $(persist) 44 $(optional_persist_disk)
38endef 45endef
39 46
40emu: whole.img 47emu: $(whole)
41 $(call emu,$<) 48 $(call emu,$<)
42 49
43emu-key keymu: key.img 50emu-key keymu: $(key)
44 $(call emu,$<) 51 $(call emu,$<)
45 52
46key: key.img 53key: $(key)
47 usb=$$(usb) && \ 54 usb=$$(usb) && \
48 sudo dd status=progress bs=1048576 if="$<" of="$$usb" && \ 55 sudo dd status=progress bs=1048576 if="$<" of="$$usb" && \
49 sudo $(call emu,"$$usb") 56 sudo $(call emu,"$$usb")
@@ -56,9 +63,9 @@ efi-ventoy: ventoy-efi-example.img
56 $(call emu,$<) 63 $(call emu,$<)
57 64
58clean: 65clean:
59 rm -rf _build whole.img key.img 66 rm -rf _build
60 67
61.PHONY: total-destroy 68.PHONY: total-destroy
62total-destroy: clean 69total-destroy: clean
63 rm -f persist.img 70 rm -f $(PERSIST_FILE)
64 $(MAKE) persist.img 71 $(MAKE) $(PERSIST_FILE)
diff --git a/partitions/part5.conf b/partitions/part5.conf
index 08e4196..25d1fdb 100644
--- a/partitions/part5.conf
+++ b/partitions/part5.conf
@@ -1,3 +1,3 @@
1name=samizdat-root-seed 1name=samizdat-root-seed
2type=dm-verity-data 2type=dm-verity-data
3data_path=../rootfs/samizdat.seed.btrfs 3data_path=../rootfs/_filesystem/samizdat.seed.btrfs
diff --git a/partitions/part6.conf b/partitions/part6.conf
index 0075c91..d3f7515 100644
--- a/partitions/part6.conf
+++ b/partitions/part6.conf
@@ -1,3 +1,3 @@
1name=samizdat-root-seed-verity 1name=samizdat-root-seed-verity
2type=dm-verity-hashes 2type=dm-verity-hashes
3data_path=../rootfs/samizdat.seed.btrfs 3data_path=../rootfs/_filesystem/samizdat.seed.btrfs
diff --git a/partitions/part7.conf b/partitions/part7.conf
index 7a77685..aaeee4e 100644
--- a/partitions/part7.conf
+++ b/partitions/part7.conf
@@ -1,3 +1,3 @@
1name=samizdat-rootfs 1name=samizdat-rootfs
2type=dm-verity-data 2type=dm-verity-data
3data_path=../rootfs/samizdat.patch.btrfs 3data_path=../rootfs/_filesystem/samizdat.patch.btrfs
diff --git a/partitions/part8.conf b/partitions/part8.conf
index 8298fd3..9dc22fe 100644
--- a/partitions/part8.conf
+++ b/partitions/part8.conf
@@ -1,3 +1,3 @@
1name=samizdat-root-patch-verity 1name=samizdat-root-patch-verity
2type=dm-verity-hashes 2type=dm-verity-hashes
3data_path=../rootfs/samizdat.patch.btrfs 3data_path=../rootfs/_filesystem/samizdat.patch.btrfs
diff --git a/src/partvi b/src/partvi
index e34eef6..673b141 100755
--- a/src/partvi
+++ b/src/partvi
@@ -330,9 +330,9 @@ mkdir -p "$builddir"
330 330
331if [ "$SKIP_ROOTFS_COPY" ] 331if [ "$SKIP_ROOTFS_COPY" ]
332then 332then
333 target=key.img 333 target=$builddir/key.img
334else 334else
335 target=whole.img 335 target=$builddir/whole.img
336fi 336fi
337 337
338 338