busybox-init-module-setup.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/bin/bash
  2. check() {
  3. require_binaries busybox || return 1
  4. return 0
  5. }
  6. depends() {
  7. return 0
  8. }
  9. install_busybox_links() {
  10. dir="${1}"
  11. linkname="${2}"
  12. (cd "${dracutsysrootdir?}${dir}" &&
  13. for x in *; do
  14. if [ "$(readlink "${x}")" = "${linkname}" ]; then
  15. ln -sf "${linkname}" "${initdir?}/${dir}/${x}"
  16. fi
  17. done
  18. )
  19. }
  20. install() {
  21. inst_multiple /bin/busybox
  22. # wrapper script for early console; will launch /sbin/init
  23. # after having mounted devtmpfs
  24. inst_multiple /init
  25. if [ -e "${dracutsysrootdir?}/lib64" ]; then
  26. ln -sf lib "${initdir?}/lib64"
  27. ln -sf lib "${initdir?}/usr/lib64"
  28. fi
  29. if [ -e "${dracutsysrootdir?}/lib32" ]; then
  30. ln -sf lib "${initdir?}/lib32"
  31. ln -sf lib "${initdir?}/usr/lib32"
  32. fi
  33. install_busybox_links "/bin" "busybox"
  34. install_busybox_links "/sbin" "../bin/busybox"
  35. if [ ! -L "${dracutsysrootdir?}/bin" ]; then
  36. install_busybox_links "/usr/bin" "../../bin/busybox"
  37. install_busybox_links "/usr/sbin" "../../bin/busybox"
  38. fi
  39. inst_multiple \
  40. /etc/inittab \
  41. /etc/init.d/rcS \
  42. /etc/init.d/rcK \
  43. /etc/issue \
  44. /etc/fstab \
  45. /etc/group \
  46. /etc/passwd \
  47. /etc/shadow \
  48. /etc/hostname
  49. }