Add tuto2 image
This commit is contained in:
parent
4516a839ac
commit
df12290b78
|
@ -7,4 +7,9 @@ login-kernel
|
|||
server-cmdline
|
||||
server-initrd.img
|
||||
server-kernel
|
||||
tuto2-cmdline
|
||||
tuto2-initrd.img
|
||||
tuto2.iso
|
||||
tuto2-kernel
|
||||
tuto2-state/
|
||||
fonts/
|
||||
|
|
19
Makefile
19
Makefile
|
@ -12,3 +12,22 @@ fonts/Inconsolata-32r.psf:
|
|||
|
||||
login-app/login-app: login-app/*.go
|
||||
GOOS=linux GOARCH=amd64 go build -tags netgo -ldflags '-w -extldflags "-static -lncurses"' -o $@ ./login-app
|
||||
|
||||
tuto2-kernel: tuto2.yml
|
||||
linuxkit build $<
|
||||
tuto2-initrd.img: tuto2.yml
|
||||
linuxkit build $<
|
||||
tuto2-cmdline: tuto2.yml
|
||||
linuxkit build $<
|
||||
|
||||
tuto2.iso: pkg/debian-tuto2/isolinux.cfg tuto2-kernel tuto2-initrd.img tuto2-cmdline
|
||||
$(eval TDIR := $(shell mktemp -d))
|
||||
mkdir $(TDIR)/boot/ $(TDIR)/isolinux/
|
||||
cp tuto2-kernel $(TDIR)/boot/kernel
|
||||
cp tuto2-initrd.img $(TDIR)/boot/tuto2-initrd.img
|
||||
cp pkg/debian-tuto2/isolinux.cfg /usr/share/syslinux/isolinux.bin /usr/share/syslinux/ldlinux.c32 /usr/share/syslinux/vesamenu.c32 /usr/share/syslinux/menu.c32 /usr/share/syslinux/libcom32.c32 /usr/share/syslinux/libutil.c32 /usr/share/syslinux/poweroff.c32 /usr/share/syslinux/poweroff.c32 $(TDIR)/isolinux/
|
||||
$(eval CMDLINE := $(shell cat tuto2-cmdline))
|
||||
sed -i 's#<CMDLINE>#$(CMDLINE)#' $(TDIR)/isolinux/isolinux.cfg
|
||||
mkisofs -o $@ -l -J -R -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -joliet-long -input-charset utf8 -V AdLin2 $(TDIR)
|
||||
rm -rf $(TDIR)
|
||||
isohybrid $@
|
||||
|
|
|
@ -1 +1 @@
|
|||
image: base2
|
||||
image: adlin-tuto2
|
||||
|
|
|
@ -0,0 +1,175 @@
|
|||
kernel:
|
||||
image: linuxkit/kernel:4.9.85
|
||||
# cmdline: "console=ttyS0 console=tty0 root=/dev/sda1"
|
||||
cmdline: "console=tty0 console=ttyS0 root=/dev/sda1"
|
||||
|
||||
init:
|
||||
- nemunaire/adlin-tuto2:77195c07e73d9d21820e2da37e0cf5ab28a67331-dirty
|
||||
|
||||
files:
|
||||
- path: etc/hostname
|
||||
contents: |
|
||||
adlin2
|
||||
mode: "0644"
|
||||
|
||||
- path: etc/resolv.conf
|
||||
contents: |
|
||||
nameserver 9.9.9.9
|
||||
mode: "0644"
|
||||
|
||||
- path: etc/systemd/network/49-main.link
|
||||
contents: |
|
||||
[Match]
|
||||
OriginalName=eth0
|
||||
[Link]
|
||||
Name=eth0
|
||||
mode: "0644"
|
||||
|
||||
- path: etc/systemd/network/50-dhcp.network
|
||||
contents: |
|
||||
[Match]
|
||||
Name=eth0
|
||||
[Network]
|
||||
DHCP=yes
|
||||
mode: "0644"
|
||||
|
||||
- path: init
|
||||
contents: |
|
||||
#!/bin/sh
|
||||
|
||||
# /proc/cmdline parser (from Gentoo Wiki)
|
||||
cmdline() {
|
||||
local value
|
||||
value=" $(cat /proc/cmdline) "
|
||||
value="${value#* $1=}"
|
||||
value="${value%% *}"
|
||||
[ "$value" != "" ] && echo "$value"
|
||||
}
|
||||
|
||||
# Hide us!
|
||||
/bin/rm -f /init /linuxrc
|
||||
|
||||
mount -n -t devtmpfs devtmpfs /dev
|
||||
mount -n -t proc proc /proc
|
||||
#mount -n -t tmpfs run /run
|
||||
#mount -m -t sysfs sys /sys
|
||||
|
||||
INITP=$(cmdline init)
|
||||
[ -z "$INITP" ] && INITP=/lib/systemd/systemd
|
||||
|
||||
|
||||
|
||||
ROOTFS=$(cmdline root)
|
||||
echo "rootfs=$ROOTFS"
|
||||
[ -z "$ROOTFS" ] && { echo "No root= provided, continuing on initramfs only."; exec "${INITP}"; }
|
||||
[ "$ROOTFS" = "/dev/sr0" ] && { echo "No root= provided, continuing on initramfs only."; exec "${INITP}"; }
|
||||
[ -b "$ROOTFS" ] || {
|
||||
FORMATDD=$(cmdline adlin.format)
|
||||
[ -b "$FORMATDD" ] && { echo "o\nn\np\n1\n\n\np\nw\nq\n" | fdisk "${FORMATDD}" && mkfs.ext4 "$FORMATDD"1; }
|
||||
[ -b "$ROOTFS" ] || { echo "Invalid provided rootfs: not a valid block device."; exit 1; }
|
||||
}
|
||||
|
||||
mkdir -p /overlay
|
||||
/bin/mount -n -t tmpfs none /overlay
|
||||
/bin/mkdir -p /overlay/rwdata
|
||||
/bin/mkdir -p /overlay/robase
|
||||
/bin/mkdir -p /overlay/combined
|
||||
/bin/mount --bind / /overlay/robase
|
||||
|
||||
ovr_rwdata=/overlay/rwdata
|
||||
ovr_robase=/overlay/robase
|
||||
ovr_combined=/overlay/combined
|
||||
|
||||
# Prepare filesystem for local data storage...
|
||||
/bin/mkdir -p ${ovr_rwdata}
|
||||
/bin/mount -n "${ROOTFS}" ${ovr_rwdata} || { echo "Unable to mount rootfs."; exit 2; }
|
||||
|
||||
mkdir -p ${ovr_rwdata}/data
|
||||
mkdir -p ${ovr_rwdata}/work
|
||||
/bin/mount -n -t overlay -o upperdir=${ovr_rwdata}/data,workdir=${ovr_rwdata}/work,lowerdir=${ovr_robase} overlay ${ovr_combined} || { echo "Unable to create overlayfs."; exit 3; }
|
||||
|
||||
/bin/umount -n /proc
|
||||
/bin/umount -n /dev
|
||||
|
||||
/bin/mkdir -p ${ovr_combined}/overlay/rwdata
|
||||
/bin/mount -n --move ${ovr_rwdata} ${ovr_combined}/overlay/rwdata
|
||||
/bin/mkdir -p ${ovr_combined}/overlay/robase
|
||||
/bin/mount -n --move ${ovr_robase} ${ovr_combined}/overlay/robase
|
||||
/bin/mkdir -p ${ovr_combined}/overlay/pivot
|
||||
|
||||
cd ${ovr_combined}
|
||||
|
||||
mount --move . /
|
||||
/bin/umount -n /overlay
|
||||
exec /usr/sbin/chroot . "${INITP}"
|
||||
mode: "0755"
|
||||
|
||||
# - path: etc/systemd/system/systemd-networkd.service.d/10-debug.conf
|
||||
# contents: |
|
||||
# [Service]
|
||||
# Environment=SYSTEMD_LOG_LEVEL=debug
|
||||
# mode: "0644"
|
||||
|
||||
- path: etc/passwd
|
||||
contents: |
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
|
||||
bin:x:2:2:bin:/bin:/usr/sbin/nologin
|
||||
sys:x:3:3:sys:/dev:/usr/sbin/nologin
|
||||
sync:x:4:65534:sync:/bin:/bin/sync
|
||||
games:x:5:60:games:/usr/games:/usr/sbin/nologin
|
||||
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
|
||||
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
|
||||
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
|
||||
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
|
||||
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
|
||||
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
|
||||
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
|
||||
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
|
||||
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
|
||||
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
|
||||
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
|
||||
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
|
||||
_apt:x:100:65534::/nonexistent:/bin/false
|
||||
messagebus:x:101:102::/var/run/dbus:/bin/false
|
||||
sshd:x:102:65534::/run/sshd:/usr/sbin/nologin
|
||||
systemd-timesync:x:103:105:systemd Time Synchronization,,,:/run/systemd:/bin/false
|
||||
systemd-network:x:104:106:systemd Network Management,,,:/run/systemd/netif:/bin/false
|
||||
systemd-resolve:x:105:107:systemd Resolver,,,:/run/systemd/resolve:/bin/false
|
||||
systemd-bus-proxy:x:106:108:systemd Bus Proxy,,,:/run/systemd:/bin/false
|
||||
mode: "0644"
|
||||
|
||||
|
||||
- path: etc/shadow
|
||||
contents: |
|
||||
root:$6$fCh6fLfB$wTiBuIJB2/QLl37VlJ16MsqGmfSDct8ALRpY8kemFC2T4N4eZgdlTnEqTuYn5i4FMc5GoDBx1nfENHQqm0Zgm.:17594:0:99999:7:::
|
||||
daemon:*:17575:0:99999:7:::
|
||||
bin:*:17575:0:99999:7:::
|
||||
sys:*:17575:0:99999:7:::
|
||||
sync:*:17575:0:99999:7:::
|
||||
games:*:17575:0:99999:7:::
|
||||
man:*:17575:0:99999:7:::
|
||||
lp:*:17575:0:99999:7:::
|
||||
mail:*:17575:0:99999:7:::
|
||||
news:*:17575:0:99999:7:::
|
||||
uucp:*:17575:0:99999:7:::
|
||||
proxy:*:17575:0:99999:7:::
|
||||
www-data:*:17575:0:99999:7:::
|
||||
backup:*:17575:0:99999:7:::
|
||||
list:*:17575:0:99999:7:::
|
||||
irc:*:17575:0:99999:7:::
|
||||
gnats:*:17575:0:99999:7:::
|
||||
nobody:*:17575:0:99999:7:::
|
||||
_apt:*:17575:0:99999:7:::
|
||||
messagebus:*:17594:0:99999:7:::
|
||||
sshd:*:17594:0:99999:7:::
|
||||
systemd-timesync:*:17594:0:99999:7:::
|
||||
systemd-network:*:17594:0:99999:7:::
|
||||
systemd-resolve:*:17594:0:99999:7:::
|
||||
systemd-bus-proxy:*:17594:0:99999:7:::
|
||||
mode: "0640"
|
||||
|
||||
trust:
|
||||
org:
|
||||
- linuxkit
|
||||
- library
|
Reference in New Issue