edit
This commit is contained in:
parent
5d8eafda23
commit
cb5848a3f8
@ -6,97 +6,73 @@ hide:
|
|||||||
|
|
||||||
## Admonitions
|
## Admonitions
|
||||||
|
|
||||||
<!-- md:option type:note -->
|
!!! note
|
||||||
|
|
||||||
: !!! note
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:abstract -->
|
!!! abstract
|
||||||
|
|
||||||
: !!! abstract
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:info -->
|
!!! info
|
||||||
|
|
||||||
: !!! info
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:tip -->
|
!!! tip
|
||||||
|
|
||||||
: !!! tip
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:success -->
|
!!! success
|
||||||
|
|
||||||
: !!! success
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:question -->
|
!!! question
|
||||||
|
|
||||||
: !!! question
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:warning -->
|
!!! warning
|
||||||
|
|
||||||
: !!! warning
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:failure -->
|
!!! failure
|
||||||
|
|
||||||
: !!! failure
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:danger -->
|
!!! danger
|
||||||
|
|
||||||
: !!! danger
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:bug -->
|
!!! bug
|
||||||
|
|
||||||
: !!! bug
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:example -->
|
!!! example
|
||||||
|
|
||||||
: !!! example
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
purus auctor massa, nec semper lorem quam in massa.
|
purus auctor massa, nec semper lorem quam in massa.
|
||||||
|
|
||||||
<!-- md:option type:quote -->
|
!!! quote
|
||||||
|
|
||||||
: !!! quote
|
|
||||||
|
|
||||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla et
|
||||||
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
euismod nulla. Curabitur feugiat, tortor non consequat finibus, justo
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
以下是 Grafana 的 docker-compose 配置参考:
|
以下是 Grafana 的 docker-compose 配置参考:
|
||||||
|
|
||||||
``` title="docker-compose.yml"
|
``` yaml title="docker-compose.yml"
|
||||||
services:
|
services:
|
||||||
grafana:
|
grafana:
|
||||||
image: grafana/grafana-enterprise
|
image: grafana/grafana-enterprise
|
||||||
@ -24,7 +24,7 @@ volumes:
|
|||||||
|
|
||||||
我们可以通过运行以下命令来做到这一点:
|
我们可以通过运行以下命令来做到这一点:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
docker volume ls
|
docker volume ls
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -42,7 +42,7 @@ local 3-buyvm-lv_grafana-storage
|
|||||||
|
|
||||||
要创建 Docker 卷备份,可以使用 `docker run` 命令启动一个容器,挂载要备份的卷,并将备份数据写入压缩包。
|
要创建 Docker 卷备份,可以使用 `docker run` 命令启动一个容器,挂载要备份的卷,并将备份数据写入压缩包。
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
--mount source=<volume-name>,target=<target> \
|
--mount source=<volume-name>,target=<target> \
|
||||||
-v $(pwd):/backup \
|
-v $(pwd):/backup \
|
||||||
@ -54,7 +54,7 @@ tar -czvf /backup/<backup-filename>.tar.gz <target>
|
|||||||
|
|
||||||
依照上面的命令,我们备份 `3-buyvm-lv_grafana-storage` 的命令便要这样写:
|
依照上面的命令,我们备份 `3-buyvm-lv_grafana-storage` 的命令便要这样写:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
--mount source=3-buyvm-lv_grafana-storage,target=/var/lib/grafana \
|
--mount source=3-buyvm-lv_grafana-storage,target=/var/lib/grafana \
|
||||||
-v /root/backup:/backup \
|
-v /root/backup:/backup \
|
||||||
@ -66,7 +66,7 @@ tar -czvf /backup/3-buyvm-lv_grafana-storage.tar.gz /var/lib/grafana
|
|||||||
|
|
||||||
如果需要从备份中还原 Docker卷,我们可以使用 `docker run` 命令启动一个容器,挂载备份文件并将备份数据写入卷。
|
如果需要从备份中还原 Docker卷,我们可以使用 `docker run` 命令启动一个容器,挂载备份文件并将备份数据写入卷。
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
--mount source=<volume-name>,target=<target> \
|
--mount source=<volume-name>,target=<target> \
|
||||||
-v $(pwd):/backup \
|
-v $(pwd):/backup \
|
||||||
@ -78,7 +78,7 @@ tar -xzvf /backup/<backup-filename>.tar.gz -C /
|
|||||||
|
|
||||||
依照上面的命令,我们还原 `3-buyvm-lv_grafana-storage` 的命令便要这样写:
|
依照上面的命令,我们还原 `3-buyvm-lv_grafana-storage` 的命令便要这样写:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
docker run --rm \
|
docker run --rm \
|
||||||
--mount source=3-buyvm-lv_grafana-storage,target=/var/lib/grafana \
|
--mount source=3-buyvm-lv_grafana-storage,target=/var/lib/grafana \
|
||||||
-v /root/backup:/backup \
|
-v /root/backup:/backup \
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
# 创建和管理 Linux 服务器用于身份验证的 SSH 密钥
|
# 创建和管理 Linux 服务器用于身份验证的 SSH 密钥
|
||||||
|
|
||||||
## 使用 ssh-keygen 生成密钥
|
## 使用 ssh-keygen 生成密钥
|
||||||
以下 ssh-keygen 命令默认在 ~/.ssh 目录中生成 4096 位 SSH RSA 公钥和私钥文件。 如果当前位置存在 SSH 密钥对,这些文件将被覆盖。
|
以下 `ssh-keygen` 命令默认在 `~/.ssh` 目录中生成 4096 位 SSH RSA 公钥和私钥文件。如果当前位置存在 SSH 密钥对,这些文件将被覆盖。
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
ssh-keygen \
|
ssh-keygen \
|
||||||
-m PEM \
|
-m PEM \
|
||||||
-t rsa \
|
-t rsa \
|
||||||
-b 4096 \
|
-b 4096 \
|
||||||
-C "azureuser@myserver" \
|
-C "ubuntur@<ip>" \
|
||||||
-f ~/.ssh/mykeys/myprivatekey \
|
-f ~/.ssh/myprivatekey \
|
||||||
-N mypassphrase
|
-N mypassphrase
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -23,32 +23,38 @@ ssh-keygen \
|
|||||||
|
|
||||||
`-b 4096` = 密钥的位数,本例中为 4096
|
`-b 4096` = 密钥的位数,本例中为 4096
|
||||||
|
|
||||||
`-C "azureuser@myserver"` = 追加到公钥文件末尾以便于识别的注释。 通常以电子邮件地址用作注释,但也可以使用任何最适合你事物。
|
`-C "ubuntu@<ip>"` = 追加到公钥文件末尾以便于识别的注释。 通常以电子邮件地址用作注释,但也可以使用任何最适合你事物。
|
||||||
|
|
||||||
`-f ~/.ssh/mykeys/myprivatekey` = 私钥文件的文件名(如果选择不使用默认名称)。 追加了 .pub 的相应公钥文件在相同目录中生成。 该目录必须存在。
|
`-f ~/.ssh/myprivatekey` = 私钥文件的文件名(如果选择不使用默认名称)。该目录必须存在。
|
||||||
|
|
||||||
`-N mypassphrase` = 用于访问私钥文件的其他密码。
|
`-N mypassphrase` = 用于访问私钥文件的其他密码。
|
||||||
|
|
||||||
## 使用 ssh-agent 来存储私钥密码
|
## 使用 ssh-agent 来存储私钥密码
|
||||||
为了避免在每次 SSH 登录时键入私钥文件密码,可以使用 `ssh-agent` 来缓存私钥文件密码。 如果使用 Mac,macOS Keychain 在用户调用 `ssh-agent` 时会安全存储私钥密码。验证并使用 `ssh-agent` 和 `ssh-add` 将密钥文件的情况通知给 SSH 系统,这样就无需交互使用密码。
|
|
||||||
|
|
||||||
```bash
|
为了避免在每次 SSH 登录时键入私钥文件密码,可以使用 `ssh-agent` 来缓存私钥文件密码。
|
||||||
|
|
||||||
|
如果使用 Mac,macOS Keychain 在用户调用 `ssh-agent` 时会安全存储私钥密码。
|
||||||
|
|
||||||
|
验证并使用 `ssh-agent` 和 `ssh-add` 将密钥文件的情况通知给 SSH 系统,这样就无需交互使用密码。
|
||||||
|
|
||||||
|
``` bash
|
||||||
eval "$(ssh-agent -s)"
|
eval "$(ssh-agent -s)"
|
||||||
```
|
```
|
||||||
|
|
||||||
现在,使用命令 `ssh-add` 将私钥添加到 `ssh-agent`。
|
现在,使用命令 `ssh-add` 将私钥添加到 `ssh-agent`。
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
ssh-add ~/.ssh/id_rsa
|
ssh-add ~/.ssh/id_rsa
|
||||||
```
|
```
|
||||||
|
|
||||||
私钥密码现在存储在 `ssh-agent` 中。
|
私钥密码现在存储在 `ssh-agent` 中。
|
||||||
|
|
||||||
## 使用 ssh-copy-id 将密钥复制到现有服务器
|
## 使用 ssh-copy-id 将密钥复制到现有服务器
|
||||||
如果已有服务器,可以使用 `ssh-copy-id`将新的 SSH 公钥添加到 Linux 服务器。
|
|
||||||
|
|
||||||
```bash
|
如果已有服务器,可以使用 `ssh-copy-id` 将新的 SSH 公钥添加到 Linux 服务器。
|
||||||
ssh-copy-id -i ~/.ssh/id_rsa.pub azureuser@myserver
|
|
||||||
|
``` bash
|
||||||
|
ssh-copy-id -i ~/.ssh/id_rsa.pub ubuntu@<ip>
|
||||||
```
|
```
|
||||||
|
|
||||||
## 创建并配置 SSH 配置文件
|
## 创建并配置 SSH 配置文件
|
||||||
@ -56,33 +62,35 @@ ssh-copy-id -i ~/.ssh/id_rsa.pub azureuser@myserver
|
|||||||
|
|
||||||
以下示例显示一个简单配置,通过此配置,你可以使用默认的 SSH 私钥以用户身份快速登录到特定 VM。
|
以下示例显示一个简单配置,通过此配置,你可以使用默认的 SSH 私钥以用户身份快速登录到特定 VM。
|
||||||
|
|
||||||
创建文件。
|
创建文件:
|
||||||
|
|
||||||
```Bash
|
``` bash
|
||||||
touch ~/.ssh/config
|
touch ~/.ssh/config
|
||||||
```
|
```
|
||||||
|
|
||||||
编辑文件以添加新的 SSH 配置
|
编辑文件以添加新的 SSH 配置:
|
||||||
|
|
||||||
```Bash
|
``` bash
|
||||||
nano ~/.ssh/config
|
nano ~/.ssh/config
|
||||||
```
|
```
|
||||||
|
|
||||||
添加适用于主机 VM 的配置设置。 在此示例中,VM 名称(主机)为 myvm,帐户名称(用户)为 azureuser,IP 地址或 FQDN(主机名)为 192.168.0.255。
|
添加适用于主机 VM 的配置设置。 在此示例中,VM 名称(主机)为 myvm,帐户名称(用户)为 ubuntu,IP 地址或 FQDN(主机名)为 192.168.0.255。
|
||||||
|
|
||||||
```Bash
|
``` linuxconfig
|
||||||
# Azure Keys
|
|
||||||
Host myvm
|
Host myvm
|
||||||
Hostname 192.168.0.255
|
HostName 192.168.0.255
|
||||||
User azureuser
|
Port 22
|
||||||
# ./Azure Keys
|
User ubuntu
|
||||||
|
IdentityFile ~/.ssh/<file name> # (1)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
1. 此处填写密钥文件的绝对路径
|
||||||
|
|
||||||
可为其他主机添加配置,让每台主机使用其自己的专用密钥对。 查看 SSH 配置文件获取更多高级配置选项。
|
可为其他主机添加配置,让每台主机使用其自己的专用密钥对。 查看 SSH 配置文件获取更多高级配置选项。
|
||||||
|
|
||||||
获得 SSH 密钥对和配置的 SSH 配置文件后,便可快速安全地远程访问 Linux VM。 运行以下命令时,SSH 从 SSH 配置文件的 Host myvm 块中找到所有设置并加载它们。
|
获得 SSH 密钥对和配置的 SSH 配置文件后,便可快速安全地远程访问 Linux VM。 运行以下命令时,SSH 从 SSH 配置文件的 Host `myvm` 块中找到所有设置并加载它们。
|
||||||
|
|
||||||
```Bash
|
``` bash
|
||||||
ssh myvm
|
ssh myvm
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
限制资源配置字段为 `deploy.resources.limits`,以下是示例 docker-compose.yml
|
限制资源配置字段为 `deploy.resources.limits`,以下是示例 docker-compose.yml
|
||||||
|
|
||||||
``` title="docker-compose.yml"
|
``` yaml title="docker-compose.yml"
|
||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
umami:
|
umami:
|
||||||
@ -33,7 +33,7 @@ services:
|
|||||||
|
|
||||||
传入参数 `--compatibility` 表示以兼容模式来运行
|
传入参数 `--compatibility` 表示以兼容模式来运行
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
docker compose --compatibility up -d
|
docker compose --compatibility up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -6,19 +6,20 @@
|
|||||||
|
|
||||||
输入以下命令来覆盖本地文件:
|
输入以下命令来覆盖本地文件:
|
||||||
|
|
||||||
```sh
|
``` sh
|
||||||
git fetch --all
|
git fetch --all
|
||||||
git reset --hard <remote>/<branch_name>
|
git reset --hard <remote>/<branch_name>
|
||||||
```
|
```
|
||||||
|
|
||||||
例如:
|
例如:
|
||||||
|
|
||||||
```sh
|
``` sh
|
||||||
git fetch --all
|
git fetch --all
|
||||||
git reset --hard origin/main
|
git reset --hard origin/main
|
||||||
```
|
```
|
||||||
|
!!! info
|
||||||
|
|
||||||
> 不论是否使用 --hard 选项,所有尚未推送的本地提交都将丢失。
|
不论是否使用 --hard 选项,所有尚未推送的本地提交都将丢失。
|
||||||
|
|
||||||
## 命令详解
|
## 命令详解
|
||||||
|
|
||||||
|
@ -21,9 +21,11 @@
|
|||||||
- hanwckf: `0HC5661_3.4.3.9-099.trx`
|
- hanwckf: `0HC5661_3.4.3.9-099.trx`
|
||||||
- chongshengB: `T1HC5661_3.4.3.9-099.trx`
|
- chongshengB: `T1HC5661_3.4.3.9-099.trx`
|
||||||
|
|
||||||
> Default gateway: 192.168.1.1
|
!!! info
|
||||||
> Username: admin
|
|
||||||
> Password: admin
|
默认管理地址: 192.168.1.1
|
||||||
|
用户名: admin
|
||||||
|
密码: admin
|
||||||
|
|
||||||
[下载](https://www.right.com.cn/forum/thread-8250681-1-1.html)
|
[下载](https://www.right.com.cn/forum/thread-8250681-1-1.html)
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
在开始之前,我们可以检查系统是否已经有可用的交换空间。
|
在开始之前,我们可以检查系统是否已经有可用的交换空间。
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo swapon --show
|
sudo swapon --show
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ NAME TYPE SIZE USED PRIO
|
|||||||
|
|
||||||
你可以使用 `free` 来验证是否存在活动交换空间:
|
你可以使用 `free` 来验证是否存在活动交换空间:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
free -h
|
free -h
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -47,13 +47,13 @@ Swap: 0B 0B 0B
|
|||||||
|
|
||||||
我们将在本指南中创建一个 8G 的交换文件,请根据自己服务器的需要进行调整:
|
我们将在本指南中创建一个 8G 的交换文件,请根据自己服务器的需要进行调整:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo fallocate -l 8G /swapfile
|
sudo fallocate -l 8G /swapfile
|
||||||
```
|
```
|
||||||
|
|
||||||
验证一下是否预留了正确的空间:
|
验证一下是否预留了正确的空间:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
ls -lh /swapfile
|
ls -lh /swapfile
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -67,13 +67,13 @@ ls -lh /swapfile
|
|||||||
|
|
||||||
这样,普通用户就无法访问该文件,否则会产生重大安全隐患。
|
这样,普通用户就无法访问该文件,否则会产生重大安全隐患。
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo chmod 600 /swapfile
|
sudo chmod 600 /swapfile
|
||||||
```
|
```
|
||||||
|
|
||||||
验证权限更改:
|
验证权限更改:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
ls -lh /swapfile
|
ls -lh /swapfile
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ ls -lh /swapfile
|
|||||||
|
|
||||||
现在,我们可以输入以下命令将刚刚创建的文件标记为交换文件:
|
现在,我们可以输入以下命令将刚刚创建的文件标记为交换文件:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo mkswap /swapfile
|
sudo mkswap /swapfile
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf
|
|||||||
|
|
||||||
标记交换文件后,我们可以启用交换文件,让我们启用它:
|
标记交换文件后,我们可以启用交换文件,让我们启用它:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo swapon /swapfile
|
sudo swapon /swapfile
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -113,13 +113,13 @@ NAME TYPE SIZE USED PRIO
|
|||||||
|
|
||||||
备份 `/etc/fstab` 文件,以防出错:
|
备份 `/etc/fstab` 文件,以防出错:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo cp /etc/fstab /etc/fstab.bak
|
sudo cp /etc/fstab /etc/fstab.bak
|
||||||
```
|
```
|
||||||
|
|
||||||
将 swap 记录添加到 `/etc/fstab` 文件末尾:
|
将 swap 记录添加到 `/etc/fstab` 文件末尾:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
|
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
|
|||||||
|
|
||||||
我们可以通过以下命令来查看当前的 `swappiness` 值:
|
我们可以通过以下命令来查看当前的 `swappiness` 值:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
cat /proc/sys/vm/swappiness
|
cat /proc/sys/vm/swappiness
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ cat /proc/sys/vm/swappiness
|
|||||||
|
|
||||||
例如,要将 `swappiness` 参数设置为 10,我们可以输入:
|
例如,要将 `swappiness` 参数设置为 10,我们可以输入:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo sysctl vm.swappiness=10
|
sudo sysctl vm.swappiness=10
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ vm.swappiness = 10
|
|||||||
|
|
||||||
以上设置仅在本次会话有效,因此我们可以在 `/etc/sysctl.conf` 文件中添加这一行,在重启时自动设置该值:
|
以上设置仅在本次会话有效,因此我们可以在 `/etc/sysctl.conf` 文件中添加这一行,在重启时自动设置该值:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo nano /etc/sysctl.conf
|
sudo nano /etc/sysctl.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -181,7 +181,7 @@ vm.swappiness=10
|
|||||||
|
|
||||||
你可以通过再次查询 `proc` 文件系统来查看当前值:
|
你可以通过再次查询 `proc` 文件系统来查看当前值:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
cat /proc/sys/vm/vfs_cache_pressure
|
cat /proc/sys/vm/vfs_cache_pressure
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -193,7 +193,7 @@ cat /proc/sys/vm/vfs_cache_pressure
|
|||||||
|
|
||||||
我们可以将其设置为更保守的值,比如 50,只需输入:
|
我们可以将其设置为更保守的值,比如 50,只需输入:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo sysctl vm.vfs_cache_pressure=50
|
sudo sysctl vm.vfs_cache_pressure=50
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -203,7 +203,7 @@ vm.vfs_cache_pressure = 50
|
|||||||
|
|
||||||
同样,这只对当前会话有效。我们可以将其添加到配置文件中进行更改,就像刚才的设置一样:
|
同样,这只对当前会话有效。我们可以将其添加到配置文件中进行更改,就像刚才的设置一样:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo nano /etc/sysctl.conf
|
sudo nano /etc/sysctl.conf
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -6,19 +6,17 @@
|
|||||||
|
|
||||||
我们将通过创建一个 Python 虚拟环境以安装 Material for MkDocs。
|
我们将通过创建一个 Python 虚拟环境以安装 Material for MkDocs。
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
sudo apt -y install python3 python3-full python3-pip python3.12-venv
|
sudo apt -y install python3 python3-full python3-pip python3.12-venv
|
||||||
|
|
||||||
python3 -m venv <path>
|
python3 -m venv <path> # (1)
|
||||||
|
|
||||||
<path>/pip install --upgrade pip setuptools
|
<path>/pip install --upgrade pip setuptools
|
||||||
|
|
||||||
<path>/pip install mkdocs-material
|
<path>/pip install mkdocs-material
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! warning "注意"
|
1. 本文所有命令中的 `<path>` 请替换为 MkDocs 安装目录的绝对路径。
|
||||||
|
|
||||||
以上命令中的 `<path>` 请替换为 MkDocs 安装目录的绝对路径。
|
|
||||||
|
|
||||||
这将自动安装所有依赖项的兼容版本: MkDocs、Markdown、Pygments 和 Python Markdown 扩展。
|
这将自动安装所有依赖项的兼容版本: MkDocs、Markdown、Pygments 和 Python Markdown 扩展。
|
||||||
|
|
||||||
@ -30,7 +28,7 @@ python3 -m venv <path>
|
|||||||
|
|
||||||
切换到你希望项目所在的目录,然后输入:
|
切换到你希望项目所在的目录,然后输入:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
<path>/mkdocs new .
|
<path>/mkdocs new .
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -40,7 +38,7 @@ python3 -m venv <path>
|
|||||||
|
|
||||||
下面提供我的配置文件,供大家参考:
|
下面提供我的配置文件,供大家参考:
|
||||||
|
|
||||||
```yaml title="mkdocs.yml"
|
``` yaml title="mkdocs.yml"
|
||||||
site_name: "Cat Tom's Blog" # 站点名称
|
site_name: "Cat Tom's Blog" # 站点名称
|
||||||
site_url: https://blog.cattom.site # 站点链接
|
site_url: https://blog.cattom.site # 站点链接
|
||||||
site_author: Cat Tom # 作者
|
site_author: Cat Tom # 作者
|
||||||
@ -141,7 +139,7 @@ plugins:
|
|||||||
|
|
||||||
编辑完成后,您可以使用 Markdown 文件构建静态网站:
|
编辑完成后,您可以使用 Markdown 文件构建静态网站:
|
||||||
|
|
||||||
```bash
|
``` bash
|
||||||
<path>/mkdocs build
|
<path>/mkdocs build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
## 准备
|
## 准备
|
||||||
|
|
||||||
- Android 调试桥 (adb): [Download](https://developer.android.com/studio/releases/platform-tools?hl=zh-cn)
|
- Android 调试桥 (adb): [下载](https://developer.android.com/studio/releases/platform-tools?hl=zh-cn)
|
||||||
- Google USB Driver: [Download](https://developer.android.com/studio/run/win-usb)
|
- Google USB Driver: [下载](https://developer.android.com/studio/run/win-usb)
|
||||||
- USB 2.0 接口
|
- USB 2.0 接口
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
@ -61,7 +61,7 @@
|
|||||||
|
|
||||||
!!! info
|
!!! info
|
||||||
|
|
||||||
adb 驱动安装基本与本教程相同,最后选择 `Android Composite ADB Interface` 即可
|
adb 驱动安装基本与以上流程相同,最后选择 `Android Composite ADB Interface` 即可
|
||||||
|
|
||||||
## 刷入官方固件/救砖 - Fastboot 线刷
|
## 刷入官方固件/救砖 - Fastboot 线刷
|
||||||
|
|
||||||
@ -80,20 +80,20 @@
|
|||||||
## 刷入第三方 Recovery
|
## 刷入第三方 Recovery
|
||||||
|
|
||||||
- 进入 Fastboot: 音量减 + 电源
|
- 进入 Fastboot: 音量减 + 电源
|
||||||
- [Download](https://down.warbler.cc/XiaoMi-6/Recovery/Twrp/12)
|
- [下载第三方 Recovery](https://down.warbler.cc/XiaoMi-6/Recovery/Twrp/12)
|
||||||
- 在 adb 所在目录启动 Terminal
|
- 在 adb 所在目录启动 Terminal
|
||||||
- 执行
|
- 执行
|
||||||
|
|
||||||
```powershell
|
``` powershell
|
||||||
.\fastboot flash recovery <path>\(A14)TWRP-3.7.1-android_12.0.img
|
.\fastboot flash recovery <path>\(A14)TWRP-3.7.1-android_12.0.img
|
||||||
```
|
```
|
||||||
|
|
||||||
- 进入 Recovery: 音量加 + 电源
|
- 进入 Recovery: 音量加 + 电源
|
||||||
|
|
||||||
## 刷入第三方 ROM: LineageOS 21
|
## 刷入第三方 ROM: LineageOS 21
|
||||||
|
|
||||||
- 进入 Recovery: 音量加 + 电源
|
- 进入 Recovery: 音量加 + 电源
|
||||||
- 清除以下内容
|
- 清除以下内容:
|
||||||
|
|
||||||
* Dalvik / ART 缓存
|
* Dalvik / ART 缓存
|
||||||
* Cache
|
* Cache
|
||||||
|
@ -26,20 +26,21 @@
|
|||||||
## 刷入第三方 Recovery
|
## 刷入第三方 Recovery
|
||||||
|
|
||||||
- 进入 Fastboot: 音量减 + 电源
|
- 进入 Fastboot: 音量减 + 电源
|
||||||
- [Download](https://sourceforge.net/projects/jabiyeff-build/files/Recovery/)
|
- [下载第三方 Recovery](https://sourceforge.net/projects/jabiyeff-build/files/Recovery/),推荐 `OrangeFox-R11.1_5-santoni-27.02.22`
|
||||||
推荐 `OrangeFox-R11.1_5-santoni-27.02.22`
|
|
||||||
- 解压
|
- 解压
|
||||||
- 在 adb 所在目录启动 Terminal
|
- 在 adb 所在目录启动 Terminal
|
||||||
- 执行
|
- 执行:
|
||||||
```powershell
|
|
||||||
.\fastboot flash recovery <real path>\OrangeFox-R11.1_5-santoni-27.02.22\recovery.img
|
``` powershell
|
||||||
```
|
.\fastboot flash recovery <real path>\OrangeFox-R11.1_5-santoni-27.02.22\recovery.img
|
||||||
|
```
|
||||||
|
|
||||||
- 进入 Recovery:音量加 + 电源
|
- 进入 Recovery:音量加 + 电源
|
||||||
|
|
||||||
## 刷入第三方 ROM: VoltageOS 13
|
## 刷入第三方 ROM: VoltageOS 13
|
||||||
|
|
||||||
- 进入 Recovery:音量加 + 电源
|
- 进入 Recovery: 音量加 + 电源
|
||||||
- 清除以下内容
|
- 清除以下内容:
|
||||||
|
|
||||||
* Dalvik / ART 缓存
|
* Dalvik / ART 缓存
|
||||||
* Cache
|
* Cache
|
||||||
@ -47,7 +48,7 @@
|
|||||||
* Vendor
|
* Vendor
|
||||||
* Data {==注意:记得格式化 Data 分区==}
|
* Data {==注意:记得格式化 Data 分区==}
|
||||||
|
|
||||||
- 刷入最新官方修补固件 (主要更新 BootLoader) [Download (注意选择国行)](https://xiaomifirmwareupdater.com/archive/firmware/santoni/)
|
- 刷入最新官方修补固件 (主要更新 BootLoader): [下载 (注意选择国行)](https://xiaomifirmwareupdater.com/archive/firmware/santoni/)
|
||||||
- 刷入 VoltageOS + {==Gapps (本地备份)==}
|
- 刷入 VoltageOS + {==Gapps (本地备份)==}
|
||||||
- 清除 Dalvik / ART 缓存, Cache & Data {==注意:记得格式化 Data 分区==}
|
- 清除 Dalvik / ART 缓存, Cache & Data {==注意:记得格式化 Data 分区==}
|
||||||
- 重启
|
- 重启
|
||||||
|
Loading…
x
Reference in New Issue
Block a user