edge-kernel.sh 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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} Unpin Current Kernel\n"
  31. printf "${menu}**${number} 5)${normal} Remove Proxmox Edge Kernel & Reboot\n"
  32. printf "${menu}*********************************************${normal}\n"
  33. printf "Please choose an option from the menu and enter or ${fgred}x${normal} to exit."
  34. read opt
  35. }
  36. option_picked(){
  37. msgcolor=`echo "\033[01;31m"`
  38. normal=`echo "\033[00;00m"`
  39. message=${@:-"${normal}Error: No message passed"}
  40. printf "${msgcolor}${message}${normal}\n"
  41. }
  42. clear
  43. show_menu
  44. while [ $opt != '' ]
  45. do
  46. if [ $opt = '' ]; then
  47. exit;
  48. else
  49. case $opt in
  50. 1) while true; do
  51. read -p "Are you sure you want to Install Proxmox 5.18 Edge Kernel & Reboot? Proceed(y/n)?" yn
  52. case $yn in
  53. [Yy]* ) break;;
  54. [Nn]* ) exit;;
  55. * ) echo "Please answer yes or no.";;
  56. esac
  57. done
  58. clear;
  59. option_picked "Installing Proxmox 5.18 Edge Kernel & Rebooting";
  60. apt-get install -y gnupg
  61. curl -1sLf 'https://dl.cloudsmith.io/public/pve-edge/kernel/gpg.8EC01CCF309B98E7.key' | apt-key add -
  62. echo "deb https://dl.cloudsmith.io/public/pve-edge/kernel/deb/debian bullseye main" > /etc/apt/sources.list.d/pve-edge-kernel.list
  63. apt-get -y update
  64. apt-get -y install pve-kernel-5.18-edge
  65. reboot
  66. break;
  67. ;;
  68. 2) while true; do
  69. read -p "Are you sure you want to Switch to Proxmox PVE ${PVE_KERNEL} Kernel & Reboot? Proceed(y/n)?" yn
  70. case $yn in
  71. [Yy]* ) break;;
  72. [Nn]* ) exit;;
  73. * ) echo "Please answer yes or no.";;
  74. esac
  75. done
  76. clear;
  77. option_picked "Switching to Proxmox PVE Kernel & Rebooting";
  78. proxmox-boot-tool kernel pin ${PVE_KERNEL}
  79. reboot
  80. break;
  81. ;;
  82. 3) while true; do
  83. read -p "Are you sure you want to Switch to Proxmox ${EDGE_KERNEL} Edge Kernel & Reboot? Proceed(y/n)?" yn
  84. case $yn in
  85. [Yy]* ) break;;
  86. [Nn]* ) exit;;
  87. * ) echo "Please answer yes or no.";;
  88. esac
  89. done
  90. clear;
  91. option_picked "Switching to Proxmox Edge Kernel & Rebooting";
  92. proxmox-boot-tool kernel pin ${EDGE_KERNEL}
  93. reboot
  94. break;
  95. ;;
  96. 4) while true; do
  97. read -p "Are you sure you want to Unpin the Current Kernel? Proceed(y/n)?" yn
  98. case $yn in
  99. [Yy]* ) break;;
  100. [Nn]* ) exit;;
  101. * ) echo "Please answer yes or no.";;
  102. esac
  103. done
  104. clear;
  105. option_picked "Unpinning Current Kernel";
  106. proxmox-boot-tool kernel unpin
  107. break;
  108. ;;
  109. 5) while true; do
  110. read -p "Are you sure you want to Remove Proxmox Edge Kernel & Reboot? Proceed(y/n)?" yn
  111. case $yn in
  112. [Yy]* ) break;;
  113. [Nn]* ) exit;;
  114. * ) echo "Please answer yes or no.";;
  115. esac
  116. done
  117. clear;
  118. option_picked "Removing Proxmox Edge Kernel & Rebooting";
  119. apt-get purge -y ${EDGE_KERNEL}
  120. rm -rf /etc/apt/sources.list.d/pve-edge-kernel.list
  121. proxmox-boot-tool kernel unpin
  122. reboot
  123. break;
  124. ;;
  125. x)exit;
  126. ;;
  127. \n)exit;
  128. ;;
  129. *)clear;
  130. option_picked "Please choose an option from the menu";
  131. show_menu;
  132. ;;
  133. esac
  134. fi
  135. done
  136. show_menu