edge-kernel.sh 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  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 Edge Kernel & Reboot\n"
  28. printf "${menu}**${number} 2)${normal} Switch to Proxmox VE 7 ${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 != '' ]; do
  45. if [ $opt = '' ]; then
  46. exit
  47. else
  48. case $opt in
  49. 1)
  50. while true; do
  51. read -p "Are you sure you want to Install Proxmox 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 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.19-edge
  65. reboot
  66. break
  67. ;;
  68. 2)
  69. while true; do
  70. read -p "Are you sure you want to Switch to Proxmox VE 7 ${PVE_KERNEL} Kernel & Reboot? Proceed(y/n)?" yn
  71. case $yn in
  72. [Yy]*) break ;;
  73. [Nn]*) exit ;;
  74. *) echo "Please answer yes or no." ;;
  75. esac
  76. done
  77. clear
  78. option_picked "Switching to Proxmox VE 7 Kernel & Rebooting"
  79. proxmox-boot-tool kernel pin ${PVE_KERNEL}
  80. reboot
  81. break
  82. ;;
  83. 3)
  84. while true; do
  85. read -p "Are you sure you want to Switch to Proxmox ${EDGE_KERNEL} Edge Kernel & Reboot? Proceed(y/n)?" yn
  86. case $yn in
  87. [Yy]*) break ;;
  88. [Nn]*) exit ;;
  89. *) echo "Please answer yes or no." ;;
  90. esac
  91. done
  92. clear
  93. option_picked "Switching to Proxmox Edge Kernel & Rebooting"
  94. proxmox-boot-tool kernel pin ${EDGE_KERNEL}
  95. reboot
  96. break
  97. ;;
  98. 4)
  99. while true; do
  100. read -p "Are you sure you want to Unpin the Current Kernel? Proceed(y/n)?" yn
  101. case $yn in
  102. [Yy]*) break ;;
  103. [Nn]*) exit ;;
  104. *) echo "Please answer yes or no." ;;
  105. esac
  106. done
  107. clear
  108. option_picked "Unpinning Current Kernel"
  109. proxmox-boot-tool kernel unpin
  110. clear
  111. break
  112. ;;
  113. 5)
  114. while true; do
  115. read -p "Are you sure you want to Remove Proxmox Edge Kernel & Reboot? Proceed(y/n)?" yn
  116. case $yn in
  117. [Yy]*) break ;;
  118. [Nn]*) exit ;;
  119. *) echo "Please answer yes or no." ;;
  120. esac
  121. done
  122. clear
  123. option_picked "Removing Proxmox Edge Kernel & Rebooting"
  124. apt-get purge -y ${EDGE_KERNEL}
  125. rm -rf /etc/apt/sources.list.d/pve-edge-kernel.list
  126. proxmox-boot-tool kernel unpin
  127. reboot
  128. break
  129. ;;
  130. x)
  131. exit
  132. ;;
  133. \n)
  134. exit
  135. ;;
  136. *)
  137. clear
  138. option_picked "Please choose an option from the menu"
  139. show_menu
  140. ;;
  141. esac
  142. fi
  143. done
  144. show_menu