123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #!/bin/sh
- mount -t proc proc /proc
- ROOT=
- NFSROOT=
- export init=/sbin/init
- for x in $(cat /proc/cmdline); do
- case $x in
- init=*)
- init=${x#init=}
- ;;
- root=*)
- ROOT=${x#root=}
- ;;
- nfsroot=*)
- NFSROOT=${x#nfsroot=}
- ;;
- esac
- done
- mount -t sysfs sysfs /sys
- mount -t devtmpfs -o nosuid,mode=0755 devtmpfs /dev
- mkdir -p /dev/pts
- mkdir -p /dev/shm
- mount -t devpts devpts /dev/pts
- mount -t tmpfs tmpfs /dev/shm
- mount -t tmpfs tmpfs /tmp
- mount -t tmpfs tmpfs /run
- if [ "x${ROOT}" = "x" ]; then
- exec /sbin/init
- fi
- export ROOT
- mkdir /rootfs
- if [ $ROOT == "/dev/nfs" ] && [ "x${NFSROOT}" != "x" ];then
- /sbin/ifup -a
- mount -t nfs -o nolock $NFSROOT /rootfs
- else
- cnt=0
- while [ $cnt -lt 100 ]
- do
- if [ ! -e $ROOT ];then
- sleep 0.1
- else
- echo "find $ROOT: $cnt"
- break
- fi
- let cnt++
- done
- mount $ROOT /rootfs/
- if [ ! -e /rootfs/dev/console ]; then
- /bin/mknod /rootfs/dev/console c 5 1
- fi
- if [ ! -e /rootfs/dev/null ]; then
- /bin/mknod /rootfs/dev/null c 1 3
- fi
- fi
- mount -n -o move /proc /rootfs/proc
- mount -n -o move /sys /rootfs/sys
- mount -n -o move /run /rootfs/run
- mount -n -o move /tmp /rootfs/tmp
- mount -n -o move /dev /rootfs/dev
- mount -n -o move /dev/shm /rootfs/dev/shm
- mount -n -o move /dev/pts /rootfs/dev/pts
- exec run-init /rootfs "${init}" "$@" <"/rootfs/dev/console" >"/rootfs/dev/console" 2>&1
- echo "Something went badly wrong in the initramfs."
|