Commit 7e0419815dfaf6fe52ebf39a4c2cf740df7342dd

  • avatar
  • Bryan D. Stine (Committer)
  • Tue Aug 16 01:14:33 CEST 2011
  • avatar
  • Kevin Arima <starfox @fur…ll.org> (Author)
  • Mon Aug 15 20:55:14 CEST 2011
Ext4 (or another) filesystem /data file/partition support.

Added support for ext4 /data loopback/partition.
Added sanity checking for /data mount.
Streamlined init to have a consistent error message.
Removing message about /media on SD card.

-- Starfox
init
(32 / 31)
  
6464
6565
6666if [ $notnand = "1" ] ; then
67
68 if [ -f $card/data.gz ] ; then
69 echo "Please wait... extracting Data Image"
70 if [ -f $card/data.img ] ; then
71 rm $card/data.img
72 fi
73 gzip -df $card/data.gz
74 [ $? -eq 0 ] || fail "Failed to extract Data Image"
75 mv $card/data $card/data.img
76 echo "done"
77 fi
78
7967 if [ -d /sys/block/mmcblk0/mmcblk0p4 ] && /bin/grep -q -v no_partitions /proc/cmdline ; then
8068 echo "Using partitioned system"
8169 /bin/e2fsck -y /dev/block/mmcblk0p3
8270 mount -t ext2 -o relatime /dev/block/mmcblk0p3 /system
8371 /bin/e2fsck -y /dev/block/mmcblk0p4
84 mount -t ext2 -o relatime /dev/block/mmcblk0p4 /data
72 mount -t auto -o relatime /dev/block/mmcblk0p4 /data
73 [ $? -eq 0 ] || fail "Failed to mount /data (/dev/block/mmcblk0p4)"
8574 else
8675 echo "Using loopback filesystems"
87 if [ ! -f $card/data.img ] ; then
88 echo "Creating a new Data store"
89 dd if=/dev/zero of=$card/data.img bs=1048576 count=256
90 [ $? -eq 0 ] || fail "Failed to allocate the storage"
91 mke2fs -F $card/data.img
92 [ $? -eq 0 ] || fail "Failed to format the storage"
93 fi
9476
95 losetup /dev/block/loop0 $card/data.img
96 [ $? -eq 0 ] || fail "Failed to find data.img on SD Card"
97 e2fsck -y /dev/block/loop0
98 mount -t ext2 -o relatime /dev/block/loop0 /data
99
10077 losetup /dev/block/loop1 $card/system.ext2
101 [ $? -eq 0 ] || fail "Failed to reach system.ext2 on SD Card"
78 [ $? -eq 0 ] || fail "Failed to find system.ext2 on SD Card"
10279 e2fsck -y /dev/block/loop1
10380 mount -t ext2 -o relatime /dev/block/loop1 /system
104 [ $? -eq 0 ] || fail "Failed to mount /system"
81 [ $? -eq 0 ] || fail "Failed to mount /system"
82
83 dataimg=data.img
84 mkfs="-t ext2"
85 if /bin/grep -q ext4dev /proc/cmdline ; then
86 dataimg=data.ext4
87 mkfs="-t ext4 -E test_fs -O ^huge_file"
88 fi
89
90 if [ -f $card/data.gz ] ; then
91 echo "Please wait... extracting $dataimg"
92 gzip -cdf $card/data.gz > $card/$dataimg
93 [ $? -eq 0 ] || fail "Failed to extract $dataimg"
94 rm $card/data.gz
95 elif [ ! -f $card/$dataimg ] ; then
96 echo "Creating a new $dataimg"
97 dd if=/dev/zero of=$card/$dataimg bs=1048576 count=256
98 [ $? -eq 0 ] || fail "Failed to allocate $dataimg"
99 mkdir -p /etc/ ; touch /etc/mtab
100 mke2fs $mkfs -F $card/$dataimg
101 [ $? -eq 0 ] || fail "Failed to format $dataimg"
102 fi
103
104 losetup /dev/block/loop0 $card/$dataimg
105 [ $? -eq 0 ] || fail "Failed to find $dataimg on SD Card"
106 e2fsck -y /dev/block/loop0
107 mount -t auto -o relatime /dev/block/loop0 /data
108 [ $? -eq 0 ] || fail "Failed to mount /data ($card/$datamimg)"
109
105110 fi
106111fi
107112
135135 fi
136136 (cd $card/AndroidApps; for i in *; do if [ ! -f "/data/app/$i" -o "$i" -nt "/data/app/$i" ]; then \
137137 cp "$i" /data/app; fi done)
138fi
139
140if [ ! -d $card/media ] ; then
141 echo You have no media folder, please extract the resources to your SD card android folder
142138fi
143139
144140cp -ar /init.etc/* /system/etc