pvetools

2023-9-23 学长 NAS

https://github.com/ivanhao/pvetools

apt install git 

官方愿里面根本没有

下载zip更改后缀名为iso

在datacenter具体的实体机中的local下上传iso

然后mv /var/lib/vz/template/iso/pvetools-master.iso ~/pvetools-master.zip

或者

wget https://github.com/ivanhao/pvetools/archive/refs/heads/master.zip

还好官方源中有unzip

apt install zip

unzip master.zip

./pvetools-master/pvetools.sh


官方包中的vi真不是人能用的。。。用完之后经常把del当做backspace用


评论(0) 浏览(248)

PVE安装完后的设置

2023-9-23 学长 NAS

因为最后还是想用WIFI

ESXI不是不行。。。而且折腾了一天还是卡在

No image profile is found on the host or image profile is empty. An image profile is required to install or remove VIBs.  To install an image profile, use the esxcli image profile install command.

目测是还有驱动没打上。。。但是我也不知道缺了什么。。。

并且硬件基础直装只能用6.7。。。准备以后有用USB网卡试试


而且要想用WIFI得改直连到一个虚拟软路由太麻烦。。。

安装完把自己电脑的网络共享给网线

设置WLAN的高级网络设置中的更多适配器设置

选择共享给网线连接的PVE设备的网络接口

然后能上网的电脑做网关,我的电脑给的192.168.137.1

所以就把


改系统时间

date -s 日/月/年

date -s 时:分:秒

不设置不能过https的认证

所以不能apt install。。。

先解决时间自动更新


第一次apt前先apt update

apt install ntp

https://blog.csdn.net/hl449006540/article/details/122648898

https://pve.proxmox.com/wiki/Time_Synchronization

官方用chrony

systemctl enable chrony

/lib/systemd/systemd-sysv-install enable chrony

不用安装ntp。。。

但是得安装chrony

apt install chrony

最新的不用安装直接systemctl enable chrony就行


然后

安装wifi的设置

apt install wpasupplicant iw wireless-tools

参考:

DHCP: https://juejin.cn/post/7115643955915522078

静态: https://blog.csdn.net/bugApe8/article/details/128234569

wpa_passphrase "SSID" "密码" > /etc/wpa_supplicant/wpa_supplicant.conf

复制psk那长串的

编辑

vi /etc/network/interfaces

跟一般的vim不同pve的vi是a或者ins输入,i没反应


#下面的无线网卡的配置一定要配置在虚拟网络 vmbr0的前面,否则,流量会先走vmbr0
auto wlp2s0
iface wlp2s0 inet static
        address  192.168.68.200/24 # 改成自己的内网ip
        gateway  192.168.31.1 # 改成自己的路由器网关
        wpa_conf /etc/wpa_supplicant/wpa_supplicant.conf


!!!只能有一个网关!!!其他网关用route加上去

auto vmbr1
iface vmbr1 inet static
  address 192.168.137.2/24
  bridge-ports enp3s0
  bridge-stp off
  bridge-fd 0
  post-up route add -net 192.168.137.0/24 gw 192.168.137.1
#有线

不需要加post-down删除这个route,只是以windows共享网络的192.168.137.1为例

具体以自己的网络为准

开启转发

sysctl -w net.ipv4.ip_forward=1

得设置nftables不然vmbr的内网访问不到外网?也许是iptable我忘记设置了???

vi /etc/nftables.conf


table ip nat {
  chain postrouting {
    type nat hook postrouting priority 0; policy accept; masquerade
  }
}


systemctl enable nftables.service
systemctl start nftables.service

vmbr0下的bridge-ports 改成none
其实改完后只是远程没问题了

直接在硬件上还是走vmbr0

得删除vmbr0中设置的address 和 gateway 

应用设置得重启reboot

只能有一个网关




修改直连显示器上的欢迎界面中显示的IP 

vi /etc/issue


更改节点的名字:

vi /etc/hostname

vi /etv/hosts

第二行也要改

/etc/postfix/mail.cf


然后重启reboot

三个都要改还没完

还要重启后还要复制

mv /etc/pve/nodes/旧节点名/ /etc/pve/nodes/新节点名/ 

参考:https://bugxia.com/1616.html


去下No Valid Subscription 提醒

https://blog.51cto.com/fxn2025/5023458

直接去下一篇安装pvetool


评论(0) 浏览(289)

给华擎3150 itx 主板上 esxi

2023-9-22 学长 NAS

ESXI总结站:

https://www.dinghui.org/vmware-iso-download.html


第一个问题

Using 'simple offset' UEFI RTS mapping policy

解决

https://www.cnblogs.com/mooniscrazy/p/14829789.html

ignoreHeadless=TRUE

然后没网卡问题

https://www.cnblogs.com/some-itech/p/14250177.html

https://vibsdepot.v-front.de/wiki/index.php/Net55-r8168

把补丁加进去的办法

https://www.cnblogs.com/zoulongbin/p/10361615.html

不用下载上面的VMware.PowerCLI

Install-Module -Name VMware.PowerCLI

或者

https://www.powershellgallery.com/packages/VMware.PowerCLI

安装完要重启下不然会出很多红色的找不到cmdlet

ESXi-Customizer-PS 去github下载最新的

https://github.com/VFrontDe-Org/ESXi-Customizer-PS

下载python

https://www.python.org/downloads/

要去系统环境变量更改Path中有关python的路径设置

查看python路径设置

python 

impotent sys

print(sys.path)

主要是添加lib和script

Set-PowerCLIConfiguration -PythonPath "C:\Python\Lib;C:\Python\Scripts"

需要安装

six
psutil
lxml
pyopenssl

通过
pip install

参考

设置完还得关闭然后重开下powershell

驱动放到vib文件夹中

.\ESXi-Customizer-PS.ps1  -izip .\VMware-ESXi-8.0U2-22380479-depot.zip -pkgDir .\vib -nsc


最新

8.0u1加vib的截图

https://www.dinghui.org/esxi-8-customized-usb-nvme-iso.html


我还装了个mt7921

有得折腾了

还得打sata补丁, 

https://piv.ink/n3150-esxi/

https://www.rinvay.cc/archives/700/


sata-xahci

https://vibsdepot.v-front.de/wiki/index.php/Sata-xahci


重新下载部署包

http://ftpmirror.uk/pub/Software/vSphere/v6.7/ESXi670-201912001.zip

.\ESXi-Customizer-PS.ps1  -izip .\ESXi670-201912001.zip -pkgDir .\vib -nsc


还是有这样的报错

No image profile is found on the host or image profile is empty. An image profile is required to install or remove VIBs.  To install an image profile, use the esxcli image profile install command.

估计是这个板子4个sata口中两个是ahci

因为就算是安装windows只有ahci上的硬盘启动的时候经常找不到引导。。。但是引导了USB或者多个SATA后就能正常启动。。。因为没有CMOS电池???

还得去超市买一个,毕竟做NAS每次开机要按F1确实很麻烦。。。都没接显示器

更新了最新的BIOS也是这样。。。

打算拿USB NVME移动硬盘+USB网卡估计能装上去


评论(0) 浏览(291)

挂载 黑 群晖 系统分区到linux 下

2023-3-16 学长 NAS

最近因为操作失误,在ssh中 root 下 根目录中用了

chmod a+w .

一开始不知道会有问题

直到第二次登录才发现 sudo 用不了了

需要 /usr/lib/sudoers.so 其他用户没有写入权限。。。


diskgenus 可以挂载但是没法修改ext4的权限

然后又更煞笔的把sudoers.so 复制到volume1下自己的文件夹中改成自己所有 

把权限改成了622 又复制会到usr/lib 中去了

提示需要uid 0才可,也就是还得root


怎么办呢

gpart

但是gpart 挂载sdb1时候发现提示这是个 linux arry

然后又煞笔去mdadm 挂载,--assemle --run /dev/sdb1 又说不是md 的arry

mdadm --creat

又说上面又ext2系统


重启进群晖ssh看了是md0 挂载的是ext4

重进 gpart,进终端,cd 到mnt下

直接sudo mkdir a b c d 四个 文件夹

sudo mount -t ext4 /dev/sdb1 /mnt/a

sudo mount -t ext4 /dev/sdb2 /mnt/b

sudo mount -t ext4 /dev/sdb3 /mnt/c

sudo mount -t ext4 /dev/sdb4 /mnt/e

全部挂载成功,

sudo chown root:root /mnt/a/usr/lib/sudoers.so

sudo chown root:root /mnt/b/usr/lib/sudoers.so

sudo chown root:root /mnt/c/usr/lib/sudoers.so

sudo chown root:root /mnt/d/usr/lib/sudoers.so


至于以后怎么恢复根目录写入权限那以后再说吧

最起码现在有sudo 可以sudo -i 进root了

当然最后进root后给root设置个密码

synouser --setpw root xxxxxx

sudo没了还可以su - 切换用户过来

对新系统无效


/etc/sudoers 还得去除写入权限

/etc/sudoers.d 也得但不用进gpart了

评论(0) 浏览(664)

修改 群晖 docker 桌面快捷方式图标

2023-3-14 学长 NAS

先去Docker为容器创建桌面快捷方式


桌面图标设置文件

/usr/syno/etc/preference/<用户名>/usersettings

复制到你设置的贡献文件夹

用文本编辑器按照json格式化代码

找到对应的快捷方式的位置

修改名称还是图片名称

图片存放位置

/usr/syno/synoman/webman/3rdparty/Docker/images

当然你也可以改成绝对位置


复制覆盖注意下文件读写权限 图片是644

桌面设置文档是664

评论(0) 浏览(1522)

群晖 web staion 默认页 跳转设置

2023-3-14 学长 NAS

群晖安装完 web staion后台

默认的80 443跳转页消失

打开的默认网站实际地址在 存储池的 web 文件夹下


默认跳转页

 /var/tmp/nginx/html/redirect.html


方法一:

web 文件夹下默认是没有写入权限的

chmod +w /volume1/web/index.html

先添加写入权限


vi /volume1/web/index.html

编辑默认主页的代码

 /var/tmp/nginx/html/redirect.html

跳转代码替换掉默认主页的代码

也可以备注掉原主页的<!-放在原网页代码首行 ->放在原网页代码尾行

最后别忘了移除写入权限 chmod -w /volume1/web/index.html


方法二:

移动大法

mv /volume1/web/index.html /volume1/web/index.html.bak

cp /var/tmp/nginx/html/redirect.html /volume1/web/index.html

以后想起来首页要放什么再吧这个解开



评论(0) 浏览(665)

群晖 cloudflare ddns 设置

2023-3-9 学长 NAS

偶然发现我这直接分到路由上的IP是公网的

虽然没上层路由的管理账号密码

但是带upnp


方法来自

https://github.com/joshuaavalon/SynologyCloudflareDDNS


第一步 ssh登录 切到root

sudo -i


第二步 下载 ddns脚本

wget https://raw.githubusercontent.com/joshuaavalon/SynologyCloudflareDDNS/master/cloudflareddns.sh -O /sbin/cloudflareddns.sh


给权限


chmod +x /sbin/cloudflareddns.sh



第三步 添加cloudflare设置


cat >> /etc.defaults/ddns_provider.conf << EOF
[Cloudflare]
        modulepath=/sbin/cloudflareddns.sh
        queryurl=https://www.cloudflare.com
        website=https://www.cloudflare.com 

EOF

第四步 去控制面板--外部访问--DDNS设置

主机名 填 要解析到的域名

用户名 填 域名的zone ID 在cloudflare具体域名的信息页上

密码 cloudflare的API


API申请 :

去cloudflare 账户 my profile

创建一个API 使用 Edit zone DNS的模板,只需要 明确具体的zone就行


评论(0) 浏览(898)

Open VMware tools for DSM 7.x

2023-2-27 学长 NAS

安装步骤:

https://www.xxapp.net/10380.html

下载不在那里,原链接应该是gxnas的,密码不对,但是gxnas的打不开

下载去这里

https://www.xiangtaole.com/vmware-tools-for-synology-dsm7.html

毕竟网上流传的不管在哪个网站的安装的时候都写着开发者是GXNAS。。。

https://wp.gxnas.com/11776.html

评论(0) 浏览(729)

利用第三方解码器FFMPEG让(黑)群晖DSM7.X 破解Advanced Media Extensions实现视频缩略图功能

2023-2-25 学长 NAS

方法参考自

https://wp.gxnas.com/11491.html

https://sspai.com/post/66142

但是随着软件跟新目录有所变更


其实群晖自己的解码器也是用特殊编辑的ffmpeg来限制支持的编码,所以说未来只要ffmpeg能硬解谁还需要洗白的群晖呢?


去套件中心安装 

Advanced Media Extensions

Video Station

Video Station(VS)需要去设置关闭硬解,只要芯片强软硬有毛区别呢,当然会影响网上那些卖二手硬件的,毕竟J3455能卖到4000+呢

然后去套件中心停用VideoStation


目前使用的版本是 Advanced Media Extensions 3.0.1-2004 (AME)和 Video Station 3.0.5-2503


添加社群源

packages.synocommunity.com

安装FFMPEG


打开ssh,用管理源账号登录,切成 root,反正我的没法直接用 root 登录


sudo -i



备份 VS 自带的ffmpeg


mv -n /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg-bak
cp -n /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.bak
chown VideoStation:VideoStation /var/packages/VideoStation/target/lib/libsynovte.so.bak


拥有者很重要,不然有可能导致以后恢复无法运行,-bak主要解决.bak部分编码仍旧使用自带的编码器,我是没经历过,gxnass这么说的


重新生成个ffmpeg:

echo "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" | base64 -d | gunzip > /var/packages/VideoStation/target/bin/ffmpeg


直接替换就可以

cp /var/packages/ffmpeg/target/bin/ffmpeg /var/packages/VideoStation/target/bin/

也可以cd 去 /volume1/\@appstore 复制


改权限:


chown root:VideoStation /var/packages/VideoStation/target/bin/ffmpeg
chmod 750 /var/packages/VideoStation/target/bin/ffmpeg
chmod u+s /var/packages/VideoStation/target/bin/ffmpeg


给Video Station添加 DTS、EAC3、TrueHD支持:


sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' /var/packages/VideoStation/target/lib/libsynovte.so


sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' -e 's/h264/462h/' -e 's/hevc/cveh/' /var/packages/VideoStation/target/lib/libsynovte.so


把h264 hevc加上,不屏蔽缩略图会因为没打开核显不生成

需要给 控制面板--共享文件夹--权限--系统内部帐号 sc-ffmpeg 读写权限

cp的是root的权限软连接需要给应用账号权限


我也不知道为什么用用base64把压缩文件重新写入遍。。。总之别人这么做我也这么做

下面就是破解AME的过程了AME的编码器你没输入license是不会解压(下载)到指定正确位置的,那我直接用编译过的ffmpeg编码器替代好了,第一个这么做的肯定不是我,毕竟DSM6就有人这么干了。AME的编码是链接到这个位置的直接创建


mkdir /var/packages/CodecPack/target/pack
mkdir /var/packages/CodecPack/target/pack/bin


然后复制VS的编码器到AME


cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/pack/bin/ffmpeg41
cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/pack/bin/ffmpeg33-for-audio
cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/pack/bin/ffmpeg33-for-surveillance
chown -R CodecPack:CodecPack /var/packages/CodecPack/target/pack

然后就可以去开启VS了


所以最好的转码办法还是直接用nv显卡通过ffmpeg批量转换成能网络播放器的流媒体文件,为啥把这些格式取消了?因为就算买企业级的NAS用的啥cpu啥gpu群晖自己还是有B数的

======================================================================================

缩略图上述方法缩略图还是不能支持, https://zhuanlan.zhihu.com/p/379627572


需要复制覆盖掉/usr/bin里面的ffmpeg

cp /volume1/\@appstore/ffmpeg/bin/ffmpeg /usr/bin


修改完重新生成索引--控制面板--媒体索引--重新索引

photo目前7.1.1测试没问题

vs不知道怎么的有些生成了有些没生成


时间长短看你CPU速度了,毕竟。。。没GPU支持


python

https://blog.51cto.com/u_15162069/2913246

网上py自动生成那个,只是生成跟视频文件名一样的图片,VS不会自动识别成视频封面的,这个尝试过了,如果你想尝试可以放弃了

不需要sudo


#!/usr/bin/python
# -*- coding:UTF-8 -*-
import os
import sys


def check_type(filename,video_list):
    """
    检查是否为视频文件
    """
    array = map(filename.endswith,video_list)
    if True in array:
        return True
    else:
        return False


def get_capture_delay_time(file_path):
    """
    获取截取图片在视频中位置
    """
    if not os.path.exists(file_path):
        return False
    file_size = os.path.getsize(file_path)
    if file_size <= 1 * 1024 * 1024:                                # 视频大小 <= 1MB,截取视频第1S图片
        delay_time = 1
    elif file_size <= 4 * 1024 * 1024:                              # 1MB < 视频大小 <= 4MB,截取视频第5S图片
        delay_time = 5
    elif file_size <= 50 * 1024 * 1024:                             # 4MB < 视频大小 <= 50MB,截取视频第10S图片
        delay_time = 10
    else:
        delay_time = 20                                             # 50MB < 视频大小,截取视频第20S图片
    return delay_time


def check_file_existed(file_path):
    """
    检查文件是否存在
    """
    if os.path.exists(file_path):
        return True
    else:
        return False


def get_file_pre(file_name):
    """
    获取文件名前缀,如my_video.mp4,返回my_video
    """
    video_name_list = os.path.splitext(file_name)
    if len(video_name_list) == 2:
        video_name_pre = video_name_list[0]
    else:
        video_name_pre = False
    return video_name_pre


def make_thumb(file_path,video_types):
    """
    遍历文件夹,调用ffmpeg截取视频图片
    """
    for dir_path,dir_names,file_names in os.walk(file_path):
        for name in file_names:
            # print("*"*20)
            # print(name)
            if not check_type(name,video_types):                    # 不是视频文件,跳过本地迭代,继续下一次迭代
                print("not video,continue next")
                continue
            video_full_path = os.path.join(dir_path, name)
            video_name_pre = get_file_pre(name)
            if video_name_pre:                                      # 如果缩略图已经存在,跳过本地迭代,继续下一次迭代
                pic_name = '%s%s' % (video_name_pre,'.jpg')
                picture_full_path = os.path.join(dir_path,pic_name)
                ret = check_file_existed(picture_full_path)
                if ret:
                    print("%s existed,continue next" % picture_full_path)
                    continue
                delay_time = get_capture_delay_time(video_full_path)
                if not delay_time:                                  # 获取文件大小失败,跳过本地迭代,继续下一次迭代
                    continue
                shell = 'ffmpeg -i "%s" -y -ss %s -frames:v 1 "%s"' % \
                        (video_full_path, delay_time,picture_full_path)
                # print("#"*20)
                print(shell)
                os.system(shell)
                print("%s capture success" % picture_full_path)


if __name__ == "__main__":
    # 当前路径中执行脚本
    file_path = sys.path[0]
    video_types = ['.mp4','.avi','.wmv','.mkv','.flv']
    make_thumb(file_path,video_types)



保存到thumb.py

复制到视频所在目录


用ssh登录,cd到视频所在目录,有空格特殊字符加''

python thumb.py


去VS设置--高级--视频封面设置 下面的勾选 不需要重置索引封面就生成了

也可以直接 win 下跑python 生成 

评论(0) 浏览(2867)

手机版 | RSS | FEED

苏ICP备16066175号