edge-kernel.sh 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. #!/usr/bin/env bash
  2. # bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/edge-kernel.sh)"
  3. set -e
  4. KERNEL_ON=$(uname -r)
  5. PVE_KERNEL=$(dpkg --list| grep 'kernel-.*-pve' | awk '{print substr($2, 12, length($2)-1) }' | tac | head -n 1)
  6. EDGE_KERNEL=$(dpkg --list| grep 'kernel-.*-edge' | awk '{print substr($2, 12, length($2)-1) }' | tac | head -n 1)
  7. clear
  8. while true; do
  9. read -p "This is a Proxmox Edge Kernel Tool, USE AT YOUR OWN RISK. Proceed(y/n)?" yn
  10. case $yn in
  11. [Yy]* ) break;;
  12. [Nn]* ) exit;;
  13. * ) echo "Please answer yes or no.";;
  14. esac
  15. done
  16. clear
  17. show_menu(){
  18. normal=`echo "\033[m"`
  19. safe=`echo "\033[32m"`
  20. menu=`echo "\033[36m"`
  21. number=`echo "\033[33m"`
  22. bgred=`echo "\033[41m"`
  23. fgred=`echo "\033[31m"`
  24. proxmox-boot-tool kernel list
  25. echo -e "\nCurrent Kernel: ${menu}${KERNEL_ON}${normal}"
  26. printf "\n${menu}*********************************************${normal}\n"
  27. printf "${menu}**${number} 1)${normal} Install Proxmox 5.18 Edge Kernel & Reboot\n"
  28. printf "${menu}**${number} 2)${normal} Switch to Proxmox PVE ${menu}${PVE_KERNEL}${normal} Kernel & Reboot\n"
  29. printf "${menu}**${number} 3)${normal} Switch to Proxmox Edge ${menu}${EDGE_KERNEL}${normal} Kernel & Reboot\n"
  30. printf "${menu}**${number} 4)${normal} Remove Proxmox Edge Kernel & Reboot\n"
  31. printf "${menu}*********************************************${normal}\n"
  32. printf "Please choose an option from the menu and enter or ${fgred}x${normal} to exit."
  33. read opt
  34. }
  35. option_picked(){
  36. msgcolor=`echo "\033[01;31m"`
  37. normal=`echo "\033[00;00m"`
  38. message=${@:-"${normal}Error: No message passed"}
  39. printf "${msgcolor}${message}${normal}\n"
  40. }
  41. clear
  42. show_menu
  43. while [ $opt != '' ]
  44. do
  45. if [ $opt = '' ]; then
  46. exit;
  47. else
  48. case $opt in
  49. 1) while true; do
  50. read -p "Are you sure you want to Install Proxmox 5.18 Edge Kernel & Reboot? Proceed(y/n)?" yn
  51. case $yn in
  52. [Yy]* ) break;;
  53. [Nn]* ) exit;;
  54. * ) echo "Please answer yes or no.";;
  55. esac
  56. done
  57. clear;
  58. option_picked "Installing Proxmox 5.18 Edge Kernel & Rebooting";
  59. apt-get install -y gnupg
  60. curl -1sLf 'https://dl.cloudsmith.io/public/pve-edge/kernel/gpg.8EC01CCF309B98E7.key' | apt-key add -
  61. echo "deb https://dl.cloudsmith.io/public/pve-edge/kernel/deb/debian bullseye main" > /etc/apt/sources.list.d/pve-edge-kernel.list
  62. apt-get -y update
  63. apt-get -y install pve-kernel-5.18-edge
  64. reboot
  65. break;
  66. ;;
  67. 2) while true; do
  68. read -p "Are you sure you want to Switch to Proxmox PVE ${PVE_KERNEL} Kernel & Reboot? Proceed(y/n)?" yn
  69. case $yn in
  70. [Yy]* ) break;;
  71. [Nn]* ) exit;;
  72. * ) echo "Please answer yes or no.";;
  73. esac
  74. done
  75. clear;
  76. option_picked "Switching to Proxmox PVE Kernel & Rebooting";
  77. proxmox-boot-tool kernel pin ${PVE_KERNEL}
  78. reboot
  79. break;
  80. ;;
  81. 3) while true; do
  82. read -p "Are you sure you want to Switch to Proxmox ${EDGE_KERNEL} Edge Kernel & Reboot? Proceed(y/n)?" yn
  83. case $yn in
  84. [Yy]* ) break;;
  85. [Nn]* ) exit;;
  86. * ) echo "Please answer yes or no.";;
  87. esac
  88. done
  89. clear;
  90. option_picked "Switching to Proxmox Edge Kernel & Rebooting";
  91. proxmox-boot-tool kernel pin ${EDGE_KERNEL}
  92. reboot
  93. break;
  94. ;;
  95. 4) while true; do
  96. read -p "Are you sure you want to Remove Proxmox Edge Kernel & Reboot? Proceed(y/n)?" yn
  97. case $yn in
  98. [Yy]* ) break;;
  99. [Nn]* ) exit;;
  100. * ) echo "Please answer yes or no.";;
  101. esac
  102. done
  103. clear;
  104. option_picked "Removing Proxmox Edge Kernel & Rebooting";
  105. apt-get purge -y ${EDGE_KERNEL}
  106. rm -rf /etc/apt/sources.list.d/pve-edge-kernel.list
  107. proxmox-boot-tool kernel unpin
  108. reboot
  109. break;
  110. ;;
  111. x)exit;
  112. ;;
  113. \n)exit;
  114. ;;
  115. *)clear;
  116. option_picked "Please choose an option from the menu";
  117. show_menu;
  118. ;;
  119. esac
  120. fi
  121. done
  122. show_menu