44 |
|
|
45 |
CONFMODS="${MODULES}" |
CONFMODS="${MODULES}" |
46 |
MODULES="" |
MODULES="" |
47 |
|
INITEXEC="/sbin/init" |
48 |
|
|
49 |
compress=1 |
compress=1 |
50 |
allowmissing="" |
allowmissing="" |
77 |
echo " [--image-version] [--force-scsi-probe | --omit-raid-modules]" |
echo " [--image-version] [--force-scsi-probe | --omit-raid-modules]" |
78 |
echo " [--with=<module>] [--force-lvm-probe | --omit-lvm-modules]" |
echo " [--with=<module>] [--force-lvm-probe | --omit-lvm-modules]" |
79 |
echo " [--builtin=<module>] [--initramfs | --loopback] [--no-strip]" |
echo " [--builtin=<module>] [--initramfs | --loopback] [--no-strip]" |
80 |
echo " [--fstab=<fstab>] [--nocompress] <initrd-image> <kernel-version>" |
echo " [--fstab=<fstab>] [--nocompress] [--initexec=<init>]" |
81 |
|
echo " <initrd-image> <kernel-version>" |
82 |
echo |
echo |
83 |
echo " (ex: $(basename $0) /boot/initrd-2.2.5-15.img 2.2.5-15)" |
echo " (ex: $(basename $0) /boot/initrd-2.2.5-15.img 2.2.5-15)" |
84 |
|
|
417 |
--initramfs) IMAGE_TYPE=initramfs ;; |
--initramfs) IMAGE_TYPE=initramfs ;; |
418 |
--loopback) IMAGE_TYPE=loopback ;; |
--loopback) IMAGE_TYPE=loopback ;; |
419 |
--no-strip) NOSTRIP=true ;; |
--no-strip) NOSTRIP=true ;; |
420 |
|
--initexec*) |
421 |
|
if echo $1 | grep -q '=' ; then |
422 |
|
INITEXEC=$(echo $1 | sed 's/^--initexec=//') |
423 |
|
else |
424 |
|
INITEXEC=$2 |
425 |
|
shift |
426 |
|
fi |
427 |
|
;; |
428 |
*) |
*) |
429 |
if [ -z "${target}" ] |
if [ -z "${target}" ] |
430 |
then |
then |
846 |
done |
done |
847 |
fi |
fi |
848 |
|
|
849 |
|
# get the right initexec |
850 |
|
add_initrd "INITEXEC=\"${INITEXEC}\"" |
851 |
|
# support init=* from cmdline |
852 |
|
add_initrd 'for i in $(cat /proc/cmdline); do if [[ ${i} = init=* ]]; then INITEXEC=${i/init=}; fi; done' |
853 |
|
|
854 |
add_initrd 'echo "-- Mounting sysroot ..."' |
add_initrd 'echo "-- Mounting sysroot ..."' |
855 |
add_initrd '. /etc/rootdev' |
add_initrd '. /etc/rootdev' |
856 |
add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab' |
add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab' |
862 |
# de-silencio |
# de-silencio |
863 |
add_initrd 'echo 3 > /proc/sys/kernel/printk' |
add_initrd 'echo 3 > /proc/sys/kernel/printk' |
864 |
|
|
865 |
|
add_initrd 'BREAK_ENABLED=no' |
866 |
|
add_initrd 'for i in $(cat /proc/cmdline); do if [[ ${i} = break ]]; then BREAK_ENABLED=yes; fi; done' |
867 |
|
add_initrd 'if [[ ${BREAK_ENABLED} = yes ]]; then echo "-- Break requested, type 'exit' to resume operation ..."; ash; fi' |
868 |
|
|
869 |
add_initrd 'echo "-- Switching to real sysroot ..."' |
add_initrd 'echo "-- Switching to real sysroot ..."' |
870 |
add_initrd 'umount /dev' |
add_initrd 'umount /dev' |
871 |
add_initrd 'umount /sys' |
add_initrd 'umount /sys' |
872 |
add_initrd 'umount /proc' |
add_initrd 'umount /proc' |
873 |
|
|
874 |
[[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot /sbin/init $@ </sysroot/dev/console >/sysroot/dev/console' |
[[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot ${INITEXEC} $@ </sysroot/dev/console >/sysroot/dev/console' |
875 |
if [[ ${IMAGE_TYPE} = loopback ]] |
if [[ ${IMAGE_TYPE} = loopback ]] |
876 |
then |
then |
877 |
add_initrd 'cd /sysroot' |
add_initrd 'cd /sysroot' |
878 |
add_initrd 'pivot_root . initrd' |
add_initrd 'pivot_root . initrd' |
879 |
add_initrd "exec /sbin/chroot . sh -c 'umount -n /initrd >/dev/null 2>&1;exec -a init.new /sbin/init'</dev/console >/dev/console 2>&1" |
add_initrd "exec /sbin/chroot . sh -c 'umount -n /initrd >/dev/null 2>&1;exec -a init.new \${INITEXEC}'</dev/console >/dev/console 2>&1" |
880 |
fi |
fi |
881 |
|
|
882 |
chmod +x ${DEST}/init || die |
chmod +x ${DEST}/init || die |