2023-02-15 15:03:21 +08:00
|
|
|
#!/bin/bash
|
|
|
|
#from https://github.com/spiritLHLS/pve
|
|
|
|
|
2023-02-17 10:31:28 +08:00
|
|
|
# 打印信息
|
|
|
|
_red() { echo -e "\033[31m\033[01m$@\033[0m"; }
|
|
|
|
_green() { echo -e "\033[32m\033[01m$@\033[0m"; }
|
|
|
|
_yellow() { echo -e "\033[33m\033[01m$@\033[0m"; }
|
|
|
|
_blue() { echo -e "\033[36m\033[01m$@\033[0m"; }
|
2023-04-24 08:57:16 +08:00
|
|
|
reading(){ read -rp "$(green "$1")" "$2"; }
|
|
|
|
utf8_locale=$(locale -a 2>/dev/null | grep -i -m 1 utf8)
|
|
|
|
if [[ -z "$utf8_locale" ]]; then
|
|
|
|
_yellow "No UTF-8 locale found"
|
|
|
|
else
|
|
|
|
export LC_ALL="$utf8_locale"
|
|
|
|
export LANG="$utf8_locale"
|
|
|
|
_green "Locale set to $utf8_locale"
|
|
|
|
fi
|
2023-02-17 10:31:28 +08:00
|
|
|
|
|
|
|
# 创建资源池
|
2023-02-24 14:09:08 +08:00
|
|
|
POOL_ID="mypool"
|
|
|
|
if pvesh get /pools/$POOL_ID > /dev/null 2>&1 ; then
|
2023-02-24 14:09:37 +08:00
|
|
|
_green "资源池 $POOL_ID 已经存在!"
|
2023-02-24 14:00:22 +08:00
|
|
|
else
|
2023-02-24 14:09:08 +08:00
|
|
|
# 如果不存在则创建
|
|
|
|
_green "正在创建资源池 $POOL_ID..."
|
|
|
|
pvesh create /pools --poolid $POOL_ID
|
|
|
|
_green "资源池 $POOL_ID 已创建!"
|
2023-02-24 14:00:22 +08:00
|
|
|
fi
|
2023-02-24 10:39:40 +08:00
|
|
|
|
2023-04-12 08:51:05 +08:00
|
|
|
# 移除订阅弹窗
|
|
|
|
cp -rf /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak
|
|
|
|
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
|
|
|
|
|
2023-04-12 08:58:41 +08:00
|
|
|
# 开启硬件直通
|
|
|
|
if [ `dmesg | grep -e DMAR -e IOMMU|wc -l` = 0 ];then
|
|
|
|
_yellow "硬件不支持直通"
|
|
|
|
else
|
2023-04-12 09:49:07 +08:00
|
|
|
if [ `cat /proc/cpuinfo|grep Intel|wc -l` = 0 ];then
|
|
|
|
iommu="amd_iommu=on"
|
|
|
|
else
|
|
|
|
iommu="intel_iommu=on"
|
|
|
|
fi
|
|
|
|
if [ `grep $iommu /etc/default/grub|wc -l` = 0 ];then
|
|
|
|
sed -i 's|quiet|quiet '$iommu'|' /etc/default/grub
|
|
|
|
update-grub
|
|
|
|
if [ `grep "vfio" /etc/modules|wc -l` = 0 ];then
|
|
|
|
echo 'vfio
|
|
|
|
vfio_iommu_type1
|
|
|
|
vfio_pci
|
|
|
|
vfio_virqfd' >> /etc/modules
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
_green "已设置硬件直通"
|
|
|
|
fi
|
2023-04-12 08:58:41 +08:00
|
|
|
fi
|
|
|
|
|
2023-02-17 10:16:17 +08:00
|
|
|
# 检测AppArmor模块
|
|
|
|
if ! dpkg -s apparmor > /dev/null 2>&1; then
|
2023-02-17 10:31:28 +08:00
|
|
|
_green "正在安装 AppArmor..."
|
2023-02-17 10:16:17 +08:00
|
|
|
apt-get update
|
|
|
|
apt-get install -y apparmor
|
|
|
|
fi
|
|
|
|
if ! systemctl is-active --quiet apparmor.service; then
|
2023-02-17 10:31:28 +08:00
|
|
|
_green "启动 AppArmor 服务..."
|
2023-02-17 10:16:17 +08:00
|
|
|
systemctl enable apparmor.service
|
|
|
|
systemctl start apparmor.service
|
|
|
|
fi
|
|
|
|
if ! lsmod | grep -q apparmor; then
|
2023-02-17 10:31:28 +08:00
|
|
|
_green "正在加载 AppArmor 内核模块..."
|
2023-02-17 10:16:17 +08:00
|
|
|
modprobe apparmor
|
|
|
|
fi
|
|
|
|
if ! lsmod | grep -q apparmor; then
|
2023-02-26 11:26:04 +08:00
|
|
|
_yellow "AppArmor 仍未加载,需要执行 reboot 重新启动系统加载"
|
2023-02-17 10:16:17 +08:00
|
|
|
fi
|