summaryrefslogtreecommitdiff
path: root/package
diff options
context:
space:
mode:
authorWaldemar Brodkorb <mail@waldemar-brodkorb.de>2012-03-28 11:04:58 +0200
committerWaldemar Brodkorb <mail@waldemar-brodkorb.de>2012-03-28 11:04:58 +0200
commit6a71d6abfeda9e27a904dae851201d9d0b454978 (patch)
tree11fd8999ccc8004e50b58b679be73527376abb6f /package
parent1eff6309b4fb4bb79eebafbdc2ed512342fa7649 (diff)
finetune installer for disk and usb installations
Diffstat (limited to 'package')
-rwxr-xr-xpackage/installer/src/installer98
1 files changed, 91 insertions, 7 deletions
diff --git a/package/installer/src/installer b/package/installer/src/installer
index fd45c443c..3c24cb6a2 100755
--- a/package/installer/src/installer
+++ b/package/installer/src/installer
@@ -1,5 +1,11 @@
#!/bin/sh
+#set -x
+
+rootsize=1024
+usbrootsize=512
+cfgsize=16
+
create_bootcfg() {
cat << FOO > /mnt/boot/boot.cfg
default 0
@@ -10,22 +16,97 @@ title OpenADK
args root=/dev/sda1
title USB
- kernel (usb0,0)/boot/kernel
+ kernel (usb0,0)/boot/kernel-usb
args root=/dev/sdc1
FOO
}
+create_fstab() {
+ cat << FOO > /mnt/etc/fstab
+/dev/sda2 /home ext4 defaults 0 0
+/dev/sda3 none swap sw 0 0
+FOO
+
+}
+
+create_usb_fstab() {
+ cat << FOO > /mnt/etc/fstab
+/dev/sdc2 /home ext4 defaults 0 0
+FOO
+
+}
+
+create_home() {
+ mkdir -p /mnt/home
+ mkdir -p /tmp/home/lemote
+ chown 1000:1000 /tmp/home/lemote
+ echo "lemote:x:1000:1000:Linux User,,,:/home/lemote:/bin/mksh" >> /mnt/etc/passwd
+ echo "lemote:.m3Jtyyc5L4W6:15426:0:99999:7:::" >> /mnt/etc/shadow
+ echo "setxkbmap -option terminate:ctrl_alt_bksp" >> /tmp/home/lemote/.xsession
+ echo fluxbox >> /tmp/home/lemote/.xsession
+}
+
+usb_install() {
+ size=$(parted -s /dev/sdc unit mb print|awk '/Disk/ {print $3}'|sed -e "s#MB##")
+ homesize=$(($size-$usbrootsize-$cfgsize))
+ mkdir /tmp/home
+ parted -s /dev/sdc mklabel msdos
+ parted -s /dev/sdc mkpart primary ext2 0 ${usbrootsize}M 2>&1 >/dev/null
+ parted -s /dev/sdc mkpart primary ext2 ${usbrootsize}M ${homesize}M
+ parted -s /dev/sdc -- mkpart primary ext2 ${homesize}M -0
+ sfdisk --change-id /dev/sdc 3 88 2>&1 >/dev/null
+ echo "Creating filesystem on /home"
+ mke2fs -q -j /dev/sdc2
+ mount -t ext4 /dev/sdc2 /tmp/home
+ echo "Copying system to disk"
+ dd if=/dev/sdc of=/tmp/home/lemote.tar.gz bs=16384 skip=1024 count=8000 2>/dev/null
+ echo "Creating filesystem on /"
+ mke2fs -q -j /dev/sdc1
+ mount -t ext4 /dev/sdc1 /mnt
+ echo "Installing system to USB disk ..."
+ tar xzf /tmp/home/lemote.tar.gz -C /mnt
+ test -x /mnt/usr/bin/sudo && chmod u+s /mnt/usr/bin/sudo
+ test -x /mnt/usr/bin/Xorg && chmod u+s /mnt/usr/bin/Xorg
+ create_home
+ create_bootcfg
+ create_usb_fstab
+ umount /mnt
+ umount /tmp/home
+
+}
+
disk_install() {
- mke2fs -q -j /dev/sda1
- sync
+ size=$(parted -s /dev/sda unit mb print|awk '/Disk/ {print $3}'|sed -e "s#MB##")
+ swap=1024
+ homesize=$(($size-$rootsize-$cfgsize-$swap))
+ swapsize=$(($homesize+$swap))
+ mkdir /tmp/home
+ parted -s /dev/sda mklabel msdos
+ parted -s /dev/sda mkpart primary ext2 0 ${rootsize}M 2>&1 >/dev/null
+ parted -s /dev/sda mkpart primary ext2 ${rootsize}M ${homesize}M
+ parted -s /dev/sda mkpart primary ext2 ${homesize}M ${swapsize}M
+ parted -s /dev/sda -- mkpart primary ext2 ${swapsize}M -0
+ sfdisk --change-id /dev/sda 3 82 2>&1 >/dev/null
+ sfdisk --change-id /dev/sda 4 88 2>&1 >/dev/null
sleep 2
+ echo "Creating filesystem on /home"
+ mke2fs -q -j /dev/sda2
+ mkswap /dev/sda3
+ mount -t ext4 /dev/sda2 /tmp/home
+ echo "Copying system to disk"
+ dd if=/dev/sdc of=/tmp/home/lemote.tar.gz bs=16384 skip=1024 count=8000 2>/dev/null
+ mke2fs -q -j /dev/sda1
mount -t ext4 /dev/sda1 /mnt
- tar xzvf /lemote-yeelong-eglibc-archive+kernel.tar.gz -C /mnt
+ echo "Installing system to hard disk ..."
+ tar xzf /tmp/home/lemote.tar.gz -C /mnt
test -x /mnt/usr/bin/sudo && chmod u+s /mnt/usr/bin/sudo
test -x /mnt/usr/bin/Xorg && chmod u+s /mnt/usr/bin/Xorg
+ create_home
create_bootcfg
+ create_fstab
umount /mnt
+ umount /tmp/home
}
@@ -47,15 +128,18 @@ echo " |_| "
echo ""
# settle down, after module load
sleep 2
-echo "Should I install OpenADK to disk (y/n)"
+echo "Should I install OpenADK to disk (d) or usb disk (u) or do nothing (any key)"
read answer
-if [ "$answer" = "y" ];then
+if [ "$answer" = "d" ];then
disk_install
fi
+if [ "$answer" = "u" ];then
+ usb_install
+fi
echo "Should I reboot now (y/n)"
read answer
if [ "$answer" = "y" ];then
- reboot
+ /bin/busybox reboot -f
else
exit
fi