环境:内存卡16G,树莓派3B,官方工具烧写镜像,我烧的是树莓派系统,设置里面填写用户名密码,WiFi和密码,同时打开SSH服务。
sudo apt update
sudo vi /etc/apt/sources.list
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main contrib non-free rpi
sudo apt update
sudo apt-get install vim -y
树莓派使用ssh连接了 先安装docker(建议都在home目录下进行 默认/home/pi)
sudo curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
安装完docker 安装homeassistant
homeassistant官网地址: 安装地址
上述是官方默认的安装方法 有注意点 **MY_TIME_ZONE PATH_TO_YOUR_CONFIG ** 这个是需要替换的 我这里给大家我的配置 我是pi3
docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-e TZ=Asia/Shanghai \
-v /home/pi/has:/config \
--network=host \
ghcr.io/home-assistant/raspberrypi3-homeassistant:stable
这个过程比较漫长 大家耐心等待一下 建议大家在下载之前去配置一下docker镜像加速
安装完成homeassistant之后 通过 http://IP:8123 地址可以直接打开管理后台页面
我是注册过了所以可以直接登录 第一次是需要注册的 注册也是非常简单的
首先在树莓派官网下载系统镜像 这里我选择的是Raspberry Pi OS with desktop
更新软件源
sudo apt-get update
更新系统软件(可选)
sudo apt-get upgrade
sudo apt-get install vim
修改以下两个文件
1、编辑 /etc/apt/sources.list 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os/raspbian/ buster main non-free contrib rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os/raspbian/ buster main non-free contrib rpi
2、编辑 /etc/apt/sources.list.d/raspi.list 文件,删除原文件所有内容,用以下内容取代:
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
更新验证
sudo apt-get update
//下一步会更新时间比较长,和自身带宽速度有关系,慎重操作
sudo apt-get dist-upgrade -y
sudo curl -sSL https://get.docker.com | sh
创建配置文件,配置NetworkManager不使用随机MAC
sudo mkdir -p /etc/NetworkManager/conf.d/
cat << EOF | sudo tee /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf
[connection]
wifi.mac-address-randomization=1
[device]
wifi.sacn-rand-mac-address=no
EOF
安装
sudo apt-get install -y network-manager
停止ModemManager服务
sudo systemctl stop ModemManager
sudo systemctl disable ModemManager
安装Apparmor很简单:
sudo apt install -y apparmor-utils jq software-properties-common apt-transport-https avahi-daemon ca-certificates curl dbus socat
但是需要注意,需要把Apparmor的启动配置参数加到树莓派的启动参数内(参考自:https://github.com/Kanga-Who/home-assistant/issues/25):
1
2
# 使用vim打开/boot/cmdline.txt
sudo vim /boot/cmdline.txt
末尾添加:apparmor=1 security=apparmor。
sudo apt-get install -y apparmor-utils jq software-properties-common apt-transport-https avahi-daemon ca-certificates curl dbus socat
还需要安装OS Agent。这个并没有在Debian的软件源内,所以我们需要使用dpkg安装。最新OS Agent的下载地址:https://github.com/home-assistant/os-agent/releases/latest:
比如,我这里下载并安装1.2.2版本的OS Agent:
# 下载OS Agent 1.2.2
wget https://github.com/home-assistant/os-agent/releases/download/1.2.2/os-agent_1.2.2_linux_aarch64.deb
# 使用dpkg安装
sudo dpkg -i os-agent_1.2.2_linux_aarch64.deb
还有一些其他的依赖需要安装,参考自:https://github.com/home-assistant/supervised-installer
sudo apt-get install \
jq \
wget \
curl \
udisks2 \
libglib2.0-bin \
dbus -y
在2022.11.27后Homeassistant正式需要Systemd Journal的支持;我们同样可以使用软件包管理器进行安装:
1
sudo apt install systemd-journal-remote -y
将pi用户加入docker组
sudo usermod -aG docker pi
设置docker的日志驱动,以及镜像的国内下载点
if [ | -d /etc/docker ];then
sudo mkdir -p /etc/docker
fi
cat << EOF | sudo tee /etc/docker/daemon.json
{
"log-driver":"journald",
"registry-mirrors":[
"https://rw21enj1.mirror.aliyuncs.com",
"https://dockerhub.a2k8s.cn",
"https://reg-mirror.qiniu.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
现在开始安装Home Assisistant Supervised啦。
因为有选项卡,请不要在screen内操作!!!
1 2 3 4 |
|
之后,没有问题就会出现选项卡,我们选择树莓派4B:
选择树莓派4B
选择树莓派4B-64
我的是树莓派4B,如果你是树莓派3,应该知道怎么操作吧?注意多下滑点,有树莓派 raspberrypi4-64版本。
安装过程……根据自己的网络,这一步可能会卡很久,如果还是不行,记得科学一下再重新安装:
卡很久
如果你出现grub配置错误,比如:
grub错误
解决方法很简单:
1 |
|
添加:systemd.unified_cgroup_hierarchy=false
1 |
|
添加:systemd.unified_cgroup_hierarchy=false
之后重启系统,重新进入系统后,再次使用命令安装(sudo dpkg -i homeassistant-supervised.deb)即可安装成功:
安装成功
如果过程中出现这样的错误:
安装失败
一般是网络问题,重新执行命令安装(sudo dpkg -i homeassistant-supervised.deb)即可安装试试。
使用docker命令,查看Supervised的容器状态(如果并没有Homeassistant容器;那么等10min~20min再试试,期间保持树莓派运行,Homeassistant会组建初始化完成):
Docker正常
进入IP:4357,可以查看Supervised的状态:
状态正常
但是,这个时候IP:8123无法进入Home Assisistant Supervised的管理页面,你需要重启一次服务器:
1 2 |
|
重启后,等待5分钟左右(Home Assisistant Supervised第一次启动比较慢),就可以通过IP:8123在浏览器访问了:
成功访问
状态正常
另外,安装一些插件(比如著名的xiaomi_miot_raw,需要自己编辑Home Assisistant的配置文件。
但是,官方好像没说这个配置文件在哪里。其实在/usr/share/hassio/homeassistant内:
配置文件
如果后续版本更新,不在这里。可以使用find命令进行搜索:
|
查找配置文件
另外,如果有Nginx Https反代的需求,需要让Nginx支持websocket服务的反代;参考配置:
1 2 3 4 5 6 7 8 |
|
到此,树莓派安装Home Assisistant Supervised就结束了。是不是还有人想知道如何桥接小米设备到Apple HomeKit?
这个…… 下次有机会和大家说,再和大家详细说说Nginx的反代和FRP映射,让我们可以远程访问Home Assisistant。
参考资料
首先下载安装脚本
curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
bash installer.sh
运行脚本
sudo bash installer.sh --machine raspberrypi3
国内网络无法正确解析https://raw.githubusercontent.com/的IP地址,可以通过改写hosts文件手动添加,但是下载经常失败,安装脚本也包含了部分在线下载的部分,无法正确执行。
此处改写了安装脚本,把在线下载的文件拷贝到本地,然后从本地路径加载,完成安装。
这种方法的问题时,当版本更新之后,在线获取的版本号可能需要手动更新一下。
官方的文件在 此处
修改好的文件已经上传到 github
具体操作方法如下:
git clone https://github.com/strivezh/supervised-installer.git
cd supervised-installer
sudo bash installer.sh --machine raspberrypi3
等待打印如下信息,说明安装完成:
在启动时还要下载homeassistant的镜像,需要等待一段时间,然后打开网页,等待HomeAssistant安装完成,具体等待时长网络情况有关。
sudo wget -O - https://get.hacs.xyz | bash -
问题描述:
Ubuntu下连接raw.githubusercontent.com失败
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|0.0.0.0|:443... failed: Connection refused.
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|::|:443... failed: Network is unreachable.
解决方法:
step-1
在 https://site.ip138.com/raw.Githubusercontent.com/
输入raw.githubusercontent.com查询IP地址
step-2
修改hosts Ubuntu,CentOS及macOS直接在终端输入
sudo vi /etc/hosts
添加以下内容保存即可 (IP地址查询后相应修改,可以ping不同IP的延时 选择最佳IP地址)
# GitHub Start
52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.247 api.github.com
185.199.111.153 assets-cdn.github.com
151.101.76.133 raw.githubusercontent.com
151.101.108.133 user-images.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com
151.101.76.133 avatars0.githubusercontent.com
151.101.76.133 avatars1.githubusercontent.com
151.101.76.133 avatars2.githubusercontent.com
151.101.76.133 avatars3.githubusercontent.com
151.101.76.133 avatars4.githubusercontent.com
151.101.76.133 avatars5.githubusercontent.com
151.101.76.133 avatars6.githubusercontent.com
151.101.76.133 avatars7.githubusercontent.com
151.101.76.133 avatars8.githubusercontent.com
# GitHub End
安装完成之后重启homeassistant服务 两种方法重启
sudo docker restart homeassistant
使用管理页面重启服务(配置 -> 服务管理 -> 重新启动)
HACS下载插件
官网地址:https://hacs.xyz/docs/setup/download
wget -O - https://hacs.vip/get | bash -
如果上面的命令执行后卡住不动,或没有提示安装成功,请尝试下面的命令
wget -O - https://hacs.vip/get | HUB_DOMAIN=ghproxy.com/github.com bash -
如果是haos/hassio/supervisor版本的HA,可直接在宿主机或Terminal & SSH加载项中执行上面的命令
如果是core/docker版本的HA,需要ssh登陆宿主机后,并cd进入到HA配置目录再执行安装命令
注册并登陆github账号
地址:https://github.com/
在homeassistant中点击Supervisor安装Samba share插件
安装Samba Share插件
点击安装
点击 启动 或 配置
设置一个密码(需数码+字母组合)
打开我的电脑-网络 输入树莓派IP地址(地址可在路由器中查看,地址前加\\)
输入上上步设置的用户名及密码然后点击确认
进入树莓派后 双击config进入文件夹
新建两个文件夹 (custom_components)(www)
将下载的HACS插件解压到 custom_components文件夹内
重启树莓派
点击配置-集成
点击添加集成
搜索HACS插件并安装
勾选四个后点击提交
复制代码然后打开上方连接
复制代码后点击继续
步骤(配置 -> 集成 -> 右下角添加集成搜索hacs) 弹框出来的选项全部勾选上 需要github授权(所以需要有github账号)
配置参考HACS官网 配置
安装完成后需要重启 homeassistant
插件: miot插件
集成 miot
添加智能家居
点击完成之后会显示你账号绑定的所有的智能家居 按需添加就行了
和上面方法一样只不过是搜索 homekit
添加成功后左边通知点开 然后用iPhone 家庭扫码桥接起来 然后设备全部添加进来就好了(每次集成完记得重启)
苹果手机家庭应用扫描通知弹出来的二维码,得在同一个局域网下,
添加之后在web上面添加自己手机参数
手机下载HomeAssistant
添加服务器,我添加的是局域网地址,后面安装cpolar之后可以换成公网地址。
按HACS官网说明一键安装,
但需要安装在hassio目录下,否则搜索不到HACS集成:
root@raspberrypi:~# docker exec -it homeassistant bash
bash-5.1# wget -O - https://get.hacs.xyz | bash -
然后重启homeassistant,在集成中就可以搜索到HACS了:
需要接受所有条件,然后点提交 :
直到出现以下信息,先不要点提交!先不要点提交!
先不要点提交! 先打开上面的超链接:https://github.com/login/device
登陆自己的github账户,我的github账户需要邮箱验证码,先去邮箱里找验证码填入核实,
然后复制homeassistant里HACS提示框中的xxxx-xxxx到github里,点继续:
在这里单击授权‘’Authorize hacs”。
看到以下确认屏幕后,再关闭选项卡并返回 homeassistant:
返回hass后会看到成功的提示,如果以下窗口没有自动关闭,就手动点下提交:
成功后会出现以下提示,选择一个区域或不选,点完成
刷新hass界面后,HACS会自动出现在左侧菜单中。
同样方法安装镜像版中文加速版HACS(可选)
root@raspberrypi:~# docker exec -it homeassistant bash
bash-5.1# wget -O - https://hacs.vip/get | HUB_DOMAIN=ghproxy.com/github.com bash -
先装了原版HACS,再装中文版出现了错误,手动删除custom_components\hacs文件夹
重新安装加速版,添加HACS集成,看到正常弹出:
1.在终端,将你的树莓派更新至最新
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
2.重启树莓派
sudo reboot
3.添加https存储库的功能,如果你已安装了,系统会报告“现在的版本已经是最新版”
sudo apt install apt-transport-https
4.添加Plex Media Server存储库
echo "deb https://dev2day.de/pms/ jessie main" | sudo tee /etc/apt/sources.list.d/pms.list
5.为存储库添加GPG密钥
cd /tmp
wget https://dev2day.de/pms/dev2day-pms.gpg.key
ls (#查看是否已经下载好dev2day-pms.gpg.key文件)
sudo apt-key add dev2day-pms.gpg.key
6.回到根目录
cd
7.更新源
sudo apt update
8.安装Plex媒体服务器
sudo apt install plexmediaserver-installer
9.创建默认配置文件,以便Plex知道要在哪个用户下操作
sudo nano /etc/default/plexmediaserver.prev
将里面的的
PLEX_MEDIA_SERVER_USER=plex
修改为
PLEX_MEDIA_SERVER_USER=pi
10. 重启PLEX服务,看到如下界面说明已经安装成功
systemctl restart plexmediaserver
systemctl status plexmediaserver
11.重启树莓派
sudo reboot
1.检查插入的USB硬盘已安装到哪里
sudo cat /proc/mounts
2.安装NTFS驱动器
sudo apt-get install ntfs-3g
3.查询已插入硬盘的UUID
ls -l /dev/disk/by-uuid
4.现在我们创建一个新的目录来挂载USB
sudo mkdir /media/usb1
5.接下来我们查询硬盘的UID和GID
id -g pi
id -u pi
6.我们需要对fstab文件进行编辑。这是启动时调用的文件,用于设置驱动器
sudo nano /etc/fstab
7.将以下代码的UUID、UID和GID更改为你查询到的填入
UUID=881EC0D61EC0BF06 /media/usb1 auto nofail,uid=输入你的UID,gid=输入你的UID,noatime 0 0
8.卸载之前挂载好的USB硬盘
sudo umount /dev/sda1
9.重新挂载USB硬盘
sudo mount -a
10.重启树莓派,完成全部安装
sudo reboot
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
安装完成后,我们输入一个简单命令“cpolar version”查询cpolar的版本号。如果能正确显示版本号,就说明cpolar已经安装成功(只有安装成功,才能查询到软件的版本号)。
在树莓派上的cpolar安装成功后,我们就需要激活本地的cpolar客户端,即登录cpolar官网并进行简单注册后,取得唯一的cpolar口令码(只有进行注册,并以专属的口令码识别客户端,才能有效识别不同用户的隧道)
而口令码的获取,我们可以在登录后,从两个位置取得。
一是cpolar的仪表盘界面处
二是仪表盘界面左侧的“验证”页面处
取得口令码后,即可回到树莓派命令行界面,输入命令
cpolar authtoken XXXXXXX(X位置为口令码内容)
口令码输入完毕后,cpolar会显示口令码已经记入配置文件,我们也就不必重复输入。
从上面的说明可以看出,cpolar的安装并不复杂,只需几个简单的步骤,就能将其安装到树莓派上。在cpolar安装完成后打开浏览器,输入树莓派ip:9200进入cpolar管理界面。
创建隧道(alist:5244,plex:32400,homeAssistant:8123)
使用 docker 搭建
1. 更新包
apt-get update && apt-get install -y wget vim
2. 一键安装 `docker`
wget -qO- get.docker.com | bash
3. 查看 `docker` 版本
docker -v
4. 开机自启
systemctl enable docker
安装 `docker-compose`
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
3. 安装稳定版 `Alist`
创建目录
sudo -i
cd ~
mkdir /home/local
1. 运行安装代码
docker run -d --restart=always -v /home/local:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest
* 端口可以改成自己喜欢的,==**但是`:`后面的 5244 不要改**==
* `/home/local` 不要更改,后面 `Samba` 要用
2. 查看密码
docker logs alist
# 运行 查看密码 的输出
INFO[2022-10-08 11:03:50] reading config file: data/config.json
INFO[2022-10-08 11:03:50] config file not exists, creating default config file
INFO[2022-10-08 11:03:50] load config from env with prefix:
INFO[2022-10-08 11:03:50] init logrus...
INFO[2022-10-08 11:03:50] Successfully created the admin user and the initial password is: Z1Kv8w8I
INFO[2022-10-08 11:03:51] Aria2 not ready.
INFO[2022-10-08 11:03:51] start server @ 0.0.0.0:5244
```
* **里面有个`user and the initial password is: Z1Kv8w8I `**
* 这是密码
* 账号是 `admin`,
3. 放行端口
sudo ufw allow 5244
4. 浏览器输入服务器ip+5244登录 `Alist`
树莓派IP:5244,登陆后修改admin密码
5. 添加本地存储
这里以阿里云盘为例 点击AList文档扫码获取复制Token(令牌)
后台选择存储 -阿里云盘,填写挂载路径 刷新令牌 看到work就表示配置成功
添加完账号后,重新打开127.0.0.1:5244
挂载百度网盘
https://alist.nn.ci/tool/baidu/callback.html?code=97af00783ec113c7e8445c60b3d01fb3
这里要注意后面如果视频播放不了选择非官方,文件下载选择官方
挂载天翼云盘
填写账号密码,根文件夹id填写-11
最终结果如下
1. 安装系列软件
ssh远程登录软件
1. 安装openssh-server
sudo apt-get install openssh-server
2. ssh相关的配置命令
sudo systemctl enable ssh# 开机自动启动ssh命令
sudo systemctl disable ssh#关闭ssh开机自动启动命令
sudo systemctl start ssh#单次开启ssh
sudo systemctl stop ssh#单次关闭ssh
sudo service ssh restart # 重启ssh
3. 查看是否启动成功
sudo systemctl status ssh
出现 `active(running)` 代表成功
4. 设置防火墙
sudo ufw allow ssh
安装 vim
sudo apt-get install vim
2. 安装 `Samba`
1. 安装
sudo apt-get install samba
2. 修改权限
sudo chown 你的用户名 /home/local
3. 配置samba
sudo vim /etc/samba/smb.conf
在配置文件末尾添加下面内容:
[share]
comment = samba home directory
path = /home/share
public = yes
browseable = yes
public = yes
read only = no
writable = yes
create mask = 0777
directory mask = 0777
available = yes
security = share
防止乱码
在smb.conf中[global]中加入
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
4. 检查
* 如果看到 ok 则正常
testparm
5. 启动 `samba` 服务
sudo service smbd restart
6. 添加防火墙
#更新防火墙规则
#我们需要更新防火墙规则,通过发布这个命令来允许这个服务。
sudo ufw allow samba
然后就可以使用了
Samba` 和 `Alist` 本地存储连接的是同一个文件夹
windows上
执行 `Wi你+R` 输入ip地址回车然后输入用户名和密码就可以访问共享文件夹了
在文件资源管理器中填入ip即可访问
这样就可以使用 `Samba` 的共享文件夹上传资源不会有限制,使用 `Alist`来查看文件和管理用户了
Win10 访问 Linux samba 拒绝访问
问题一:" 你没有权限访问 \\ * . * . * . * ,请与网络管理员联系请求访问权限。"
解决步骤:
问题二:Windows资源管理器可以看到samba共享的文件夹,打开文件夹提示[拒绝访问]
解决步骤:
参考
背景: 网络没问题,win和Linux可以相互ping通。但是win资源管理器远程samba访问共享文件仍然出现以下报错。网上试了很多办法大部分都没用,现把对于自己有用的方法罗列如下供大家参考。
问题一:" 你没有权限访问 \ * . * . * . * ,请与网络管理员联系请求访问权限。"
解决步骤:
在win的命令行敲net use 可以看到当前运行的进程。已经运行的进程会影响到接下来的访问。然后敲net use * /delete 选择 Y 删除前面的链接。
问题二:Windows资源管理器可以看到samba共享的文件夹,打开文件夹提示[拒绝访问]
解决步骤:
删除原有凭证
2.在linux命令行里vi /etc/samba/smb.conf,按i进入编辑模式
3.在最下面粘贴如下代码(之前有这部分的根据下面内容进行相应的删减)
[share]
comment = samba home directory
path = /home/你的文件夹名(替换的)
public = yes
browseable = yes
public = yes
read only = no
writable = yes
create mask = 0777
directory mask = 0777
available = yes
security = share
重新进入即可
使用RaiDrive将 WebDav 服务挂载到本地磁盘
RaiDrive 将网盘映射到电脑磁盘 官网 RaiDrive
点击添加选择NAS的WebDav, 账号密码在Alist管理后端界面设置中直接复制,地址记得取消勾选,譬如
网盘成功挂载到本地磁盘,添加完成后可以在我的电脑中找到网络硬盘的位置,可以像操作网盘
中的文件像移入移出、压缩解压、调用系统程序打开资源、甚至还可以实现不同网盘间的文件互转等等~
打开播放器点击新建专辑,配置中填写专辑名称、选择WebDav协议,最重要的是填写主机/路径。那么如何查询主机路径呢?cmd输入ipconfig/all查询主机路径
填写主机/路径为192.168.0.102/dav;也可填写为127.0.0.1/dav,路径/dav不能更改,端口号为5244,最后输入Alist的用户名和密码,确定完成。
这样我们就在Potplayer播放器中搭建好了Alist的播放列表啦。
手机可以下载ES文件浏览器导入WEBDAV,这样手机也可以访问alist,这里可以在cpolar后台创建tcp服务端口5244,复制隧道列表里的服务器地址和端口,填到手机上。
再下载infuse视频播放器,方法同上。
如果没有使用树莓派,也可以操作,Windows系统上可以在Windows应用商店里下载安装Ubuntu系统,要开启wsl服务
打包
wsl --export Ubuntu-20.04 E:\Ubuntu\ubuntu.tar.gz
注销之前
wsl --unregister Ubuntu-20.04
导入
wsl --import Ubuntu-20.04 E:\Ubuntu\ E:\Ubuntu\ubuntu.tar.gz --version 2
设置默认登陆用户为安装时用户名
ubuntu2004.exe config --default-user dwb
更新清华镜像
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
安装ubuntu-desktop
sudo apt install ubuntu-desktop
安装systemctl
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh
安装完毕后,输入sudo vi ~/.bashrc,在文件末尾添加:
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0
export XDG_SESSION_TYPE=x11
解决删除文件后 WSL2 磁盘空间不释放的问题
原因
wsl2下删除文件windows下的硬盘空间是不会变化的,WSL2 本质上是虚拟机,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。
备份(可选)
在 PowerShell 中执行:
# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 备份指定的 Linux distribution 到指定的位置
wsl --export Ubuntu-20.04 D:\Ubuntu-20.04.tar
如果后续步骤出现错误,可以从备份的文件中恢复。本人后续步骤并没有出现错误,所以并没有实践恢复的操作。
有需要的读者可以参考:wsl2-backup-and-restore-images-using-import-and-export
压缩虚拟磁盘文件
在 PowerShell 中执行:
# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 运行管理计算机的驱动器的 DiskPart 命令
diskpart
在新打开的 DiskPart 命令窗口中执行:
# 选择虚拟磁盘文件(默认位置)
select vdisk file="C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
#如果将WSL2移动到其他盘了
select vdisk file="E:\Ubuntu\ext4.vhdx"
# 压缩文件
compact vdisk
# 压缩完毕后卸载磁盘
detach vdisk
上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了。
transmission是一款BT下载软件,可以装在服务器上下载种子。本文介绍transmission在ubuntu系统下的安装过程。
1 安装transmission
首先安装transmission-daemon,daemon版本适合安装在没有显示器的服务器上,使用web页面来控制软件。
Debian安装复制后面内容不带sudo即可
sudo apt-get install transmission-daemon
2 修改transmission-daemon配置文件
以下是 transmission-daemon的使用命令:
# 启动
sudo service transmission-daemon start
/etc/init.d/transmission-daemon start
# 停止
sudo service transmission-daemon stop
/etc/init.d/transmission-daemon stop
# 重启
sudo service transmission-daemon restart
/etc/init.d/transmission-daemon restart
安装完成后,应当立即启动一下程序,再停止程序,防止配置文件被覆盖。接下来,编辑配置文件:
sudo nano /var/lib/transmission-daemon/info/settings.json
需要修改的地方有:
"rpc-host-whitelist": "*", //域名白名单,*为允许所有
"rpc-host-whitelist-enabled": false, //是否开启白名单,false为否
"rpc-password": "远程登录密码",
"rpc-port": 9091, //远程登录端口
"rpc-username": "远程帐号",
"rpc-whitelist": "*", //ip白名单
"rpc-whitelist-enabled": false, //是否开启ip白名单,false为否
保存后,使用上面的命令启动一下即可。然后访问 http://ip地址:9091 或 http://ip地址:9091/transmission/web
3 可能出现的问题
403 Forbidden错误
出现这个问题主要是因为没有关闭域名白名单和ip白名单,此时应该根据本文 第二部分:修改transmission-daemon配置文件 的描述正确地修改配置文件。请注意,修改配置文件之前一定要先停止程序!
409 Conflict
出现这个问题的原因是浏览器没有获得到X-Transmission-Session-Id header,大概率是因为我们直接访问了 http://ip地址:9091/transmission/web。此时,你可以尝试直接访问 http://ip地址:9091
3美化web页面,默认的webui很简陋,我们装使用一键脚本安装一个新页面即可
transmission UI 汉化 GitHub项目地址:https://github.com/ronggang/transmission-web-control
切换root用户,执行以下命令,下载一键安装脚本:
wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh && bash install-tr-control-cn.sh
执行脚本显示以下信息:
欢迎使用 Transmission Web Control 中文安装脚本。
官方帮助文档:https://github.com/ronggang/transmission-web-control/wiki
安装脚本版本:1.2.3
1. 安装最新的发布版本(release);
2. 安装指定版本,可用于降级;
3. 恢复到官方UI;
4. 重新下载安装脚本(install-tr-control-cn.sh);
5. 检测 Transmission 是否已启动;
6. 指定安装目录;
9. 安装最新代码库中的内容(master);
===================
0. 退出安装;
请输入对应的数字:
输入数字1回车即可。
输入y回车确认安装。
显示以下信息表示安装成功!
<< 2021-09-22 15:04:23 >> 下载完成,正在准备安装...
<< 2021-09-22 15:04:23 >> 正在解压安装包...
<< 2021-09-22 15:04:23 >> 正在复制安装包...
<< 2021-09-22 15:04:23 >> 正在设置权限,大约需要一分钟 ...
<< 2021-09-22 15:04:25 >> Transmission Web Control 安装完成!
<< 2021-09-22 15:04:25 >> 正在清理安装包...
<< 2021-09-22 15:04:25 >> 安装脚本执行完成。如遇到问题请查看:https://github.com/ronggang/transmission-web-control/wiki
<< 2021-09-22 15:04:25 >> == 结束 ==
然后我们刷新一下网页,就可以看到新的界面了,如下图所示