rev |
line source |
slaxemulator@0
|
1 #!/bin/ash
|
slaxemulator@0
|
2 # Initial script for Linux Live operating system
|
slaxemulator@0
|
3 # Author: Tomas M <http://www.linux-live.org/>
|
slaxemulator@0
|
4
|
slaxemulator@0
|
5 export PATH=.:/:/usr/sbin:/usr/bin:/sbin:/bin
|
slaxemulator@0
|
6
|
slaxemulator@0
|
7 mount -n -t proc proc /proc
|
slaxemulator@0
|
8 mount -n -t sysfs sysfs /sys
|
slaxemulator@0
|
9 #mount -n -o remount,rw / # for the case we forgot rw boot option
|
slaxemulator@0
|
10 ln -sf /proc/mounts /etc/mtab # this allows us to use umount -a
|
slaxemulator@0
|
11
|
slaxemulator@0
|
12 . /liblinuxlive # it requires proc to be mounted
|
slaxemulator@0
|
13
|
slaxemulator@0
|
14 # Don't print kernel messages to konsole now.
|
slaxemulator@0
|
15 # Syslog will reset printk settings, no need to remember it here anymore.
|
slaxemulator@0
|
16 echo "0" >/proc/sys/kernel/printk
|
slaxemulator@0
|
17
|
slaxemulator@0
|
18 # Load essential drivers, like CDROM drivers, aufs/squashfs etc,
|
slaxemulator@0
|
19 # use mdev to create /dev/ devices and setup it as a hotplug-handler
|
slaxemulator@0
|
20 modprobe_essential_modules
|
slaxemulator@0
|
21
|
slaxemulator@0
|
22 # /usr and some drivers are compressed in initrd
|
slaxemulator@0
|
23 # so it must be mounted from .lzm files
|
slaxemulator@0
|
24 #mount_initrd_loops
|
slaxemulator@0
|
25
|
slaxemulator@0
|
26 # start hotplugging before hw drivers load
|
slaxemulator@0
|
27 #mdev_start_hotplug
|
slaxemulator@0
|
28
|
slaxemulator@0
|
29 # Then load drivers for data storage and input devices
|
slaxemulator@0
|
30 modprobe_usb_modules
|
slaxemulator@0
|
31 modprobe_pcmcia_modules
|
slaxemulator@0
|
32
|
slaxemulator@0
|
33 debug_shell
|
slaxemulator@0
|
34
|
slaxemulator@0
|
35 # make sure ext3 partitions are not mounted using ext2 driver,
|
slaxemulator@0
|
36 # and vfat partitions are not mounted using msdos driver
|
slaxemulator@0
|
37 echo -e "ext4\next3\next2\nvfat\n*" >/etc/filesystems
|
slaxemulator@0
|
38
|
slaxemulator@0
|
39 mkdir -p $UNION
|
slaxemulator@0
|
40 mkdir -p $MEMORY
|
slaxemulator@0
|
41
|
slaxemulator@0
|
42 debug_shell
|
slaxemulator@0
|
43
|
slaxemulator@0
|
44 # Find livecd data directory by searching for livecd.sgn file
|
slaxemulator@0
|
45 SGN=$(cmdline_value sgnfile)
|
slaxemulator@0
|
46 if [ "$SGN" = "" ]; then SGN=livecd.sgn; fi
|
slaxemulator@0
|
47 echolog "looking for '$LIVECDNAME' data directory (searching for $SGN file)"
|
slaxemulator@0
|
48
|
slaxemulator@0
|
49 # First, try from= boot argument, if given
|
slaxemulator@0
|
50 DATAFROM=$(cmdline_value from)
|
slaxemulator@0
|
51
|
slaxemulator@0
|
52 # Boot directly from iso
|
slaxemulator@0
|
53 FINDISOVAR=$(cmdline_value findiso)
|
slaxemulator@0
|
54
|
slaxemulator@0
|
55 # If ip= parameter is present, assume we're booted over PXE
|
slaxemulator@0
|
56 # In that case, we have to initialize network very soon (now)
|
slaxemulator@0
|
57 # ip=<client-ip>:<boot-server-ip>:<gw-ip>:<netmask>
|
slaxemulator@0
|
58 # Nevertheless, from= parameter won't be overwritten by this
|
slaxemulator@0
|
59 IP=$(cmdline_value ip)
|
slaxemulator@0
|
60 if [ "$IP" != "" -a "$DATAFROM" = "" ]; then
|
slaxemulator@0
|
61 DATAFROM="http://"$(echo $IP | cut -d : -f 2)
|
slaxemulator@0
|
62 fi
|
slaxemulator@0
|
63
|
slaxemulator@0
|
64 if [ "$FINDISOVAR" != "" -a "$DATAFROM" = "" ]; then
|
slaxemulator@0
|
65 FINDISO=$(find_in_computer $FINDISOVAR)
|
slaxemulator@0
|
66 DATAFROM="$FINDISO"
|
slaxemulator@0
|
67 echolog "$FINDISO found."
|
slaxemulator@0
|
68 fi
|
slaxemulator@0
|
69
|
slaxemulator@0
|
70 if [ "$DATAFROM" ]; then
|
slaxemulator@0
|
71 if [ "$(echo $DATAFROM | cut -b 1-7 | tr "[:upper:]" "[:lower:]")" = "http://" ]; then
|
slaxemulator@0
|
72 init_dhcp $(modprobe_network_modules)
|
slaxemulator@0
|
73 mount_httpfs $DATAFROM $MOUNTDIR/httpfs
|
slaxemulator@0
|
74 # if mountdir/httpfs/livecdname is found, set DATA=, else umount httpfs
|
slaxemulator@0
|
75 # - currently this part works even without the above mentioned, but livecd.sgn is required now untill it's uncommented
|
slaxemulator@0
|
76 elif [ "$FINDISO" ]; then
|
slaxemulator@0
|
77 mount_device $DATAFROM $FINDISOMNT
|
slaxemulator@0
|
78 echolog "$FINDISO mounted."
|
slaxemulator@0
|
79 else
|
slaxemulator@0
|
80 DATAFROM=$(find_in_computer $DATAFROM)
|
slaxemulator@0
|
81 if [ "$DATAFROM" ]; then
|
slaxemulator@0
|
82 mount_device $DATAFROM $LOOPMOUNT # mount again, it may be loop device
|
slaxemulator@0
|
83 if [ $? -eq 0 -a "$(find_modules $LOOPMOUNT/$LIVECDNAME)" != "" ]; then
|
slaxemulator@0
|
84 echolog "found in $DATAFROM"
|
slaxemulator@0
|
85 DATA=$LOOPMOUNT/$LIVECDNAME
|
slaxemulator@0
|
86 else
|
slaxemulator@0
|
87 fumount $LOOPMOUNT
|
slaxemulator@0
|
88 fumount $MOUNTDIR/*
|
slaxemulator@0
|
89 fi
|
slaxemulator@0
|
90 fi
|
slaxemulator@0
|
91 fi
|
slaxemulator@0
|
92 fi
|
slaxemulator@0
|
93
|
slaxemulator@0
|
94 if [ "$DATA" = "" ]; then
|
slaxemulator@0
|
95 # from= is not used or it didn't contain valid data
|
slaxemulator@0
|
96 DATA=$(find_in_computer $LIVECDNAME/$SGN)
|
slaxemulator@0
|
97 DATA=$(dirname $DATA 2>/dev/null)
|
slaxemulator@0
|
98 fi
|
slaxemulator@0
|
99
|
slaxemulator@0
|
100 if [ "$DATA" = "" ]; then fatal \
|
slaxemulator@0
|
101 "$LIVECDNAME data not found.
|
slaxemulator@0
|
102 You are maybe using an unsupported boot device (eg. SCSI or old PCMCIA).
|
slaxemulator@0
|
103 Workaround: Copy the directory $LIVECDNAME from your boot device to an IDE/SATA
|
slaxemulator@0
|
104 disk, eg. to /mnt/hda1/$LIVECDNAME or C:\\$LIVECDNAME. Then try to boot again."
|
slaxemulator@0
|
105 fi
|
slaxemulator@0
|
106
|
slaxemulator@0
|
107 echolog "Using $LIVECDNAME data from $DATA"
|
slaxemulator@0
|
108
|
slaxemulator@0
|
109 debug_shell
|
slaxemulator@0
|
110
|
slaxemulator@0
|
111 echolog "Setting up directory for changes ..."
|
slaxemulator@0
|
112 CHANGESVAL=$(cmdline_value changes)
|
slaxemulator@0
|
113
|
slaxemulator@0
|
114 if [ "$CHANGESVAL" ]; then
|
slaxemulator@0
|
115 CHANGESMNT=$(find_in_computer $CHANGESVAL)
|
slaxemulator@0
|
116 echolog $CHANGESMNT
|
slaxemulator@0
|
117 fi
|
slaxemulator@0
|
118
|
slaxemulator@0
|
119 debug_shell
|
slaxemulator@0
|
120
|
slaxemulator@0
|
121 mount_device "$CHANGESMNT" $MEMORY # removes $MEMORY if CHANGESMNT is wrong
|
slaxemulator@0
|
122
|
slaxemulator@0
|
123 # test if the filesystem is writable so changes can be stored to it
|
slaxemulator@0
|
124 touch $MEMORY/empty 2>/dev/null && \
|
slaxemulator@0
|
125 rm -f $MEMORY/empty 2>/dev/null
|
slaxemulator@0
|
126
|
slaxemulator@0
|
127 # if changes can't be mounted or the filesystem is not writable,
|
slaxemulator@0
|
128 # fallback to the default: tmpfs
|
slaxemulator@0
|
129 if [ $? -ne 0 ]; then
|
slaxemulator@0
|
130 echolog "Changes not used or not writable, using memory only"
|
slaxemulator@0
|
131 fumount $MEMORY
|
slaxemulator@0
|
132 mkdir -p $MEMORY # mount_device might removed it
|
slaxemulator@0
|
133
|
slaxemulator@0
|
134 RAMSIZE=$(cmdline_value ramsize)
|
slaxemulator@0
|
135 if [ "$RAMSIZE" = "" ]; then RAMSIZE="60%"; fi
|
slaxemulator@0
|
136 mount -t tmpfs -o "size=$RAMSIZE" tmpfs $MEMORY
|
slaxemulator@0
|
137 XINO=$MEMORY
|
slaxemulator@0
|
138 else
|
slaxemulator@0
|
139 # So it is writable, we will keep the filesystem mounted.
|
slaxemulator@0
|
140 # Check if it supports links and chmod.
|
slaxemulator@0
|
141 # If not, overmount CHANGES using posixovl
|
slaxemulator@0
|
142 echolog "Testing the filesystem for posix compatibility ..."
|
slaxemulator@0
|
143 touch $MEMORY/.empty1 && \
|
slaxemulator@0
|
144 ln -sf $MEMORY/.empty1 $MEMORY/.empty2 2>/dev/null && \
|
slaxemulator@0
|
145 chmod +x $MEMORY/.empty1 2>/dev/null && \
|
slaxemulator@0
|
146 test -x $MEMORY/.empty1 && \
|
slaxemulator@0
|
147 chmod -x $MEMORY/.empty1 2>/dev/null && \
|
slaxemulator@0
|
148 test ! -x $MEMORY/.empty1 && \
|
slaxemulator@0
|
149 rm $MEMORY/.empty1 $MEMORY/.empty2 2>/dev/null
|
slaxemulator@0
|
150
|
slaxemulator@0
|
151 if [ $? -ne 0 ]; then
|
slaxemulator@0
|
152 echolog "Not compatible - starting posixovl"
|
slaxemulator@0
|
153 rm $MEMORY/.empty1 $MEMORY/.empty2 2>/dev/null
|
slaxemulator@0
|
154 mkdir -p $CHANGES
|
slaxemulator@0
|
155 posixovl -F $CHANGES -- -o attr_timeout=300,entry_timeout=300,negative_timeout=300,kernel_cache,allow_other
|
slaxemulator@0
|
156 find $CHANGES >/dev/null 2>&1 # cache everything now
|
slaxemulator@0
|
157 fi
|
slaxemulator@0
|
158 fi
|
slaxemulator@0
|
159
|
slaxemulator@0
|
160 # $UNION will be used as a root directory, livecd modules will be added soon
|
slaxemulator@0
|
161 echolog "Setup union directory (using aufs)"
|
slaxemulator@0
|
162
|
slaxemulator@0
|
163 mkdir -p $CHANGES
|
slaxemulator@0
|
164 mkdir -p $IMAGES
|
slaxemulator@0
|
165 mount -n -t tmpfs tmpfs $IMAGES
|
slaxemulator@0
|
166
|
slaxemulator@0
|
167 debug_shell
|
slaxemulator@0
|
168
|
slaxemulator@0
|
169 # store the xino file in memory in all cases, it's faster and safer
|
slaxemulator@0
|
170 if [ "$XINO" != "$MEMORY" ]; then
|
slaxemulator@0
|
171 mkdir -p $XINO
|
slaxemulator@0
|
172 mount -n -t tmpfs tmpfs $XINO
|
slaxemulator@0
|
173 fi
|
slaxemulator@0
|
174
|
slaxemulator@0
|
175 # mount aufs using the writable branch as the first one (leftmost/topmost)
|
slaxemulator@0
|
176 mount -t aufs -o nowarn_perm,xino=$XINO/.aufs.xino,br:$CHANGES=rw aufs $UNION
|
slaxemulator@0
|
177 if [ $? -ne 0 ]; then dmesg | tail -n 1; fatal "can't setup union (aufs)"; fi
|
slaxemulator@0
|
178
|
slaxemulator@0
|
179 debug_shell
|
slaxemulator@0
|
180
|
slaxemulator@13
|
181 # setup initramfs if it exist
|
slaxemulator@22
|
182 if [ -d /initramfs ]; then
|
slaxemulator@13
|
183 echolog "Setup initramfs for first module..."
|
slaxemulator@22
|
184 mount -n -o remount,add:1:/initramfs=ro aufs $UNION
|
slaxemulator@13
|
185 fi
|
slaxemulator@13
|
186
|
slaxemulator@13
|
187 debug_shell
|
slaxemulator@13
|
188
|
slaxemulator@0
|
189 # If toram or copy2ram boot parameter is present, copy all fs modules to RAM.
|
slaxemulator@0
|
190 # (skip modules from /optional/ which are not listed in load= boot option)
|
slaxemulator@0
|
191 # Finaly modify DATA variable so it will point to correct directory
|
slaxemulator@0
|
192 if [ "$(cmdline_parameter toram)" != "" -o "$(cmdline_parameter copy2ram)" != "" ]; then
|
slaxemulator@0
|
193 echolog "copying $LIVECDNAME data to RAM, this may take some time..."
|
slaxemulator@0
|
194 mkdir -p $COPY2RAM
|
slaxemulator@0
|
195
|
slaxemulator@0
|
196 # make sure it's in RAM even with changes= parameter
|
slaxemulator@0
|
197 if [ "$CHANGESMNT" ]; then mount -t tmpfs -o "size=$RAMSIZE" tmpfs $COPY2RAM; fi
|
slaxemulator@0
|
198 copy_to_ram $DATA $COPY2RAM
|
slaxemulator@0
|
199
|
slaxemulator@0
|
200 cd_autoeject 1
|
slaxemulator@0
|
201 fumount $DATA
|
slaxemulator@0
|
202 fumount $MOUNTDIR/*
|
slaxemulator@0
|
203 rmdir $MOUNTDIR/* 2>/dev/null # mounted device names are empty, remove them
|
slaxemulator@0
|
204 DATA=$COPY2RAM
|
slaxemulator@0
|
205 cd_autoeject 0
|
slaxemulator@0
|
206 fi
|
slaxemulator@0
|
207
|
slaxemulator@0
|
208 debug_shell
|
slaxemulator@0
|
209
|
slaxemulator@0
|
210 MODPATH=$(cmdline_value modpath)
|
slaxemulator@0
|
211 if [ "$MODPATH" != "" ]; then
|
slaxemulator@0
|
212 MODPATH=$(find_in_computer $MODPATH)
|
slaxemulator@0
|
213 if [ $FINDISOVAR ]; then
|
slaxemulator@0
|
214 mount_device $MODPATH $FINDISOMNT/$LIVECDNAME/tmp rbind
|
slaxemulator@0
|
215 else
|
slaxemulator@0
|
216 mount_device $MODPATH $DATA/tmp rbind
|
slaxemulator@0
|
217 fi
|
slaxemulator@0
|
218 fi
|
slaxemulator@0
|
219
|
slaxemulator@0
|
220 debug_shell
|
slaxemulator@0
|
221
|
slaxemulator@0
|
222 # DATA contains path to the base directory of all fs modules which need
|
slaxemulator@0
|
223 # to be mounted and inserted into live filesystem. Do it now.
|
slaxemulator@0
|
224 echolog "Loading modules:"
|
slaxemulator@0
|
225 union_insert_modules $UNION $DATA $IMAGES
|
slaxemulator@0
|
226
|
slaxemulator@0
|
227 # the $MEMORY directory can contain $MEMORY/modules too
|
slaxemulator@0
|
228 # in the case if changes= boot argument is used. If not, it doesn't hurt
|
slaxemulator@0
|
229 union_insert_modules $UNION $MEMORY $IMAGES
|
slaxemulator@0
|
230
|
slaxemulator@0
|
231 debug_shell
|
slaxemulator@0
|
232
|
slaxemulator@0
|
233 ROOTCOPY=$(cmdline_value rootcopy)
|
slaxemulator@0
|
234 if [ $(cmdline_parameter norootcopy) ]; then
|
slaxemulator@0
|
235 echolog "Not using rootcopy"
|
slaxemulator@0
|
236 elif [ "$ROOTCOPY" ]; then
|
slaxemulator@0
|
237 echolog "Mounting content of rootcopy directory"
|
slaxemulator@0
|
238 ROOTCOPY=$(find_in_computer $ROOTCOPY)
|
slaxemulator@0
|
239 mount_device $ROOTCOPY $DATA/rootcopy rbind
|
slaxemulator@0
|
240 echolog "Copying content of rootcopy directory"
|
slaxemulator@0
|
241 cp -af $DATA/rootcopy/* $UNION 2>/dev/null # may be empty
|
slaxemulator@0
|
242 else
|
slaxemulator@0
|
243 echolog "Copying content of rootcopy directory"
|
slaxemulator@0
|
244 cp -af $DATA/rootcopy/* $UNION 2>/dev/null # may be empty
|
slaxemulator@0
|
245 fi
|
slaxemulator@0
|
246
|
slaxemulator@0
|
247 # TODO: if copy2ram is used, there is no need to preserve the original in memory anymore
|
slaxemulator@0
|
248 #if [ "$DATA" = "$COPY2RAM" ]; then
|
slaxemulator@0
|
249 # rm from memory once ??
|
slaxemulator@0
|
250 #fi
|
slaxemulator@0
|
251
|
slaxemulator@0
|
252 echolog "Copying liblinuxlive library to union"
|
slaxemulator@0
|
253 cp -af /liblinuxlive $UNION/usr/lib/
|
slaxemulator@0
|
254
|
slaxemulator@0
|
255 debug_shell
|
slaxemulator@0
|
256
|
slaxemulator@0
|
257 echolog "Recreating /etc/fstab and /mnt directories"
|
slaxemulator@0
|
258 touch $UNION/etc/fstab
|
slaxemulator@0
|
259 rmdir $UNION/mnt/* 2>/dev/null
|
slaxemulator@30
|
260 #fstab_update $UNION
|
slaxemulator@30
|
261 fstab_clean $UNION
|
slaxemulator@0
|
262
|
slaxemulator@0
|
263 # everything is ready now, so we may unload unused kernel modules
|
slaxemulator@0
|
264 # and do some cleanup, unmount few things which are no longer needed.
|
slaxemulator@0
|
265 #rmmod_unused_modules
|
slaxemulator@0
|
266 #fumount /usr
|
slaxemulator@0
|
267 #fumount /sys
|
slaxemulator@0
|
268
|
slaxemulator@0
|
269 # More likely these directories aren't there.
|
slaxemulator@0
|
270 # Even if they are, this won't hurt.
|
slaxemulator@0
|
271 mkdir -p $UNION/boot
|
slaxemulator@0
|
272 mkdir -p $UNION/proc
|
slaxemulator@0
|
273 mkdir -p $UNION/sys
|
slaxemulator@0
|
274 mkdir -p $UNION/dev
|
slaxemulator@0
|
275 mkdir -p $UNION/tmp
|
slaxemulator@0
|
276 chmod 1777 $UNION/tmp
|
slaxemulator@0
|
277
|
slaxemulator@0
|
278 # Boot will contain whatever was in ./boot directory in the bootable media
|
slaxemulator@0
|
279 # Error output goes to null, as nothing is mounted with copy2ram
|
slaxemulator@0
|
280 #mount -n -o rbind $(dirname $DATA)/boot $UNION/boot 2>/dev/null
|
slaxemulator@30
|
281 if [ -d $(dirname $DATA)/boot/packages ]; then
|
slaxemulator@30
|
282 echolog "Setup repo for mirror iso..."
|
slaxemulator@30
|
283 mount -n -o remount,add:1:/$(dirname $DATA)=ro aufs $UNION
|
slaxemulator@30
|
284 fi
|
slaxemulator@0
|
285
|
slaxemulator@0
|
286 # Union contains all the files and directories unioned from all modules.
|
slaxemulator@0
|
287 # Change root directory to it, and move initrd's root to /mnt/live/initramdisk
|
slaxemulator@0
|
288 # Finaly execute /sbin/init to start the distribution.
|
slaxemulator@0
|
289 echolog "changing root directory..."
|
slaxemulator@0
|
290
|
slaxemulator@0
|
291 cd $UNION
|
slaxemulator@0
|
292 mkdir -p $INITRAMDISK
|
slaxemulator@0
|
293
|
slaxemulator@0
|
294 # Copy all dev files (found by mdev) to unioned dev directory
|
slaxemulator@0
|
295 # so at least disk devices exist (your Linux may need them).
|
slaxemulator@0
|
296 # Two exceptions, do not copy pty* and tty* devs.
|
slaxemulator@0
|
297 if [ "$(cmdline_parameter nohotplug)" ]; then
|
slaxemulator@0
|
298 cp -fdR /dev . 2>/dev/null
|
slaxemulator@0
|
299 #else
|
slaxemulator@0
|
300 #mount -n -o move /dev dev
|
slaxemulator@0
|
301 fi
|
slaxemulator@0
|
302
|
slaxemulator@0
|
303 #mount -n -o move /proc proc
|
slaxemulator@0
|
304 #mount -n -o move /sys sys
|
slaxemulator@0
|
305 fumount /sys
|
slaxemulator@0
|
306
|
slaxemulator@0
|
307 if [ ! -e /dev/console ]; then mknod /dev/console c 5 1; fi
|
slaxemulator@0
|
308
|
slaxemulator@0
|
309 # find chroot and init
|
slaxemulator@0
|
310 if [ -x bin/chroot ]; then CHROOT=bin/chroot; fi
|
slaxemulator@0
|
311 if [ -x sbin/chroot ]; then CHROOT=sbin/chroot; fi
|
slaxemulator@0
|
312 if [ -x usr/bin/chroot ]; then CHROOT=usr/bin/chroot; fi
|
slaxemulator@0
|
313 if [ -x usr/sbin/chroot ]; then CHROOT=usr/sbin/chroot; fi
|
slaxemulator@0
|
314 if [ "$CHROOT" = "" ]; then fatal "Can't find executable chroot command"; fi
|
slaxemulator@0
|
315
|
slaxemulator@0
|
316 if [ -x bin/init ]; then INIT=bin/init; fi
|
slaxemulator@0
|
317 if [ -x sbin/init ]; then INIT=sbin/init; fi
|
slaxemulator@0
|
318 if [ "$INIT" = "" ]; then fatal "Can't find executable init command"; fi
|
slaxemulator@0
|
319
|
slaxemulator@0
|
320 # time to end Linux Live scripts and start the distribution itself,
|
slaxemulator@0
|
321 # using /sbin/init or whatever was found.
|
slaxemulator@0
|
322
|
slaxemulator@0
|
323 debug_shell
|
slaxemulator@0
|
324
|
slaxemulator@0
|
325 fumount /proc
|
slaxemulator@0
|
326
|
slaxemulator@0
|
327 mount -n -o remount,ro aufs .
|
slaxemulator@0
|
328
|
slaxemulator@0
|
329 # We will copy init from the distro to initrd (there should be 2MB free)
|
slaxemulator@0
|
330 # This allows us to use the cleanup script during reboot, as init will be
|
slaxemulator@0
|
331 # started from memory and not from the union and /union will not be busy.
|
slaxemulator@0
|
332
|
slaxemulator@0
|
333 cp -af $INIT /bin >/dev/null 2>&1
|
slaxemulator@0
|
334 if [ $? -eq 0 ]; then
|
slaxemulator@0
|
335 pivot_root . $INITRAMDISK
|
slaxemulator@0
|
336 exec $CHROOT . $INITRAMDISK/bin/init <dev/console >dev/console 2>&1
|
slaxemulator@0
|
337 else # If copying fails, start init directly.
|
slaxemulator@0
|
338 pivot_root . $INITRAMDISK
|
slaxemulator@0
|
339 exec $CHROOT . $INIT <dev/console >dev/console 2>&1
|
slaxemulator@0
|
340 fi
|
slaxemulator@0
|
341
|
slaxemulator@0
|
342 header "!!ERROR!!"
|
slaxemulator@0
|
343 fatal "You are not supposed to be here, something went wrong!"
|