edge-kernel.sh 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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.
  10. THE INFORMATION AND CONTENT MADE AVAILABLE TO YOU ON THE SITE IS PROVIDED 'AS IS' AND 'AS AVAILABLE.'
  11. WE MAKE NO REPRESENTATIONS OR WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED. Proceed(y/n)?" yn
  12. case $yn in
  13. [Yy]* ) break;;
  14. [Nn]* ) exit;;
  15. * ) echo "Please answer yes or no.";;
  16. esac
  17. done
  18. clear
  19. show_menu(){
  20. normal=`echo "\033[m"`
  21. safe=`echo "\033[32m"`
  22. menu=`echo "\033[36m"`
  23. number=`echo "\033[33m"`
  24. bgred=`echo "\033[41m"`
  25. fgred=`echo "\033[31m"`
  26. proxmox-boot-tool kernel list
  27. echo -e "\nCurrent Kernel: ${menu}${KERNEL_ON}${normal}"
  28. printf "\n${menu}*********************************************${normal}\n"
  29. printf "${menu}**${number} 1)${normal} Install Proxmox 5.18 Edge Kernel & Reboot\n"
  30. printf "${menu}**${number} 2)${normal} Switch to Proxmox PVE ${menu}${PVE_KERNEL}${normal} Kernel & Reboot\n"
  31. printf "${menu}**${number} 3)${normal} Switch to Proxmox Edge ${menu}${EDGE_KERNEL}${normal} Kernel & Reboot\n"
  32. printf "${menu}**${number} 4)${normal} Remove Proxmox Edge Kernel & Reboot\n"
  33. printf "${menu}*********************************************${normal}\n"
  34. printf "Please choose an option from the menu and enter or ${fgred}x${normal} to exit."
  35. read opt
  36. }
  37. option_picked(){
  38. msgcolor=`echo "\033[01;31m"`
  39. normal=`echo "\033[00;00m"`
  40. message=${@:-"${normal}Error: No message passed"}
  41. printf "${msgcolor}${message}${normal}\n"
  42. }
  43. clear
  44. show_menu
  45. while [ $opt != '' ]
  46. do
  47. if [ $opt = '' ]; then
  48. exit;
  49. else
  50. case $opt in
  51. 1) while true; do
  52. read -p "Are you sure you want to Install Proxmox 5.18 Edge Kernel & Reboot? Proceed(y/n)?" yn
  53. case $yn in
  54. [Yy]* ) break;;
  55. [Nn]* ) exit;;
  56. * ) echo "Please answer yes or no.";;
  57. esac
  58. done
  59. clear;
  60. option_picked "Installing Proxmox 5.18 Edge Kernel & Rebooting";
  61. apt-get install -y gnupg
  62. curl -1sLf 'https://dl.cloudsmith.io/public/pve-edge/kernel/gpg.8EC01CCF309B98E7.key' | apt-key add -
  63. echo "deb https://dl.cloudsmith.io/public/pve-edge/kernel/deb/debian bullseye main" > /etc/apt/sources.list.d/pve-edge-kernel.list
  64. apt-get -y update
  65. apt-get -y install pve-kernel-5.18-edge
  66. reboot
  67. break;
  68. ;;
  69. 2) while true; do
  70. read -p "Are you sure you want to Switch to Proxmox PVE ${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 PVE Kernel & Rebooting";
  79. proxmox-boot-tool kernel pin ${PVE_KERNEL}
  80. reboot
  81. break;
  82. ;;
  83. 3) while true; do
  84. read -p "Are you sure you want to Switch to Proxmox ${EDGE_KERNEL} Edge Kernel & Reboot? Proceed(y/n)?" yn
  85. case $yn in
  86. [Yy]* ) break;;
  87. [Nn]* ) exit;;
  88. * ) echo "Please answer yes or no.";;
  89. esac
  90. done
  91. clear;
  92. option_picked "Switching to Proxmox Edge Kernel & Rebooting";
  93. proxmox-boot-tool kernel pin ${EDGE_KERNEL}
  94. reboot
  95. break;
  96. ;;
  97. 4) while true; do
  98. read -p "Are you sure you want to Remove Proxmox Edge Kernel & Reboot? Proceed(y/n)?" yn
  99. case $yn in
  100. [Yy]* ) break;;
  101. [Nn]* ) exit;;
  102. * ) echo "Please answer yes or no.";;
  103. esac
  104. done
  105. clear;
  106. option_picked "Removing Proxmox Edge Kernel & Rebooting";
  107. apt-get purge -y ${EDGE_KERNEL}
  108. rm -rf /etc/apt/sources.list.d/pve-edge-kernel.list
  109. proxmox-boot-tool kernel unpin
  110. reboot
  111. break;
  112. ;;
  113. x)exit;
  114. ;;
  115. \n)exit;
  116. ;;
  117. *)clear;
  118. option_picked "Please choose an option from the menu";
  119. show_menu;
  120. ;;
  121. esac
  122. fi
  123. done
  124. show_menu