ARCH := amd64
CONFIG := config_base/
-PACKAGES := apt bilibop-lockfs btrfs-tools busybox-static bzip2 ca-certificates cron deborphan extlinux gzip htop ifupdown init iputils-ping irqbalance isc-dhcp-client less live-boot live-boot-initramfs-tools make man-db nbd-client net-tools nmap ntpdate openssh-client openssh-server p7zip-full pciutils rsync squashfs-tools sshfs sudo systemd unace unrar-free unzip vim wget wireless-tools wpasupplicant xz-utils zip
+PACKAGES := apt bilibop-lockfs btrfs-tools busybox-static bzip2 ca-certificates cron deborphan extlinux gzip htop ifupdown init iputils-ping irqbalance isc-dhcp-client less live-boot live-boot-initramfs-tools make man-db nbd-client net-tools nmap ntpdate openssh-client openssh-server p7zip-full pciutils rsync squashfs-tools sshfs sudo syslinux-common systemd unace unrar-free unzip vim wget wireless-tools wpasupplicant xz-utils zip
-Include *.mk
+include *.mk
stretch_%_root/bin/sh:
btrfs subvolume create "$(subst bin/sh,,$@)" || mkdir "$(subst bin/sh,,$@)"
chmod 755 "$(subst bin/sh,,$@)"
debootstrap --arch=${ARCH} --variant=minbase stretch "$(subst bin/sh,,$@)"
-stretch_%_root/: stretch_%_root/bin/sh ${CONFIG} .FORCE
+stretch_%_root/: stretch_%_root/bin/sh ${CONFIG} permissions .FORCE
for tree in ${CONFIG}; do for file in apt default timezone; do cp -av "$$tree/etc/$$file" "$@/etc/" || true; done; done
chroot "$@" ln -sf /bin/true /usr/local/sbin/invoke-rc.d
chroot "$@" sh -c 'apt-mark showmanual |xargs apt-mark auto || true'
chroot "$@" apt-get clean
touch "$@"
-stretch_%_config/: stretch_%_root/ ${CONFIG} .FORCE
+stretch_%_config/: stretch_%_root/ ${CONFIG} permissions .FORCE
btrfs subvolume delete "$@" || rm -r "$@" || true
btrfs subvolume snapshot "$<" "$@" || cp -rlv "$<" "$@"
cp -av $(addsuffix /*, ${CONFIG}) "$@"
stretch_%.squashfs: stretch_%_config/
rm "$@" || true
mksquashfs "$<" "$@" -comp xz
+
+/dev/sd%: partitions .FORCE
+ sfdisk ${@} <partitions
+ dd of=${@} if=/usr/lib/syslinux/mbr/mbr.bin
+
+/dev/sd%1: /dev/sd% vmlinuz initrd.img syslinux.cfg .FORCE
+ mkdir -p mount
+ mkfs.ext3 -FL SQUASHBOOT ${@}
+ mount -t ext3 ${@} mount
+ cp -L vmlinuz initrd.img *.squashfs syslinux.cfg Makefile partitions mount/
+ cp $(addprefix /usr/lib/syslinux/modules/bios/, menu.c32 libutil.c32) mount/
+ extlinux -i mount/
+ umount mount/
+ sync
+
+/dev/sd%2: /dev/sd% .FORCE
+ mkswap -L SWAP ${@}
+ sync
+
+/dev/sd%3: /dev/sd% .FORCE
+ mkdir -p mount
+ mkfs.btrfs -fL SQUASHCLIENT ${@}
+ mount -t btrfs ${@} mount
+ btrfs subvolume create mount/home
+ chmod 0755 mount/home
+ umount mount/
+ sync