summaryrefslogtreecommitdiff
path: root/create_stage1_cdrom.sh
blob: d2330bb99455c995321e071b39e27378f59ee0e6 (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
55
56
57
58
59
60
61
62
63
64
#!/bin/sh

# shellcheck source=./default.conf
. "./default.conf"

# builds a small ISO image for installing a stage 1 system:
# no ramdisk, no modules, no fancy startup, just a shell script

sudo rm -rf $STAGE1_ISOLINUX

# copy chroot to ISOlinux dir
mkdir $STAGE1_ISOLINUX
sudo cp -a $STAGE1_CHROOT/* $STAGE1_ISOLINUX/.
sudo chown -R cross:cross $STAGE1_ISOLINUX/.
cd $STAGE1_ISOLINUX || exit 1

# simple ISOlinux menu, with options for fast choosing a root device
mkdir boot/isolinux
cat >boot/isolinux/isolinux.cfg <<EOF
UI menu.c32
TIMEOUT 300
PROMPT 1
LABEL hda
	KERNEL /boot/vmlinuz-linux
	APPEND root=/dev/hda init=/sbin/init console=ttyS0 console=tty0'
LABEL hdb
	KERNEL /boot/vmlinuz-linux
	APPEND root=/dev/hdb init=/sbin/init console=ttyS0 console=tty0'
LABEL hdc
	KERNEL /boot/vmlinuz-linux
	APPEND root=/dev/hdc init=/sbin/init console=ttyS0 console=tty0'
LABEL hdd
	KERNEL /boot/vmlinuz-linux
	APPEND root=/dev/hdd init=/sbin/init console=ttyS0 console=tty0'
LABEL sr0
	KERNEL /boot/vmlinuz-linux
	APPEND root=/dev/sr0 init=/sbin/init console=ttyS0 console=tty0'
LABEL sr1
	KERNEL /boot/vmlinuz-linux
	APPEND root=/dev/sr1 init=/sbin/init console=ttyS0 console=tty0'
EOF
sudo chown cross:cross boot/isolinux/isolinux.cfg

mkdir -p etc/init

cat >etc/init/boot <<EOF
#!/bin/sh
mount -t proc proc /proc
ln -s /proc/self/fd /dev/fd
mount -t sysfs sys /sys
mount -t tmpfs nodev,nosuid,size=4M /tmp
exec /usr/bin/bash
EOF
sudo chown -R root:root .
sudo chmod 0775 etc/init/boot
sudo cp /usr/lib/syslinux/bios/ldlinux.c32 boot/isolinux/.
sudo cp /usr/lib/syslinux/bios/menu.c32 boot/isolinux/.
sudo cp /usr/lib/syslinux/bios/libutil.c32 boot/isolinux/.
sudo cp /usr/lib/syslinux/bios/isolinux.bin boot/isolinux/.
sudo genisoimage -J -r -o ../arch486.iso -b boot/isolinux/isolinux.bin \
	-c boot/isolinux/boot.cat -input-charset UTF-8 -no-emul-boot \
	-boot-load-size 4 -boot-info-table -joliet-long .
cd .. || exit 1