isendrak

mkinitramfs.sh

Nov 26th, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.22 KB | None | 0 0
  1. #!/bin/bash
  2. set -e
  3. mkdir -vp initramfs/{bin,etc,dev,sys,proc,root,tmp,usr,var,mnt,home}
  4. mkdir -vp initramfs/etc/init.d
  5. test -L initramfs/sbin || ln -vfs bin initramfs/sbin
  6. test -f initramfs/bin/busybox || wget -O initramfs/bin/busybox https://busybox.net/downloads/binaries/1.21.1/busybox-x86_64
  7. chmod +x initramfs/bin/busybox
  8. for symlink in \[ \[\[ adjtimex arp arping ash awk base64 basename beep blkid blockdev bootchartd bunzip2 bzcat bzip2 brctl cal cat catv chat chattr chgrp chmod chown chpasswd chpst chrt chvt cksum clear cmp comm conspy cp cpio crond crontab cryptpw cttyhack cut date dc dd deallocvt depmod devmem df dhcprelay diff dirname dmesg dnsd dnsdomainname dos2unix du dumpkmap dumpleases echo ed egrep eject env envdir envuidgid ether-wake expand expr fakeidentd false fbset fbsplash fdflush fdformat fdisk fgconsole fgrep find findfs flock fold free freeramdisk fsck fsck.minix fsync ftpget ftpput fuser getopt grep groups gunzip gzip hd hdparm head hexdump hostid hostname hush hwclock id  install ionice iostat ipaddr ipcalc ipcrm ipcs kbd_mode kill killall killall5 klogd last less linux32 linux64 ln loadfont loadkmap logger logname logread losetup lpd lpq lpr ls lsattr lsmod lsof lspci lsusb lzcat lzma lzop lzopcat makedevs makemime man md5sum mdev mesg microcom mkdir mkdosfs mke2fs mkfifo mkfs.ext2 mkfs.minix mkfs.vfat mknod mkpasswd mkswap modprobe mktemp modinfo more mount mountpoint mpstat mt mv nameif nanddump nandwrite nbd-client nc netstat nice nmeter nohup nslookup od openvt passwd patch pgrep pidof ping ping6 pipe_progress pkill pmap popmaildir printenv printf ps pscan pstree pwd pwdx raidautorun rdate rdev readahead readlink readprofile realpath reformime remove-shell renice reset resize rev rm rmdir rmmod route rpm rpm2cpio rtcwake run-parts runlevel runsv runsvdir rx script scriptreplay sed sendmail seq setarch setconsole setfont setkeycodes setlogcons setserial setsid setuidgid sh sha1sum sha256sum sha3sum sha512sum showkey slattach sleep smemcap softlimit sort split start-stop-daemon stat strings stty sum sv svlogd sysctl syslogd tac tail tar tcpsvd tee telnet test tftp time timeout top touch tr traceroute traceroute6 true tty ttysize tunctl udhcpc udhcpd udpsvd umount uname unexpand uniq unix2dos unlzma unlzop unxz unzip uptime users usleep uudecode uuencode vconfig vi vlock volname wall watch watchdog wc wget which who whoami whois xargs xz xzcat yes zcat zcip acpid add-shell addgroup adduser delgroup deluser chroot ftpd getty halt httpd init ifconfig ifdown ifenslave ifplugd ifup inetd insmod ip iplink iproute iprule iptunnel ntpd pivot_root poweroff powertop reboot su sulogin swapoff swapon switch_root sync telnetd tftpd login;do
  9.     test -L initramfs/bin/$symlink || ln -vfs busybox initramfs/bin/$symlink
  10. done
  11. test -L initramfs/linuxrc || ln -vfs bin/busybox initramfs/linuxrc
  12. test -L initramfs/init || ln -vfs sbin/busybox initramfs/init
  13. cat << __EOF__ > initramfs/etc/inittab
  14. ::sysinit:/etc/init.d/rcS
  15. tty1::respawn:/sbin/getty -nl /sbin/autologin 38400 tty1
  16. ::restart:/sbin/init
  17. ::ctrlaltdel:/sbin/reboot
  18. ::shutdown:/sbin/poweroff
  19. __EOF__
  20. cat << __EOF__ > initramfs/etc/init.d/rcS
  21. #!/bin/sh
  22. mount -t proc proc /proc
  23. mount -t sysfs sysfs /sys
  24. mount -t devtmpfs dev /dev
  25. mount -o remount,rw /
  26. mkdir -p /dev/pts
  27. mkdir -p /dev/shm
  28. mount -a
  29. __EOF__
  30. chmod +x initramfs/etc/init.d/rcS
  31. cat << __EOF__ > initramfs/etc/fstab
  32. proc            /proc        proc     defaults          0       0
  33. sysfs           /sys         sysfs    defaults          0       0
  34. dev             /dev         devtmpfs defaults          0       0
  35. devpts          /dev/pts     devpts   defaults          0       0
  36. tmpfs           /dev/shm     tmpfs    defaults          0       0
  37. tmpfs           /tmp         tmpfs    defaults          0       0
  38. __EOF__
  39. cat << __EOF__ > initramfs/sbin/autologin-
  40. #!/bin/sh
  41. busybox login -f root
  42. __EOF__
  43. chmod +x initramfs/sbin/autologin
  44. cat << __EOF__ > initramfs/etc/passwd
  45. root:x:0:0:root:/root:/bin/sh
  46. __EOF__
  47. fakeroot=fakeroot
  48. if [[ "$FAKEROOTKEY" != "" ]] || [[ "$UID" == "0" ]];then
  49.     fakeroot=
  50. fi
  51. cd initramfs
  52. find . -print0 | $fakeroot cpio --null -ov --format=newc | gzip -9 > ../initramfs.gz
  53. cd ..
  54. echo "-------------------------"
  55. echo "Fertig."
  56. echo "-------------------------"
Add Comment
Please, Sign In to add comment