在小米 8 上运行 Linux 系统的完整过程记录

0. 背景与目标

由于以下原因,我决定让一台退役的小米 8 运行 Linux 系统:

  • 电脑存储空间有限

  • WSL(Windows Subsystem for Linux)体验欠佳

  • 移动硬盘读写速度受限

目标:

  • 先尝试安全、可逆的非刷机方案(Termux 模拟容器)

  • 再探索完整刷机方案(Ubuntu Touch 原生运行)

  • 全程记录每一步命令与注意事项,方便新手参考和自己回顾


1. 方案一:基于 Termux 的安全模拟环境

1.1 使用 tmoe 一键包快速部署

  1. 安装 Termux(官方版本)
    Termux 官方 GitHub 下载最新版 APK 并安装。

  2. 更新包管理器

    pkg upgrade
  3. 安装 tmoe 一键包

    bash -c "$(curl -L l.tmoe.me)"
    • 进入 tmoe Linux Manager,常规使用可保持所有选项为默认值。

    • 主要步骤:

      • 安装并运行 proot 容器

      • 指定共享 SD 目录

      • 选择 Linux 发行版及版本

      • 配置 root 用户信息

      • 根据手机是否 root 决定安装哪种桌面环境

      • 指定 startvnc 为 VNC 启动命令

  4. 启动 VNC 图形环境

    • 重启 Termux

    • 执行:

      startvnc
    • 在手机或电脑上使用 VNC Viewer 连接(默认端口 5902)。

提示:此方案适合快速体验,但可定制性较低,并且容器为无 root 权限环境。


1.2 使用 SSH 从电脑连接 Termux

  1. 安装 openssh

    pkg install openssh

    注意:必须在未进入 proot 容器时安装,否则会进入容器内的终端。

  2. 设置密码并启动 sshd

    passwd
    sshd

    默认端口 8022

  3. 电脑端连接

    • 获取手机 IP(ipconfig)和 Termux 用户名(whoami)。

    • 在电脑上:

      ssh -p 8022 用户名@手机IP
    • 成功连接后可直接执行 startvnc 启动图形界面。


1.3 手动配置纯净 Termux 环境

  1. 重装 Termux(保证干净环境)。

  2. 安装 openssh

    pkg update
    pkg upgrade
    pkg install openssh
    passwd
    sshd
    • 如果遇到密钥变化拒绝连接,在电脑执行:

      ssh-keygen -R "[手机IP]:8022"
  3. 安装 Ubuntu 容器

    pkg install proot-distro
    proot-distro install ubuntu
    proot-distro login ubuntu
  4. 安装桌面环境与 VNC

    apt update
    apt upgrade
    apt install xfce4 xfce4-goodies
    apt install tigervnc-standalone-server tigervnc-common
    vncserver :1
    • 端口号 = 5900 + 显示号(:1 → 5901)

  5. 常见问题

    • 容器内执行 sudo 报错:

      No superuser binary detected. Are you rooted?

      原因:proot-distro 属于无 root 模拟环境,sudo 仅为模拟命令。


2. 方案二:刷机为原生 Linux 系统(Ubuntu Touch)

2.1 解锁 Bootloader

  1. 进入开发者模式

    • 设置 → 我的设备 → 全部参数,连续点击 MIUI 版本 7 次

  2. 绑定小米账号

    • 设置 → 更多设置 → 开发者选项 → 设备解锁状态

    • 按提示绑定小米账号和 SIM 卡

  3. 使用解锁工具

    • 下载并登录小米官方 BL 解锁工具

    • 手机关机,按 电源键 + 音量减 进入 fastboot 模式

    • 连接电脑执行解锁

常见问题:

  • 最新工具可能报错,建议使用历史版本

  • 错误码 1004/-1 与网络相关,换网络或隔天重试


2.2 刷入 TWRP Recovery

  1. 下载 TWRP 镜像
    twrp-3.7.0_9-0-dipper.img

  2. 刷入

    fastboot flash recovery twrp-3.7.0_9-0-dipper.img
  3. 进入 TWRP

    • 电源键 + 音量加,选择语言 → 滑动进入主界面


2.3 刷入 fw-vendor(可选)

  1. 下载压缩包
    fw-vendor_dipper.zip

  2. 安装步骤

    • TWRP 主界面 → 清除清除 Data

    • TWRP 主界面 → 重启Recovery

    • 将压缩包传入手机

    • TWRP 主界面 → 安装 → 选择压缩包

    • TWRP 主界面 → 清除 → 高级清除 → 勾选:

      Dalvik/ART Cache
      System
      Cache
      Data
      内置存储

2.4 刷入 Ubuntu Touch

  1. 下载刷机包(参考 教程)并解压。

  2. 刷入镜像

    fastboot flash boot boot.img        # 内核
    fastboot flash system system.img    # 系统
    fastboot flash recovery recovery.img # 恢复环境
  3. 重启进入 Ubuntu Touch。

已知问题:

  • 关机后必须再次刷入 twrp,并恢复出厂设置才能进入系统

  • 恢复会清空全部数据


3. 方案对比

方案

难度

Root 权限

数据保留

Termux + tmoe 一键包

Termux 手动配置

Ubuntu Touch 刷机


4. 常见问题与排查

  • SSH 拒绝连接:检查端口、防火墙,或清除旧密钥 ssh-keygen -R "[IP]:端口"

  • sudo 报错:非 root 容器无法获得真 root

  • 刷机失败错误码 1004/-1:网络问题,换网络或隔天重试

  • TWRP 无法进入:重新刷入 recovery 镜像