blob: 3c24cb6a2ce59cccbe6aee9b2eb6ba797197913c (
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
#!/bin/sh
#set -x
rootsize=1024
usbrootsize=512
cfgsize=16
create_bootcfg() {
cat << FOO > /mnt/boot/boot.cfg
default 0
timeout 2
showmenu 1
title OpenADK
kernel (wd0,0)/boot/kernel
args root=/dev/sda1
title USB
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() {
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
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
}
. /etc/functions.sh
echo 0 > /proc/sys/kernel/printk
load_modules /etc/modules
for f in /etc/modules.d/*; do
[[ -e $f ]] && load_modules /etc/modules.d/*
break
done
echo " ___ _ ____ _ __ "
echo " / _ \ _ __ ___ _ __ / \ | _ \| |/ / "
echo "| | | | '_ \ / _ \ '_ \ / _ \ | | | | ' / "
echo "| |_| | |_) | __/ | | |/ ___ \| |_| | . \ "
echo " \___/| .__/ \___|_| |_/_/ \_\____/|_|\_\ "
echo " |_| "
echo ""
# settle down, after module load
sleep 2
echo "Should I install OpenADK to disk (d) or usb disk (u) or do nothing (any key)"
read answer
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
/bin/busybox reboot -f
else
exit
fi
|