<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[凌爱]]></title><description><![CDATA[picdupeの博客]]></description><link>https://0i.nz</link><image><url>https://0i.nz/logo.png</url><title>凌爱</title><link>https://0i.nz</link></image><generator>Shiro (https://github.com/Innei/Shiro)</generator><lastBuildDate>Sat, 04 Apr 2026 00:46:37 GMT</lastBuildDate><atom:link href="https://0i.nz/feed" rel="self" type="application/rss+xml"/><pubDate>Sat, 04 Apr 2026 00:46:37 GMT</pubDate><language><![CDATA[zh-CN]]></language><item><title><![CDATA[Adobe 软件启动报 0xc0000142 解决方法]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/tech/Fix-Adobe-Software-Startup-Error-0xc0000142">https://0i.nz/posts/tech/Fix-Adobe-Software-Startup-Error-0xc0000142</a></blockquote><div><h2 id="">问题原因</h2><p>Adobe 各个产品安装时，会在自己的 <code>Support Files</code> 目录里附带一份运行库 DLL（如 <code>msvcp140.dll</code>、<code>vcruntime140.dll</code>、<code>concrt140.dll</code>），通常版本较旧（例如 <code>MSVCP140.dll 14.23.27820.0</code>，2019 年版）。<br/>冲突情况：<br/>本机已安装新版  <strong>VC++ 2015-2022 Redistributable</strong><br/>Adobe 软件仍优先调用自身目录里的旧 DLL<br/>两边版本冲突 → 启动时报 <strong>0xc0000142</strong> 或<strong>0xc0000005</strong></p><h2 id="">适用软件</h2><ul><li>Adobe After Effects (AE)</li><li>Adobe Premiere Pro (PR)</li><li>Adobe Audition (AU)</li><li>Adobe Media Encoder (ME)</li></ul><h2 id="">通用解决方法</h2><h3 id="">打开安装目录</h3><p>示例：</p><ul><li>AE: <code>...\Adobe After Effects 2025\Support Files</code></li><li>PR: <code>...\Adobe Premiere Pro 2025</code></li><li>AU: <code>...\Adobe Audition 2025</code></li><li>ME: <code>...\Adobe Media Encoder 2025</code></li></ul><h3 id="-dll">查找并备份运行库 DLL</h3><p>目标文件：</p><ul><li><code>msvcp140.dll</code></li><li><code>msvcp140_1.dll</code></li><li><code>msvcp140_2.dll</code></li><li><code>vcruntime140.dll</code>（可选）</li><li><code>concrt140.dll</code>（可选）</li></ul><p>操作方法：</p><ul><li>全部 <strong>重命名</strong>（如 <code>msvcp140.dll.bak</code>）或移动到 <strong>backup 文件夹</strong></li></ul><h3 id="">确认系统运行库完整</h3><ol start="1"><li>打开 <strong>控制面板 → 程序和功能</strong></li><li>找到 <strong>Microsoft Visual C++ 2015-2022 Redistributable</strong>（x64/x86）</li><li>如未修复，选择 <strong>修复</strong>（已修复过可忽略此步）</li></ol><h3 id="">重启并运行软件</h3><p>删除/重命名旧 DLL 后，Adobe 软件应该可以正常启动</p></div><p style="text-align:right"><a href="https://0i.nz/posts/tech/Fix-Adobe-Software-Startup-Error-0xc0000142#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/tech/Fix-Adobe-Software-Startup-Error-0xc0000142</link><guid isPermaLink="true">https://0i.nz/posts/tech/Fix-Adobe-Software-Startup-Error-0xc0000142</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Fri, 03 Oct 2025 09:08:06 GMT</pubDate></item><item><title><![CDATA[通过 WSL 删除 Linux 系统的 Windows 启动项]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/Z-Turn/Remove-Windows-Boot-Entry-from-Linux-GRUB-via-WSL">https://0i.nz/posts/Z-Turn/Remove-Windows-Boot-Entry-from-Linux-GRUB-via-WSL</a></blockquote><div><h2 id="-powershell-">在 PowerShell 查询磁盘信息</h2><pre class="language-powershell lang-powershell"><code class="language-powershell lang-powershell"># 查看物理磁盘信息
Get-PhysicalDisk | Format-Table
# 列出磁盘分区（示例 DiskNumber=1）
Get-Partition -DiskNumber 1</code></pre><h2 id="-linux--wsl">挂载 Linux 分区到 WSL</h2><pre class="language-powershell lang-powershell"><code class="language-powershell lang-powershell"># 假设 Linux 分区是 Disk 1 Partition 4
wsl --mount \\.\PHYSICALDRIVE1 --partition 4 --type ext4
# 成功后，挂载路径一般是：
cd /mnt/wsl/PHYSICALDRIVE1p4</code></pre><h2 id="-chroot">挂载虚拟文件系统以支持 chroot</h2><pre class="language-bash lang-bash"><code class="language-bash lang-bash">mount --bind /dev /mnt/wsl/PHYSICALDRIVE1p4/dev
mount --bind /dev/pts /mnt/wsl/PHYSICALDRIVE1p4/dev/pts
mount --bind /proc /mnt/wsl/PHYSICALDRIVE1p4/proc
mount --bind /sys /mnt/wsl/PHYSICALDRIVE1p4/sys
mount --bind /run /mnt/wsl/PHYSICALDRIVE1p4/run</code></pre><h2 id="-chroot-">进入 chroot 环境</h2><pre class="language-bash lang-bash"><code class="language-bash lang-bash">chroot /mnt/wsl/PHYSICALDRIVE1p4 /bin/bash</code></pre><p>修改 GRUB 配置，禁止 os-prober 检测其他系统：</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">nano /etc/default/grub
# 找到：
# GRUB_DISABLE_OS_PROBER=false
# 修改为：
GRUB_DISABLE_OS_PROBER=true
# 保存并退出</code></pre><h2 id="-grub-">更新 GRUB 配置</h2><pre class="language-bash lang-bash"><code class="language-bash lang-bash">update-grub</code></pre><p>输出示例：</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.</code></pre><p>Windows 启动项已被排除<br/>Ubuntu 内核和 Memtest 保留</p><h2 id="-chroot-">退出 chroot 并卸载虚拟文件系统</h2><pre class="language-bash lang-bash"><code class="language-bash lang-bash">exit
umount /mnt/wsl/PHYSICALDRIVE1p4/dev/pts
umount /mnt/wsl/PHYSICALDRIVE1p4/dev
umount /mnt/wsl/PHYSICALDRIVE1p4/proc
umount /mnt/wsl/PHYSICALDRIVE1p4/sys
umount /mnt/wsl/PHYSICALDRIVE1p4/run</code></pre><h2 id="">卸载磁盘</h2><pre class="language-powershell lang-powershell"><code class="language-powershell lang-powershell">wsl --unmount \\.\PHYSICALDRIVE1</code></pre><p>完成后重启 Ubuntu 系统，GRUB 菜单中只显示 Linux 内核启动项，不再显示 Windows。</p></div><p style="text-align:right"><a href="https://0i.nz/posts/Z-Turn/Remove-Windows-Boot-Entry-from-Linux-GRUB-via-WSL#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/Z-Turn/Remove-Windows-Boot-Entry-from-Linux-GRUB-via-WSL</link><guid isPermaLink="true">https://0i.nz/posts/Z-Turn/Remove-Windows-Boot-Entry-from-Linux-GRUB-via-WSL</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Fri, 03 Oct 2025 08:41:43 GMT</pubDate></item><item><title><![CDATA[Alpine安装MySQL]]></title><description><![CDATA[<link rel="preload" as="image" href="https://pic.0i.nz/images/msedge%202025-08-11%20070257.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/20250913011143170.png"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/Z-Turn/alpine-install-mysql(mariadb)">https://0i.nz/posts/Z-Turn/alpine-install-mysql(mariadb)</a></blockquote><div><h1 id="">前言</h1><p>这学期学习MySQL，老师教的是安装Windows版，可是Windows安装MySQL太麻烦了，这时我想用Linux会不会简单点呢？就几条命令就能安装完成，其他课有用到VMware正好有运行 Linux 的环境。于是就有了这篇教程（bushi<br/>首先要安装一个Linux系统，可是用Linux只是为了安装MySQL用来学习，使用CentOS、Ubuntu这类发行版就太浪费了，有没有精简点的系统呢，这时我想到了 Alpine Linux，想必玩Docker的对这个系统并不陌生吧，Alpine是一个轻量级 Linux 发行版，安装完成仅100多 MB，适合用来做路由器、防火墙、VPNs、VoIP 盒子以及服务器的操作系统，也常用于Docker底包。这么精简的系统用来安装 MySQL 用于学习再适合不过了。</p><h1 id="">下载镜像</h1><p>先到<a href="https://alpinelinux.org/downloads/">Alpine 官网</a>下载ISO镜像，选择Virtual x86_64。
<img src="https://pic.0i.nz/images/msedge%202025-08-11%20070257.png" height="450" width="320"/></p><h1 id="-alpine">安装 Alpine</h1><p>默认情况下，Alpine会为EFI启动分区分配 300MB，再分配部分空间给 swap，如此操作根目录下可用空间就很少了。通过手动分区和安装的操作可以缩减EFI分区同时去掉 swap 分区，以最大化利用磁盘空间。<br/>VMware安装步骤就不写了，相信大家都会了（不会的去复习 Linux 课程（狗头保命））<br/>VMware建议使用自定义NAT网络，可以连接网络的同时方便管理虚拟机 IP。</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash"># 通过正常安装流程进行联网、镜像源设置，随后终止安装流程
setup-alpine
# 安装分区工具
apk add parted e2fsprogs dosfstools
# 进行分区
parted -sa optimal /dev/sda mklabel gpt             # GPT 分区表
parted -sa optimal /dev/sda mkpart ESP fat32 1MiB 51MiB  # EFI 分区 50MB
parted -sa optimal /dev/sda set 1 boot             # EFI 标志
parted -sa optimal /dev/sda mkpart primary ext4 51MiB 100% # 根分区
mkfs.vfat -F32 -n EFI /dev/sda1     # EFI 分区
mkfs.ext4 -L root /dev/sda2         # 根分区
# 重启
reboot
# 挂载磁盘，注意先后及新建文件夹
mount /dev/sda2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi
# 通过正常安装流程进行所有设置，到选择磁盘后终止
setup-alpine
# 安装
setup-disk /mnt
# 安装完成后确认/boot/efi、/boot/grub及/etc/fstab
tree /mnt/boot/efi

/mnt/boot/efi
└── EFI
    ├── alpine
    │   └── grubx64.efi
    └── boot
        └── bootx64.efi

cat /mnt/boot/grub/grub.cfg

cat /mnt/etc/fstab

# 如果缺少文件或文件为空手动安装UEFI引导
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/sh
apk add grub-efi efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=alpine --recheck --removable
grub-mkconfig -o /boot/grub/grub.cfg</code></pre><p>安装后磁盘情况</p><pre class="language-shell lang-shell"><code class="language-shell lang-shell">localhost:~# df -h
Filesystem                Size      Used Available Use% Mounted on
devtmpfs                 10.0M         0     10.0M   0% /dev
shm                     216.8M         0    216.8M   0% /dev/shm
/dev/sda2               938.3M    100.2M    773.6M  11% /
tmpfs                    86.7M    116.0K     86.6M   0% /run
efivarfs                256.0K     53.1K    197.9K  21% /sys/firmware/efi/efivars
/dev/sda1                49.2M    274.0K     48.9M   1% /boot/efi
tmpfs                   216.8M         0    216.8M   0% /tmp</code></pre><h1 id="-mysql">安装 MySQL</h1><p>在Alpine Linux上安装MySQL（或更常用的 MariaDB，它是 MySQL 的兼容分支）相对轻量，但需要注意一些细节，因为Alpine使用apk包管理器，库和路径与Ubuntu/Debian有差异。</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash"># 更新源
apk update
apk upgrade
# 安装 MariaDB（MySQL 兼容）
# Alpine默认没有Oracle MySQL包，但MariaDB完全兼容MySQL客户端/服务器。
apk add mariadb mariadb-client
# 初始化数据库
# MariaDB安装后需要初始化数据目录：
mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
# 启动 MariaDB 服务
rc-service mariadb start
# 设置开机自启：
rc-update add mariadb
# 设置root密码并安全配置
mysql_secure_installation
# 按照提示操作：
# 设置root密码
# 删除匿名用户
# 禁止root远程登录（可根据需求允许）这里需要就不禁止了
# 删除测试数据库
# 刷新权限
# 测试连接
mysql -u root -p
# 输入密码后应该能进入MySQL/MariaDB命令行。
# 允许远程连接
# 编辑配置文件
vi /etc/my.cnf.d/mariadb-server.cnf
# 在[mysqld]下添加：
# this is only for the mysqld standalone daemon
[mysqld]
skip-networking = 0
bind-address = 0.0.0.0
port = 3306
# 修改[galera]下的内容
# Allow server to accept connections on all interfaces.
bind-address=0.0.0.0
# 然后重启 MariaDB：
rc-service mariadb restart
# 创建远程用户：
CREATE USER &#x27;remote_user&#x27;@&#x27;%&#x27; IDENTIFIED BY &#x27;password&#x27;;
GRANT ALL PRIVILEGES ON *.* TO &#x27;remote_user&#x27;@&#x27;%&#x27; WITH GRANT OPTION;
FLUSH PRIVILEGES;</code></pre><p>安装MySQL后磁盘情况</p><pre class="language-shell lang-shell"><code class="language-shell lang-shell">localhost:~# df -h
Filesystem                Size      Used Available Use% Mounted on
devtmpfs                 10.0M         0     10.0M   0% /dev
shm                     216.8M         0    216.8M   0% /dev/shm
/dev/sda2               938.3M    539.1M    334.6M  62% /
tmpfs                    86.7M    132.0K     86.6M   0% /run
efivarfs                256.0K     53.1K    197.9K  21% /sys/firmware/efi/efivars
/dev/sda1                49.2M    274.0K     48.9M   1% /boot/efi
tmpfs                   216.8M         0    216.8M   0% /tmp</code></pre><p>可以看到 MySQL 仅占用了 400 多 MB，还是比较轻量，系统加软件占用和在 Windows 上安装差不多。</p><h1 id="-mysql">远程连接 MySQL</h1><p>这里使用<a href="https://www.navicat.com.cn/products/navicat-premium-lite">Navicat Premium Lite</a>
<img src="https://pic.0i.nz/images/20250913011143170.png"/></p><h1 id="vmware-">VMware 镜像分享</h1><p>下载地址：<a href="https://wwjx.lanzout.com/b02sg1uxzc">https://wwjx.lanzout.com/b02sg1uxzc</a> 密码：0000<br/>Alpine user：root<br/>password：alpine<br/>MySQL user：root<br/>password：MySQL</p></div><p style="text-align:right"><a href="https://0i.nz/posts/Z-Turn/alpine-install-mysql(mariadb)#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/Z-Turn/alpine-install-mysql(mariadb)</link><guid isPermaLink="true">https://0i.nz/posts/Z-Turn/alpine-install-mysql(mariadb)</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Fri, 12 Sep 2025 17:04:05 GMT</pubDate></item><item><title><![CDATA[Alpine中安装Docker]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/Z-Turn/alpine-install-docker">https://0i.nz/posts/Z-Turn/alpine-install-docker</a></blockquote><div><h1 id="">前言</h1><p>虽然 Alpine 最常见的用途是当成 Docker 容器的底包，但实际其本身也是个正经的 Linux 发行版，有系统镜像体积小，安装迅速和消耗内存少的特点。<br/>上文教大家通过alpine镜像购买1GB磁盘的低价阿里云ESC，本文来说一下在 Alpine 里安装 Docker 的过程。</p><h1 id="">软件源设置</h1><p>首先要把 community 这一行取消注释。</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">vi /etc/apk/repositories</code></pre><pre class="language-shell lang-shell"><code class="language-shell lang-shell">#/media/cdrom/apks
http://dl-cdn.alpinelinux.org/alpine/v3.22/main
#http://dl-cdn.alpinelinux.org/alpine/v3.22/community</code></pre><h1 id="-docker">安装 docker</h1><p>然后运行以下命令更新软件源并安装 docker &amp;&amp; docker-compose。</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">apk update &amp;&amp; apk add docker &amp;&amp; apk add docker-compose</code></pre><pre class="language-shell lang-shell"><code class="language-shell lang-shell">alpine:~# apk update &amp;&amp; apk add docker &amp;&amp; apk add docker-compose
fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
v3.22.1-176-g9a0d606dfb2 [http://dl-cdn.alpinelinux.org/alpine/v3.22/main]
v3.22.1-180-g9a324cb494d [http://dl-cdn.alpinelinux.org/alpine/v3.22/community]
OK: 26317 distinct packages available
(1/22) Installing ca-certificates (20250619-r0)
(2/22) Installing libseccomp (2.6.0-r0)
(3/22) Installing runc (1.3.0-r2)
(4/22) Installing containerd (2.1.3-r1)
(5/22) Installing libffi (3.4.8-r0)
(6/22) Installing libintl (0.24.1-r0)
(7/22) Installing libmount (2.41-r9)
(8/22) Installing pcre2 (10.43-r1)
(9/22) Installing glib (2.84.4-r0)
(10/22) Installing log_proxy (0.7.4-r0)
(11/22) Installing containerd-openrc (2.1.3-r1)
(12/22) Installing libmnl (1.0.5-r2)
(13/22) Installing libnftnl (1.2.9-r0)
(14/22) Installing libxtables (1.8.11-r1)
(15/22) Installing iptables (1.8.11-r1)
(16/22) Installing iptables-openrc (1.8.11-r1)
(17/22) Installing tini-static (0.19.0-r3)
(18/22) Installing docker-engine (28.3.3-r1)
Executing docker-engine-28.3.3-r1.pre-install
(19/22) Installing docker-openrc (28.3.3-r1)
(20/22) Installing docker-cli (28.3.3-r1)
(21/22) Installing docker-cli-buildx (0.24.0-r1)
(22/22) Installing docker (28.3.3-r1)
Executing busybox-1.37.0-r19.trigger
Executing ca-certificates-20250619-r0.trigger
Executing glib-2.84.4-r0.trigger
OK: 314 MiB in 78 packages
(1/1) Installing docker-cli-compose (2.36.2-r1)
Executing busybox-1.37.0-r19.trigger
OK: 383 MiB in 79 packages
alpine:~#</code></pre><h1 id="-docker-">把 docker 添加到开机自启</h1><pre class="language-bash lang-bash"><code class="language-bash lang-bash">rc-update add docker boot</code></pre><h1 id="-docker-">启动 docker 服务</h1><pre class="language-bash lang-bash"><code class="language-bash lang-bash">service docker start</code></pre><p>最后可以运行 docker version &amp;&amp; docker compose version，查看程序版本。</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">docker version &amp;&amp; docker compose version</code></pre><p>如下就是安装成功。</p><pre class="language-shell lang-shell"><code class="language-shell lang-shell">alpine:~# docker version &amp;&amp; docker compose version
Client:
 Version:           28.3.3
 API version:       1.51
 Go version:        go1.24.6
 Git commit:        980b85681696fbd95927fd8ded8f6d91bdca95b0
 Built:             Fri Aug  8 10:16:04 2025
 OS/Arch:           linux/amd64
 Context:           default

Server:
 Engine:
  Version:          28.3.3
  API version:      1.51 (minimum version 1.24)
  Go version:       go1.24.6
  Git commit:       bea959c7b793b32a893820b97c4eadc7c87fabb0
  Built:            Fri Aug  8 10:16:04 2025
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v2.1.3
  GitCommit:        c787fb98911740dd3ff2d0e45ce88cdf01410486
 runc:
  Version:          1.3.0
  GitCommit:        4ca628d1d4c974f92d24daccb901aa078aad748e
 docker-init:
  Version:          0.19.0
  GitCommit:
Docker Compose version v2.36.2
alpine:~#</code></pre><p>如果出现以下报错请查看<a href="https://wiki.alpinelinux.org/wiki/Docker">官方文档</a>。</p><pre class="language-shell lang-shell"><code class="language-shell lang-shell">alpine:~# docker version &amp;&amp; docker compose version
Client:
 Version:           28.3.3
 API version:       1.51
 Go version:        go1.24.6
 Git commit:        980b85681696fbd95927fd8ded8f6d91bdca95b0
 Built:             Fri Aug  8 10:16:04 2025
 OS/Arch:           linux/amd64
 Context:           default
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Docker Compose version v2.36.2</code></pre><p>至于 docker 的使用方法，就和其他 linux 发行版一模一样。</p></div><p style="text-align:right"><a href="https://0i.nz/posts/Z-Turn/alpine-install-docker#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/Z-Turn/alpine-install-docker</link><guid isPermaLink="true">https://0i.nz/posts/Z-Turn/alpine-install-docker</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Mon, 11 Aug 2025 01:54:07 GMT</pubDate></item><item><title><![CDATA[自定义Alpine镜像购买1G磁盘超低价阿里云香港ECS]]></title><description><![CDATA[<link rel="preload" as="image" href="https://pic.0i.nz/images/msedge%202025-08-11%20070257.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/mmc%202025-08-11%20054014.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/mmc%202025-08-11%20054403.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/mmc%202025-08-11%20055338.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/mmc%202025-08-11%20055524.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge%202025-08-11%20062148.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge%202025-08-11%20062505.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge%202025-08-11%20062844.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge%202025-08-11%20063247.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/2025-08-11-07-16-06-ecs-buy.aliyun.com.jpeg"/><link rel="preload" as="image" href="https://pic.0i.nz/images/MobaXterm%202025-08-11%20073027.png"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/Z-Turn/aliyun-esc-to-alpine-image">https://0i.nz/posts/Z-Turn/aliyun-esc-to-alpine-image</a></blockquote><div><p>阿里云抢占式实例在目前的折扣下直接从￥0.039320/时干到￥0.003992/时，换算下来每月不到三块钱，除去IP成本相当于白送。阿里云CDT免费赠送220GB/月公网流量 (中国内地地域20GB/月，非中国内地200GB/月)，在CDT免费流量的框架下，我们可以开按量计费的ECS来享受高带宽带来的快（破）感（产）。<br/>但是阿里云官方镜像需要20GB磁盘才能安装，这时候就需要自定义镜像来购买1GB磁盘的ESC了。这里我选择的是Alpine，目前3.22.1安装后仅136MB，剩下的800MB拿来建站都绰绰有余。</p><h1 id="">一、镜像制作</h1><p>先到<a href="https://alpinelinux.org/downloads/">Alpine官网</a>下载ISO镜像，选择Virtual x86_64。
<img src="https://pic.0i.nz/images/msedge%202025-08-11%20070257.png" height="450" width="320"/>
右键Windows徽标键选择磁盘管理，如图创建一个1GB的动态扩展.vhd文件，随后右键新建的磁盘分离VHD。
<img src="https://pic.0i.nz/images/mmc%202025-08-11%20054014.png" height="615" width="776"/>
<img src="https://pic.0i.nz/images/mmc%202025-08-11%20054403.png"/>
然后到Hyper-V里面新建一个虚拟机，指定代数选第一代(1)，连接虚拟硬盘选使用现有虚拟硬盘，选择刚才创建的VHD磁盘，然后挂载ISO镜像，禁用检查点，开机进行安装，安装完成后进入系统确认无误后即可拷贝.vhd文件用于后续自定义镜像的创建。
<img src="https://pic.0i.nz/images/mmc%202025-08-11%20055338.png"/>
<img src="https://pic.0i.nz/images/mmc%202025-08-11%20055524.png"/>
默认情况下，Alpine会为/boot启动分区分配300MB，再向swap分配256MB，如此操作根目录下可用空间仅剩468M。通过手动分区和安装的操作可以缩减/boot分区同时去掉swap分区，以最大化利用磁盘空间。</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash"># 通过正常安装流程进行联网、镜像源设置，随后终止安装流程
setup-alpine
# 安装分区工具
apk add parted e2fsprogs
# 进行分区
parted -sa optimal /dev/sda mklabel msdos # 设置分区表为mbr格式
parted -sa optimal /dev/sda mkpart primary 512B 50MB # 划分boot分区
parted -sa optimal /dev/sda mkpart primary 50MB 100% # 划分所有容量至主分区
parted -sa optimal /dev/sda set 1 boot # 设置分区1启动卷标
mkfs.ext4 /dev/sda1 # 格式化boot分区
mkfs.ext4 /dev/sda2 # 格式化主分区
# 重启
reboot
# 挂载磁盘，注意先后及新建文件夹
mount /dev/sda2 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
# 通过正常安装流程进行所有设置，到选择磁盘后终止
setup-alpine
# 安装
setup-disk /mnt</code></pre><h1 id="osshttpsossconsolealiyuncom">二、<a href="https://oss.console.aliyun.com/">开通OSS</a></h1><p>创建对应地区的<a href="https://oss.console.aliyun.com/bucket/">Bucket</a>。
<img src="https://pic.0i.nz/images/msedge%202025-08-11%20062148.png"/>
上传VHD文件。
<img src="https://pic.0i.nz/images/msedge%202025-08-11%20062505.png"/></p><h1 id="httpsecsconsolealiyuncomimageregioncn-hongkongimagelist">三、<a href="https://ecs.console.aliyun.com/image/region/cn-hongkong/imageList">导入镜像</a></h1><p>点击镜像文件的详情复制其中的URL,然后来到ECS的镜像页面先选择好地域，然后如图后点击导入镜像。
<img src="https://pic.0i.nz/images/msedge%202025-08-11%20062844.png"/>
如图填写参数后点击确认，稍等几分钟即可完成镜像的创建。注意一定要勾选配置云盘属性并将其容量设置为1G，这样制作出来的镜像才是我们需要的。
<img src="https://pic.0i.nz/images/msedge%202025-08-11%20063247.png"/></p><h1 id="ecshttpsecs-buyaliyuncomecscustomspotpostpaycn-hongkong">四、<a href="https://ecs-buy.aliyun.com/ecs#/custom/spotPostpay/cn-hongkong">创建ECS</a></h1><p>随后即可使用此镜像创建ECS，选择包含免费额度的CDT计费，磁盘选择1G的ESSD云盘，SSH密码设置为镜像默认值。以乌兰察布的为例，五年的ecs.t6-c4m1.large实例仅需152.70元，对于基础的需求非常划算。注意一下，海外地域最便宜的是ecs.e-c4m1.large实例，其次是ecs.t5-lc2m1.nano实例，按照下图配置仅需￥0.003992/时，折合一个月￥2.87424。
<img src="https://pic.0i.nz/images/2025-08-11-07-16-06-ecs-buy.aliyun.com.jpeg"/>
成功开机后记得删除OSS中的镜像文件以及自定义镜像，以免产生不必要的费用。</p><h1 id="">五、镜像分享</h1><p>在这里分享一个我做的Alpine镜像，基于3.22.1版本镜像，除安装流程外未安装任何三方组件，根目录下磁盘可用空间821M。镜像开箱即用，SSH端口22，用户名root，密码alpine，请务必开机后第一时间修改密码，以免被他人盗用。
<img src="https://pic.0i.nz/images/MobaXterm%202025-08-11%20073027.png"/>
镜像时间同步工具选择的是NTP，有一个问题是系统时间与当前时间差距过大的话不会执行同步，可以通过date -s &quot;2025-08-11 12:00&quot;将时间设置手动为当前时间，重启后NTP便会自动接管。<br/>下载地址：<a href="https://wwjx.lanzout.com/icQJx338lnla">蓝奏云</a></p><p>转载自：<a href="https://luotianyi.vc/8445.html">Luminous&#x27; Home » 【阿里云】自定义Alpine镜像购买1G磁盘超低价ECS</a></p></div><p style="text-align:right"><a href="https://0i.nz/posts/Z-Turn/aliyun-esc-to-alpine-image#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/Z-Turn/aliyun-esc-to-alpine-image</link><guid isPermaLink="true">https://0i.nz/posts/Z-Turn/aliyun-esc-to-alpine-image</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Sun, 10 Aug 2025 22:42:08 GMT</pubDate></item><item><title><![CDATA[ClawCloud搭建OpenList并使用EdgeOne加速]]></title><description><![CDATA[<link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-25-233416.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-25-233756.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-25-234024.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-25-235503.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-25-235706.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-000210.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-000556.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-001656.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-002956.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-003300.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-003906.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-004245.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-014826.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-26-120806.png"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/tech/clawcloud-builds-openlist-and-accelerates-it-with-edgeone">https://0i.nz/posts/tech/clawcloud-builds-openlist-and-accelerates-it-with-edgeone</a></blockquote><div><p>首先，先注册一个ClawCloud账号，使用注册超过180天的Github账号注册每月额外赠送5美元
<img src="https://pic.0i.nz/images/msedge-2025-07-25-233416.png" height="956" width="1825"/>
<img src="https://pic.0i.nz/images/msedge-2025-07-25-233756.png"/>
选择一个离你近的地区，输入工作区名称后点击Start Deploying
<img src="https://pic.0i.nz/images/msedge-2025-07-25-234024.png"/>
点击App Store
<img src="https://pic.0i.nz/images/msedge-2025-07-25-235503.png"/>
搜索OpenList然后点进去
<img src="https://pic.0i.nz/images/msedge-2025-07-25-235706.png"/>
输入用户名和密码后点击Deploy App
<img src="https://pic.0i.nz/images/msedge-2025-07-26-000210.png"/>
等待一会儿可以看到已经在运行了
<img src="https://pic.0i.nz/images/msedge-2025-07-26-000556.png"/>
点击Details后复制ClawCloud给你的域名
<img src="https://pic.0i.nz/images/msedge-2025-07-26-001656.png"/>
配置EdgeOne，加速域名填刚才设置的域名，源站配置填ClawCloud给你的域名，回源HOST使用源站域名
<img src="https://pic.0i.nz/images/msedge-2025-07-26-002956.png"/>
复制EdgeOne给你的CNAME
<img src="https://pic.0i.nz/images/msedge-2025-07-26-003300.png"/>
到你的域名后台添加一条CNAME解析，按照EdgeOne给你的值填写
<img src="https://pic.0i.nz/images/msedge-2025-07-26-003906.png"/>
等待EdgeOne状态是已生效就可以配置SSL证书了
<img src="https://pic.0i.nz/images/msedge-2025-07-26-004245.png"/>
申请免费SSL证书
<img src="https://pic.0i.nz/images/msedge-2025-07-26-014826.png"/>
现在，可以通过设置的域名访问OpenList了
<img src="https://pic.0i.nz/images/msedge-2025-07-26-120806.png"/></p><p>注：如果跳转到源站请看上一篇文章如何开启强制HTTPS，或手动输入https://</p></div><p style="text-align:right"><a href="https://0i.nz/posts/tech/clawcloud-builds-openlist-and-accelerates-it-with-edgeone#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/tech/clawcloud-builds-openlist-and-accelerates-it-with-edgeone</link><guid isPermaLink="true">https://0i.nz/posts/tech/clawcloud-builds-openlist-and-accelerates-it-with-edgeone</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Fri, 25 Jul 2025 19:02:08 GMT</pubDate></item><item><title><![CDATA[EdgeOne加速家宽IPv6网站]]></title><description><![CDATA[<link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-174848.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-174213.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-175554.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-175441.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-175908.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/tech/edgeone-proxy-home-broadband-ipv6-web-site">https://0i.nz/posts/tech/edgeone-proxy-home-broadband-ipv6-web-site</a></blockquote><div><h2 id="">路由器设置</h2><p>关闭SYN-flood防御或按照图中设置，否则EdgeOne无法访问源站
<img src="https://pic.0i.nz/images/msedge-2025-07-22-174848.png" height="956" width="1825"/></p><h2 id="edgeone">在EdgeOne控制台添加网站</h2><p>这里因为同一个IP下有多个网站，回源HOST头必须使用源站域名，否则会加速到源站IP（使用加速域名必须使用IP加端口或域名加端口，不能使用反代的网站）
<img src="https://pic.0i.nz/images/msedge-2025-07-22-174213.png"/></p><h3 id="cname">添加cname</h3><p><img src="https://pic.0i.nz/images/msedge-2025-07-22-175554.png"/>
<img src="https://pic.0i.nz/images/msedge-2025-07-22-175441.png"/></p><h3 id="ssl">等待生效后配置免费ssl证书</h3><p><img src="https://pic.0i.nz/images/msedge-2025-07-22-175908.png"/></p><h3 id="https">开启强制HTTPS</h3><p><img src="https://pic.0i.nz/images/msedge"/>
至此你已经可以使用IPv4+IPv6访问家里的IPv6网站了</p></div><p style="text-align:right"><a href="https://0i.nz/posts/tech/edgeone-proxy-home-broadband-ipv6-web-site#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/tech/edgeone-proxy-home-broadband-ipv6-web-site</link><guid isPermaLink="true">https://0i.nz/posts/tech/edgeone-proxy-home-broadband-ipv6-web-site</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Tue, 22 Jul 2025 10:01:17 GMT</pubDate></item><item><title><![CDATA[Docker部署Chevereto图床]]></title><description><![CDATA[<link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-162733.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-162806.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-172150.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-172425.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-172629.png"/><link rel="preload" as="image" href="https://pic.0i.nz/images/msedge-2025-07-22-172713.jpg"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/tech/docker-deploy-chevereto">https://0i.nz/posts/tech/docker-deploy-chevereto</a></blockquote><div><h2 id="docker-compose">Docker compose</h2><pre class="language-ymal lang-ymal"><code class="language-ymal lang-ymal">services:
  chevereto:
    image: surenkid/chevereto
    container_name: chevereto
    environment:
      - PUID=1000
      - PGID=1000
      - TZ:Asia/Shanghai
    volumes:
      - ./conf:/config
      - /mnt/Docker/chevereto/data:/data
      #- /mnt/Docker/chevereto/app:/app
    ports:
      - 80:80
      - 443:443
    restart: unless-stopped
    depends_on:
      - mysql

  mysql:
    image: mysql:latest
    container_name: chevereto_mysql
    environment:
      - PUID=1000
      - PGID=1000
      - TZ:Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=chevereto-pw  #MySql root 密码
      - MYSQL_DATABASE=chevereto  #数据库名称
      - MYSQL_USER=chevereto  #数据库用户名
      - MYSQL_PASSWORD=chevereto  #数据库密码
    volumes:
      - ./mysql/db/:/var/lib/mysql
      - ./mysql/conf/:/etc/mysql/conf.d
    restart: unless-stopped</code></pre><h2 id="chevereto">配置Chevereto</h2><h3 id="">连接数据库，数据库地址为容器名称</h3><p><img src="https://pic.0i.nz/images/msedge-2025-07-22-162733.png" height="956" width="1825"/></p><h3 id="">设置管理账户</h3><p><img src="https://pic.0i.nz/images/msedge-2025-07-22-162806.png"/></p><h3 id="">设置中文</h3><p><img src="https://pic.0i.nz/images/msedge-2025-07-22-172150.png"/>
<img src="https://pic.0i.nz/images/msedge-2025-07-22-172425.png"/>
<img src="https://pic.0i.nz/images/msedge-2025-07-22-172629.png"/></p><h3 id="">部署完成</h3><p><img src="https://pic.0i.nz/images/msedge-2025-07-22-172713.jpg"/>
如果是在NAS部署想分享给他人使用可以套CDN。<br/>实测Chevereto回源域名使用源站会出问题，建议使用IP,后面会出一个固定IPv6地址的教程。(可以使用ddns的域名加端口号，协议选HTTP，回源 HOST 头使用加速域名)</p></div><p style="text-align:right"><a href="https://0i.nz/posts/tech/docker-deploy-chevereto#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/tech/docker-deploy-chevereto</link><guid isPermaLink="true">https://0i.nz/posts/tech/docker-deploy-chevereto</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Tue, 22 Jul 2025 09:28:52 GMT</pubDate></item><item><title><![CDATA[VSCode点击后没有任何反应（重启和重装都没用）]]></title><description><![CDATA[<link rel="preload" as="image" href="https://pic.0i.nz/images/WindowsTerminal-2025-04-18-192314.png"/><div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/tech/VSCode">https://0i.nz/posts/tech/VSCode</a></blockquote><div><h2 id="">现象：</h2><p>双击VSCode没有任何反应和报错</p><h2 id="">解决：</h2><h3 id="">使用命令行调试</h3><p>如果VS Code启动时完全没有反应，可以使用 code --verbose 命令以详细的日志模式启动 Visual Studio Code，这样可以帮助诊断 VS Code 启动时出现的问题。
打开命令提示符（Win + R，输入 cmd，然后回车)
在终端输入code --verbose
<img src="https://pic.0i.nz/images/WindowsTerminal-2025-04-18-192314.png" height="930" width="1652"/>
报错原因：由于自己给.vscode目录设置了软链接，软链接的源文件删除了，所以导致报错，重新设置后就可以正常打开了。</p></div><p style="text-align:right"><a href="https://0i.nz/posts/tech/VSCode#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/tech/VSCode</link><guid isPermaLink="true">https://0i.nz/posts/tech/VSCode</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Fri, 18 Apr 2025 11:28:21 GMT</pubDate></item><item><title><![CDATA[Ubuntu24.04开启ssh服务及允许root登录]]></title><description><![CDATA[<div><blockquote>该渲染由 Shiro API 生成，可能存在排版问题，最佳体验请前往：<a href="https://0i.nz/posts/tech/ubuntu-enables-ssh-service-and-allows-root-login">https://0i.nz/posts/tech/ubuntu-enables-ssh-service-and-allows-root-login</a></blockquote><div><h2 id="ssh">安装ssh服务器端</h2><p>Ubuntu默认没有安装ssh的server，需要安装</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">apt-get install openssh-server</code></pre><p>ssh客户端是默认安装的，连接其它ssh服务器用的，使用以下命令安装</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">apt install openssh-client</code></pre><h2 id="">修改配置文件</h2><p>允许远程使用root账号ssh连接本机
修改/etc/ssh/sshd_config文件</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">vim /etc/ssh/sshd_config</code></pre><p>修改如下：允许root账户登录</p><pre class="language-bash lang-bash"><code class="language-bash lang-bash">#PermitRootLogin prohibit-password
PermitRootLogin yes</code></pre><h2 id="sshd">重启系统或者sshd服务</h2><pre class="language-shell lang-shell"><code class="language-shell lang-shell">sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh start
sudo service ssh restart</code></pre><p>安装ssh服务后，系统默认开启系统sshd，查看sshd状态如果不是默认启动，修改服务为enable</p><pre class="language-shell lang-shell"><code class="language-shell lang-shell">sudo systemctl enable ssh</code></pre></div><p style="text-align:right"><a href="https://0i.nz/posts/tech/ubuntu-enables-ssh-service-and-allows-root-login#comments">看完了？说点什么呢</a></p></div>]]></description><link>https://0i.nz/posts/tech/ubuntu-enables-ssh-service-and-allows-root-login</link><guid isPermaLink="true">https://0i.nz/posts/tech/ubuntu-enables-ssh-service-and-allows-root-login</guid><dc:creator><![CDATA[picdupe]]></dc:creator><pubDate>Tue, 11 Mar 2025 02:50:55 GMT</pubDate></item></channel></rss>