if block terminator was missing.
[xdandroid:initramfs.git] / init
1 #!/bin/sh
2 echo "Welcome to Vogue Linux"
3 mkdir -m 0755 /proc
4 mount -t proc proc /proc
5 mkdir -m 0755 /sys
6 mount -t sysfs sys /sys
7
8 #Configure Devices
9 MAKEDEVS
10
11 fail() {
12     echo "Failed"
13     echo "$1"
14     exec /bin/sh
15 }
16 while [ ! -d /sys/block/mmcblk0 ] ; do
17     echo "Waiting for SD Card"
18     sleep 1
19 done
20
21 partition=mmcblk0p1
22
23 # Try unpartitioned card
24 if [ ! -d /sys/block/mmcblk0/$partition ] ; then
25     partition=mmcblk0
26 fi
27
28 mkdir -m 0777 /sdcard
29 echo "Running an fsck on the SD card"
30 dosfsck -y /dev/block/$partition
31 mount -t vfat -o fmask=0000,dmask=0000,rw,flush,noatime,nodiratime /dev/block/$partition /sdcard
32 [ $? -eq 0 ] || fail "Failed to mount the SD card. Cannot continue."
33
34 CARD_PATH=`/bin/grep -o "rel_path=.*" /proc/cmdline | /bin/sed -e "s/.*rel_path=//g" -e "s/ .*//g"`
35
36 if [ "$CARD_PATH" = "" ];then
37         CARD_PATH="andboot"
38 fi
39
40 if [ -d /sdcard/$CARD_PATH ] ; then
41         card=/sdcard/$CARD_PATH
42 else
43         card=/sdcard
44 fi
45
46 if [ -f $card/rootfs.img ] ; then
47     root="$card/rootfs.img"
48     SQUASHFS=0
49 elif [ -f $card/rootfs.sqsh ]; then
50     root="$card/rootfs.sqsh"
51     SQUASHFS=1
52 else
53         fail "Failed to find rootfs on SD Card. You need to unzip a rootfs zip file to the root of your SD card."
54 fi
55
56 mkdir -m 0755 /rfs
57 losetup /dev/block/loop2 $root
58 [ $? -eq 0 ] || fail "Failed to mount rootfs on SD Card."
59
60 if [ $SQUASHFS -eq 0 ]; then
61     e2fsck -y /dev/block/loop2
62     mount -t ext2 -o noatime,nodiratime,sync,ro /dev/block/loop2 /rfs
63     [ $? -eq 0 ] || fail "Failed to mount rootfs"
64 else
65     mount -t squashfs -o noatime,nodiratime,sync,ro /dev/block/loop2 /rfs
66     [ $? -eq 0 ] || fail "Failed to mount rootfs"
67 fi
68
69 #mkdir /rfs/dev
70 mount -t tmpfs -o size=100K tmpfs /rfs/dev
71 cp -a /dev/* /rfs/dev
72
73 echo "Cleaning up..."
74 umount -l /proc
75 umount -l /sys
76
77 echo "Switching to rootfs..."
78 exec switch_root /rfs /init