github上,对电脑虚拟机的辅助项目

一 Bottles:一款可轻松实现 Linux 上运行 Windows 软件的工具。

该项目由python写成,提供了清爽易用的 GUI 界面,用户就算不懂任何编程技巧,也可通过wine,轻而易举地在 Linux 系统上,运行 Windows 的游戏和软件。
地址:github.com/bottlesdevs/Bottles

二 使用 WinApps 在 Linux 桌面上无缝运行 Windows 应用程序

WinApps for Linux 使运行 Windows 应用程序变得容易 https://github.com/Fmstrat/winapps,安装说明在https://nowsci.com/winapps/
这个东东严格来说不算是虚拟机,只是先安装qume/kvm虚拟机,然后在其中安装win10, 或win11后开通远程桌而,这个winapps的作用就是利用linux运程桌面可以运行
qemu/kvm虚拟机中的windows程序,比如excel, ppt,或文件管理器,看起来就象是linux的原生应用一样。

New blink 是一款虚拟机可用来跑静态编译的 x86-64 Linux,它适用于不同的操作系统和硬件架构。它和 qemu-x86_64 实现类似功能,除了 blink 不是一个 4 mb 的二进制而是一个约 158 kb 的小东西之外,在某些基准测试中,比如:gcc 模拟,blink 比 Qemu 更快。由于体积小,作为折中的方案,blink 在系统集成方面不如 Qemu 丰富。
GitHub 地址→github.com/jart/blink

四 winlator 模拟器

winlator模拟器一款可将手机变身成为一部真实的pc,可畅玩各种电脑端游戏,兼容性强大,并且对于手机的性能没有过高的要求

五 https://github.com/dockur/windows

简介:Docker 容器中的 Windows

六 轻量级虚拟机新宠——Multipass

Multipass的底层技术基于Hypervisor,支持KVM、Hyper-V和VirtualBox等虚拟化技术。这意味着无论你的操作系统是Ubuntu、macOS还是Windows,Multipass都能提供稳定而高效的服务。虽然Multipass在功能上可能不及VMware那样全面,但它在轻量化和易用性上展现出独特优势。VMware拥有强大的虚拟化功能,非常适合企业级环境和生产环境的复杂需求。但如果你的需求倾向于轻量级的开发和测试,Multipass则是一个理想的选择。

七 Docker-OSX — 在Docker中运行macOS

https://github.com/sickcodes/Docker-OSX
Docker-OSX是一个开源项目,而且支持多个版本的MacOS,比如说Catalina、Big Sur等。使用Docker部署Docker-OSX毕竟是运行一个系统,所以硬件上不能太差
Docker-OSX 借助 OSX-KVM 和 OpenCorePkg 在 Docker 容器内创建高度实用的 macOS 环境。该项目支持多个 macOS 版本,包括 Catalina、Big Sur、Monterey 和 Ventura。

还有一个类似的项目,dockur/maco

https://github.com/dockur/macos,也是在docker中运行macos,不过这个macos的版本少一些

八 WebVM https://github.com/leaningtech/webvm

浏览器中的linux虚拟机,2025年5月实际部署,以网页出现404失败。

九 xoureldeen/Vectras-VM-Android

Vectras VM是一款基于QEMU的Android虚拟机应用,支持模拟Windows、macOS、Linux和Android等操作系统。https://github.com/xoureldeen/Vectras-VM-Android

十 https://github.com/HeyPuter/puter

puter是一个nodejs软件,安装后,可在另一台电脑的浏览器查看这台电脑的一个GUI界面,有浏览器与终端,但是我试了, 在termux下无法运行,在anlinux下暂时没有试验

吐槽网络小说2

看网络小说总结出几个糟点二
  1. 穿回现代十几年前,抄小说,抄歌曲,抄音乐成为名利双收的土豪。然后遇到盗版的,马上深恶痛觉,依靠法律打击云云。
  2. 半渣男模式,一边宣称对爱情忠,一边僚女不断。
  3. 女生小说99%都是被负心汉害死,穿回去后,身边人全是心机婊。各种心眼,可怕……
  4. 听说有些快穿任务者,在每个世界都终身不娶。丝毫不管原主处于,哪个时代,什么家庭背景,是否承担着父母长辈传宗接代的期望。甚至死后将原主的遗产,全部捐献出去,让整个家族就此湮灭。
    美其名曰不牵扯因果。卧槽,装尼玛呢?
  5. 番茄太多的女频小说,都是手撒渣男的情节,看多了让人吐。于是我搜索“男频没有女频的小说”,结果给我推荐了一些小说的内容是:“我穿成渣男了,这一世我替渣男赎罪……”,哈哈哈。

linux上的改键软件

笔记本电脑上有几个按键不灵了,window到时有好多改键软件,linux没有啊。今天听说了一个,记录下来

  1. keyd:Linux 系统级改键工具。这是一个 Linux 上的系统级键盘重映射守护进程,基于内核输入层(evdev/uinput)实现,无需依赖桌面环境,配置在 X11、Wayland 和 TTY 终端中均可生效。支持按下、长按设置不同动作、自定义按键组合,以及为不同键盘单独配置按键映射规则等功能。

Distrobox---在linux下运行的,类似于termux功能的容器

一直喜欢在手机下用termux的原因是,我随时可以采用anlinux的方式,来在proot的容器下运行一套linux, 然后做各种验证,不会污染别的系统。可是必竟手机的限制还是大啊。总想着我的PC机上能不能装termux,今天竟让我找到了,原来linux原生就有这种功能的软件,它就是Distrobox

一 简介
  1. distrobox create 创建一个新的容器环境
  2. distrobox enter 进入一个己创建的容器环境
  3. distrobox list 列出所有由distrobox创建过的容器
  4. distrobox stop 停止一个正在运行的容器
  5. distrobox rm 删除一个容器
  6. distrobox upgrade 升级容器内的软件包
二 创建容器常用参数
  1. –name :为容器指定一个名字,如 ubuntu20,debian12等
  2. –image: 指定要使用的镜像 (如 ubuntu:22.04, archlinux:latest)
  3. –home:为容器指定一个独立的Home目录,以免污染宿主机的home目录
  4. –additional-packages / -ap: 在创建时预装软件包(如 git vim curl)。
  5. –init-hooks: 在容器初始化完成后执行的命令。
  6. –root / -r: 以 root 权限启动容器。
  7. –nvidia: 尝试集成主机的 NVIDIA 驱动,用于 GPU 加速
三 列子

例子 1.

1
2
3
# 创建一个名为 my-ubuntu 的 Ubuntu 22.04 环境,并预装 git 和 vim
distrobox create --image ubuntu:22.04 --name my-ubuntu --additional-packages "git vim"

例子 2.

1
2
3
4
5
6
7
8
9
10
$ distrobox create \
--name test-debian \
--image debian:bookworm \
--hostname test-debian \
--memory 4G \
--cpus 2 \
--mount ~/work/testdata:/opt/testdata:ro \
--no-home
$ distrobox enter test-debian # 进入刚才创建的环境

参数解释

  1. –memory 4G –cpus 2:限制资源,防止测试程序吃光机器性能
  2. –mount ~/work/testdata:/opt/testdata:ro:只读挂载你宿主机测试素材;不需要可以删掉
  3. –no-home:不把宿主~目录直接映射进容器,防止容器内误删宿主文件(安全推荐)
四 更安全的参数
  1. distrobox ephemeral 创建一个临时容器,退出 shell 后自动销毁,适合一次性任务
1
2
3
4
5
6
distrobox ephemeral \
--image debian:bookworm \
--memory 3G \
--cpus 2 \
--mount ~/work/testdata:/opt/testdata:ro

ephemeral 环境内所有修改,exit 之后全部消失,不要存放重要数据,不留任何痕迹
2. –network none 容器无法联网,防止恶意程序外联下载、窃取信息

1
2
3
4
5
6
distrobox ephemeral \
--image debian:bookworm \
--memory 3G \
--cpus 2 \
--network none

python初始化以及,pip 换源

python建立虚环境,换源的方法,以前在别的文档中写,查找麻烦,在这里重新总结

1
2
3
4
$ apt install virtualenv  #建立虚环境
$ python -m venv virtualenv # 另一种命令
$ pip install streamlit -i https://mirrors.bfsu.edu.cn/pypi/web/simple # 北外的源

pip国内的一些镜像

阿里云:http://mirrors.aliyun.com/pypi/simple/“
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣:https://pypi.doubanio.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
腾讯云:https://mirrors.cloud.tencent.com/pypi/simple/
浙江大学:http://mirrors.zju.edu.cn/pypi/web/simple/
网易:http://mirrors.163.com/pypi/simple/
华为云:https://repo.huaweicloud.com/repository/pypi/simple
北京外国语大学:https://mirrors.bfsu.edu.cn/pypi/web/simple
上海交通大学:https://mirrors.sjtug.sjtu.edu.cn/pypi/web/simple
南京大学:https://mirrors.nju.edu.cn/pypi/web/simple

修改源方法:

临时使用: 
可以在使用pip的时候在后面加上-i参数,指定pip源 
eg: pip install streamlit -i http://mirrors.aliyun.com/pypi/simple

永久修改: 
linux: 
修改 ~/.pip/pip.conf (没有就创建一个), 内容如下:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple

让我的flask在linux下开机自动运行

我的debian12电脑中的flask程序,每次要 cd 我的项目目录;source bin/activate; python app.py, 可是我想开机就执行,那如何处理?

第一步:创建 systemd 服务文件
1
$ sudo nano /etc/systemd/system/myflaskapp.service
第二步:填写服务内容

将下面的内容复制到文件里。你需要替换掉 User、WorkingDirectory 和 ExecStart 这三行里的实际信息,其他部分保持通用即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=My Flask Application
After=network.target

[Service]
User=你的用户名
WorkingDirectory=/home/你的用户名/你的项目目录
Environment="PATH=/home/你的用户名/你的flask目录/bin"
ExecStart=/home/你的用户名/你的项目目录/venv/bin/python app.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

注意:Environment 那行是在设置环境变量 PATH,这能确保系统运行 app.py 时能找到虚拟环境里的 python 命令,效果等同于你手动 source bin/activate。

第三步:启动并让服务开机自启

保存文件后,依次执行以下命令:

1
2
3
4
5
6
7
8
9

# 1. 让 systemd 重新加载,识别新的服务文件
sudo systemctl daemon-reload

# 2. 启动你的 Flask 应用
sudo systemctl start myflaskapp

# 3. 设置开机自启
sudo systemctl enable myflaskapp
第四步:检查和调试

你可以用下面的命令确认服务是否正常运行:

1
2
3
4
5
6

# 查看运行状态
sudo systemctl status myflaskapp

# 查看实时日志(按 Ctrl+C 退出)
sudo journalctl -u myflaskapp -f

ubuntu,或 debian下,利用nvm安装nodejs

一 安装 nvm, 以下方法二选一
1
2
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.6/install.sh | bash
二 利用nvm安装并管理nodejs
1
2
3
4
5
6
7
8
9
$ nvm install 22  # 安装nodejs v22.22.1 
$ node -v # v22.22.1
$ nvm install 24.5 # 同时,还能安装别的版本,如nodejs v24.5.0
$ node -v # v24.5.0

$ nvm use 22 # 指定使用nodejs的这个版本 v22.22.1 (npm v10.9.4)
$ node -v # v22.22.1
$ nvm use 20 # 指定使用 node的这个版本 v20.20.1 (npm v10.8.2)
$ node -v # v20.20.1

免费域名与内网穿透项目

1. FreeDomain:领取你的免费域名。

该项目是由非营利组织 DigitalPlat 发起,旨在为个人和组织免费提供域名注册服务。用户可注册一个免费域名,并将其托管在 Cloudflare、Hostry 等 DNS 提供商。

2. threatexpert/gonc: 告别IP地址!用暗号实现内网直连的神器来了

threatexpert/gonc的核心思路特别简单:把“连接”从IP依赖变成“暗号”匹配。你不需要知道对方的公网IP,也不需要搭建中转服务器,只要两端同时喊出一个暗号,系统就能自动完成打洞直连,而且全程加密。

为什么能做到?这背后是“三件黑科技”。

第一件:零配置的内网穿透。它利用STUN协议获取你的外网地址,再通过MQTT信令交换打洞信息。两端同时向公共服务器发送暗号,服务器就会帮你“牵线搭桥”,尝试UDP或TCP打洞。成功率超过90%,就算遇到对称NAT,也能自动降级到TURN中转。对比frp和ngrok,你不需要买服务器、不需要配域名,一条命令搞定。

第二件:端到端加密+双向认证。默认使用TLS 1.3或DTLS加密所有流量,并且支持双向证书认证。就算暗号泄露,没有正确证书的第三方也连不上。这比传统nc的明文传输和socat的繁琐配置强太多了。

第三件:自带“懒人模式”多功能。它内置了HTTP文件服务器、SOCKS5代理、端口转发、反弹Shell等功能。比如你想让外网访问内网的文件,一条命令就启动文件服务,结合P2P隧道,直接暴露给对端。甚至还能配合WireGuard实现异地组网,把gonc的P2P隧道作为底层传输。

3. NetBird是一个基于WireGuard的零信任mesh网络方案,Go语言写的,2021年开源到现在拿了26.5k star,1.4k fork。

功能就一句话:把你散落在各地的设备(笔记本、服务器、树莓派、手机)拉进一张加密的虚拟局域网,设备之间点对点直连,不走中转服务器。和传统VPN的区别是它不需要开公网端口,不需要配防火墙规则,NAT穿透全自动,装完就能用。
一条命令装完

自托管的门槛低到离谱,一台1核2G的Linux小鸡就够,只要公网能访问TCP 80/443和UDP 3478就行。

1
2
export NETBIRD_DOMAIN=netbird.example.com
curl -fsSL https://github.com/netbirdio/netbird/releases/latest/download/getting-started.sh | bash

脚本会自动装好管理面板、信令服务器、TURN中继、身份认证一整套。客户端更简单,Linux一行curl -fsSL
https://pkgs.netbird.io/install.sh | sh,Windows/macOS/Android/iOS都有官方包,连OpenWRT、群晖、pfSense、树莓派都支持。

4. DDNS-Go, 3MB的开源DDNS神器,1秒打通外网访问
  1. 动态域名的全自动同步, 它在后台运行时,它会每隔几分钟,极其敏锐地去测一下你家网卡当前的公网IP。一旦发现IP发生了变动,它会瞬间调用域名解析商的官方API接口,在后台把你的域名自动更新指向这个新IP。
  2. 极简的配置流, 域名准备:去阿里或腾讯花几块钱买一个一整年的便宜域名。获取它们的AccessKey。打开DDNS-Go的网页后台,填入你买域名的账号Key。开启IPv6(重点):在IPv6一栏,勾选启用。在Domains(域名)栏,写下你的域名(如nas.abc.com)。点击保存。 从此以后,只要你在外面输入你的专属二级域名,数据就会跨越千山万水,以你家宽带绝对的物理上限速度,直连回你卧室的NAS里。不用去给各种商业穿透软件交几百块的年费,用你本来就拥有的IPv6算力,开启真正的千兆私有云盘。获取指南: 直接在浏览器或GitHub搜索DDNS-Go(作者是jeessy)
5. 千问给的免费域名+内网穿透建站方案
  1. us.kg (目前最火的免费二级域名)

    特点:完全免费,支持自定义前缀(如 crm.us.kg),最关键的是它支持将 DNS 托管到 Cloudflare。
    优势:只要接入 Cloudflare,你就能免费使用 Cloudflare Tunnel、CDN 加速和 WAF 防火墙,体验和几十块钱的顶级域名一模一样。
    获取方式:搜索 us.kg 域名注册(有很多开源社区提供的免费注册面板),注册后在 Cloudflare 添加站点即可。

  2. 穿透工具:Cloudflare Tunnel (cloudflared)。完全免费,无需公网 IP,自带 CDN 加速,自动提供 HTTPS。
    域名:将刚才的域名与其 DNS 托管到 Cloudflare。
    优势:企业网站用顶级域名显得正规,且 Cloudflare 能帮你抵御基础的 DDoS 攻击

2026年7月,在termux下试装alphie linux

下载 alphine linux 的 rootfs文件并安装
  1. 地址是,http://mirrors.aliyun.com/alpine/latest-stable/releases/aarch64/?spm=a2c6h.25603864.0.0.59865e6caRiYXM
  2. 采用我以前的文章中的脚本改进把alphine的rootfs解压
进入alphine, 由于alphine中没有bash, 只有ash, 所以star脚本有些不同
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/data/data/com.termux/files/usr/bin/sh
cd $(dirname $0)
## unset LD_PRELOAD in case termux-exec is installed
unset LD_PRELOAD
command="proot"
command+=" --link2symlink"
command+=" -0"
command+=" -r debian13"
if [ -n "$(ls -A ubuntu-binds)" ]; then
for f in ubuntu-binds/* ;do
. $f
done
fi
command+=" -b /dev"
command+=" -b /proc"
command+=" -b debian13/root:/dev/shm"
## uncomment the following line to have access to the home directory of termux
#command+=" -b /data/data/com.termux/files/home:/root"
## uncomment the following line to mount /sdcard directly to /
command+=" -b /sdcard"
command+=" -b /storage"
command+=" -w /root"
command+=" /usr/bin/env -i"
command+=" HOME=/root"
command+=" PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/local/games"
command+=" TERM=$TERM"
command+=" LANG=C.UTF-8"
command+=" /bin/ash --login"
com="$@"
if [ -z "$1" ];then
exec $command
else
$command -c "$com"
fi
设置
1
2
3
4
5
6
7
8
9
10
cat > /etc/resolv.conf <<EOF
nameserver 223.5.5.5
nameserver 1.1.1.1
nameserver 8.8.8.8
EOF
sed -i 's|https://dl-cdn.alpinelinux.org/alpine|https://mirrors.tuna.tsinghua.edu.cn/alpine|g' /etc/apk/repositories # 设置成清华源
apk update
apk upgrade
apk install vim-full

2026年7月,时隔五年重新启动Anlinux

自从termux支持debootstrap后,我发现我可以随时生产最新版的debian arm系统,都弃用繁琐的anlinux, 可是直到2026年7月,发现新版的termux竟改了一些权限,导致在termux下使用debootstrap生成的debian竟然不能生成sudo 用户, systemcrtl也有问题,豆包与deebseek都劝我用proot-distro安装,然而,新版的proot-distro竟然是从docker来拉取linux的rootfs的,我的个天啊,国内这网络环境,对docker天然不友好。于是悲催了,我的手机无法安装linux了。肿么办?翻开老笔记,再结合阿里的通义千问3.7的建议,于是重新拾取了Anlinux

一 安装ubuntu26.04

  1. 到https://cdimage.ubuntu.com/ubuntu-base/releases/ 下载26.04版的 rootfs ubuntu-base-26.04-base-arm64.tar.gz
  2. 把 ubuntu-base-26.04-base-arm64.tar.gz 放到termux的 ~\目录下
  3. 修改ubuntu2604.sh脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/data/data/com.termux/files/usr/bin/bash
folder=ubuntu-2604
if [ -d "$folder" ]; then
first=1
echo "skipping downloading"
fi
# 定义ubutnu26.04 的 rootfs

tarball="ubuntu-base-26.04-base-arm64.tar.gz"
cur=`pwd`
mkdir -p "$folder"
cd "$folder"
echo "Decompressing Rootfs, please be patient."
proot --link2symlink tar -zxvf ${cur}/${tarball}||:
cd "$cur"

mkdir -p ubuntu-binds
bin=start-ubuntu.sh
echo "writing launch script"
cat > $bin <<- EOM
#!/bin/bash
cd \$(dirname \$0)
## unset LD_PRELOAD in case termux-exec is installed
unset LD_PRELOAD
command="proot"
command+=" --link2symlink"
command+=" -0"
command+=" -r $folder"
if [ -n "\$(ls -A ubuntu-binds)" ]; then
for f in ubuntu-binds/* ;do
. \$f
done
fi
command+=" -b /dev"
command+=" -b /proc"
command+=" -b ubuntu-2604/root:/dev/shm"
## uncomment the following line to have access to the home directory of termux
#command+=" -b /data/data/com.termux/files/home:/root"
## uncomment the following line to mount /sdcard directly to /
command+=" -b /sdcard"
command+=" -b /storage"
command+=" -w /root"
command+=" /usr/bin/env -i"
command+=" HOME=/root"
command+=" PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/local/games"
command+=" TERM=\$TERM"
command+=" LANG=C.UTF-8"
command+=" /bin/bash --login"
com="\$@"
if [ -z "\$1" ];then
exec \$command
else
\$command -c "\$com"
fi
EOM

echo "fixing shebang of $bin"
termux-fix-shebang $bin
echo "making $bin executable"
chmod +x $bin
echo "removing image for some space"
rm $tarball
echo "You can now launch Ubuntu with the ./${bin} script"
  1. 执行 bash ubuntu2604.sh 脚本,对刚才下载的 ubuntu-base-26.04-base-arm64.tar.gz进行解压,并生成启动脚本 start-ubuntu.sh
  2. 执行 bash start-ubuntu.sh,进入刚才安装的ubuntu26.04
  3. 在root用户名与目录下进行如下操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 写入公共 DNS 服务器地址
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 223.5.5.5" >> /etc/resolv.conf
apt update
apt upgrade -y
# 安装最常用的基础工具:sudo、文本编辑器、网络工具、压缩工具等
apt install -y sudo vim wget curl net-tools locales
adduser frank
# 修改 /etc/sudoer文件,增加 frank ALL....
我采用解压,并成功启动ubunt26.04, apt update ,并apt install sudo 然后添加sudo用户frank成功后,采用groups查询,有以下信息,请问需要处理吗?
frank@localhost:~$ groups
groups: cannot find name for group ID 3003
groups: cannot find name for group ID 9997
groups: cannot find name for group ID 20292
groups: cannot find name for group ID 50292
frankli 3003 9997 20292 50292
# 通义千问回答: 结论:完全不需要处理,这不会影响您的任何正常使用。您可以放心地继续使用 frankli 用户,您的 sudo 权限和系统功能都是完全正常的。

二 安装debian13 trixie

在debian官网上没有找到debian的rootfs, 不过可以在电脑上通过我讨厌的docker来拉取,还好有podman这个比docker好用的工具

  1. 在PC电脑上拉取debian的rootfs
1
2
3
4
5
6
7
mkdir trixie
cd trixie
podman pull --platform linux/arm64 debian:trixie-slim
podman create --name temp-debian debian:trixie-slim
podman export temp-debian > debian13-trixie-arm64.tar
ls # 会在本目录下有debian13-trixie-arm64.tar这个文件
podman rm temp-debian # 删除刚才操作所生成的其它文件,但不会删除 debian13-trixie-arm64.tar
  1. 把 debian13-trixie-arm64.tar 放到termux的 ~\目录下
  2. 在手机的termux下执行
1
2
3
4
5
6
# 1. 创建专属目录
mkdir ~/debian13
# 2. 进入该目录
cd ~/debian13
# 3. 执行解压(加上 --preserve-permissions 保留原始权限)
tar -xvf ~/debian13-trixie-arm64.tar --preserve-permissions
  1. 在手机的termux下编写 start-trixie.sh脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/data/data/com.termux/files/usr/bin/bash
cd $(dirname $0)
## unset LD_PRELOAD in case termux-exec is installed
unset LD_PRELOAD
command="proot"
command+=" --link2symlink"
command+=" -0"
command+=" -r debian13"
if [ -n "$(ls -A ubuntu-binds)" ]; then
for f in ubuntu-binds/* ;do
. $f
done
fi
command+=" -b /dev"
command+=" -b /proc"
command+=" -b debian13/root:/dev/shm"
## uncomment the following line to have access to the home directory of termux
#command+=" -b /data/data/com.termux/files/home:/root"
## uncomment the following line to mount /sdcard directly to /
command+=" -b /sdcard"
command+=" -b /storage"
command+=" -w /root"
command+=" /usr/bin/env -i"
command+=" HOME=/root"
command+=" PATH=/usr/local/sbin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/games:/usr/local/games"
command+=" TERM=$TERM"
command+=" LANG=C.UTF-8"
command+=" /bin/bash --login"
com="$@"
if [ -z "$1" ];then
exec $command
else
$command -c "$com"
fi

  1. 在termux下执行 bash start-trixe.sh 进入了debian, 发现拉取的debian是最新版的,并且这个是完整版,己经有了/etc/resolv.conf文件了,所以可以直接 apt update; apt install vim sudo -y就行了。但是修改resolv.conf可以提速,于是还可以如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 1. 修复 DNS(解决无法 ping 通域名的问题)
echo "nameserver 223.5.5.5" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf

# 2. 更新软件源并安装您之前需要的 sudo 和用户管理工具
apt update
apt install -y sudo adduser vim-tiny curl wget

# 3. 创建您的普通用户并赋予 sudo 权限
adduser frank
usermod -aG sudo frank

# 4. 切换到 frank用户测试
su - frank
sudo whoami 如果显示为root则为正常

三 proot-distro安装下载的rootfs

1
proot-distro install debian13 --tarball ~/debian13-trixie-arm64.tar