OrbStack Linux 机器使用日志

社区话题 Linux/macOS 与自动化运维 OrbStack Linux 机器使用日志

  • 该话题为空。
正在查看 0 条回复
  • 作者
    帖子
    • #1155

      追光
      管理员

      OrbStack Linux 机器使用日志

      本文档基于 OrbStack 官方文档,旨在总结其 Linux 机器的核心功能,并整理所有提及的命令,方便用户快速查阅和使用。

      核心功能概览

      OrbStack 可在 macOS 上运行高度集成、轻量级的完整 Linux 虚拟机,支持多种发行版,体验类似于 WSL。其核心优势包括:

      无缝集成:服务可通过 localhost 访问,文件在 macOS 和 Linux 间双向共享。
      资源高效:空闲机器几乎不消耗额外 CPU。
      命令互通:可直接在 Linux 中运行 macOS 命令或可执行文件。
      架构灵活:在 Apple Silicon 上可高效运行 x8664 架构的机器或程序。
      自动化友好:支持命令行创建机器和自动化配置(如 Cloud-init)。

      详细功能与命令集

      1. 服务管理 (Services)
      使用发行版自带的初始化系统(如 systemd)管理服务。

      bash
      安装并启动 Nginx 服务示例

      apt install nginx
      systemctl start nginx

      2. 文件传输 (File Transfer)
      Mac – Linux: 文件挂载在 /mnt/mac
      Linux – Mac: 文件位于 ~/OrbStack 或 Finder 的 OrbStack 标签页。

      3. 在 Linux 中运行 Mac 命令 (Run Mac commands from Linux)
      系统预设了常用 Mac 命令的别名,也可用 mac 前缀执行任意命令。

      bash
      使用默认 Mac 文本编辑器打开文件

      open foo.txt

      将命令输出复制到 Mac 剪贴板

      ps | pbcopy

      使用 mac 前缀执行命令

      mac uname -a

      编译 macOS 可执行文件 (Mach-O)

      mac gcc -o foo foo.c

      运行编译好的 macOS 程序 (无需 mac 前缀)

      ./foo

      4. 机器间文件复制 (Copy files between machines)
      可通过挂载点访问其他 Linux 机器的文件系统。

      bash
      列出名为 \’foo\’ 的机器中的文件

      ls /mnt/machines/foo

      5. SSH
      密钥代理:自动转发,无需额外设置即可进行 Git 推送或 SSH 连接。
      SSH 服务器:内置服务器,无需在每个机器内单独安装。

      6. 机器创建 (Machine creation)
      通过 orb create 命令快速创建机器。

      bash
      创建一个 Ubuntu 机器,命名为 \’new-ubuntu\’

      orb create ubuntu new-ubuntu

      创建指定版本的 Ubuntu 机器 (如 jammy)

      orb create ubuntu:jammy new-ubuntu

      在 Apple Silicon 上创建一个 Intel (x8664) 架构的 Ubuntu 机器

      orb create --arch amd64 ubuntu new-ubuntu

      创建机器时设置默认用户密码

      orb create --set-password ubuntu new-ubuntu

      7. 自动化设置 (Automatic setup)
      创建机器后可立即执行设置脚本。

      bash
      创建机器并运行 setup.sh 脚本

      orb create ubuntu new-ubuntu && orb -m new-ubuntu ./setup.sh

      8. Intel (x86) 仿真 (Intel (x86) emulation)
      在 Apple Silicon 上,OrbStack 使用 Rosetta 实现高性能 x86 仿真。

      启用多架构支持 (Multi-architecture)
      在 ARM 机器中安装 x86 库,以运行 x86 程序。

      bash
      在 Ubuntu 上启用 amd64 多架构支持

      sudo dpkg --add-architecture amd64

      配置正确的软件源 (示例为 Ubuntu Lunar)

      echo \'deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports lunar main restricted universe multiverse
      deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports lunar-updates main restricted universe multiverse
      deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports lunar-security main restricted universe multiverse
      deb [arch=amd64] http://archive.ubuntu.com/ubuntu lunar main restricted universe multiverse
      deb [arch=amd64] http://archive.ubuntu.com/ubuntu lunar-updates main restricted universe multiverse
      deb [arch=amd64] http://archive.ubuntu.com/ubuntu lunar-security main restricted universe multiverse\' | sudo tee /etc/apt/sources.list

      更新包列表并安装 x86 基础库

      sudo apt update
      sudo apt install libc6:amd64

      使用 QEMU 调试 (Debugging with GDB/LLDB)

      bash
      安装 QEMU 静态版本

      sudo apt install qemu-user-static

      在 QEMU 中运行 x86 程序并开启 GDB 服务器 (端口 1234)

      qemu-x8664-static -g 1234 ./hello

      在另一个终端中,使用 GDB 连接调试

      gdb ./hello
      (gdb) target remote :1234
      (gdb) continue

      9. 用户账户管理 (User accounts)

      bash
      以 root 身份登录默认机器

      orb -u root

      以 root 身份登录指定机器 (如 \’ubuntu2\’)

      orb -m ubuntu2 -u root

      为当前用户设置密码

      orb sudo passwd $USER

      创建新用户 (标准 Linux 命令)

      adduser newuser

      useradd newuser

      以新创建的用户身份登录

      orb -u newuser

      10. USB 设备 (USB devices)
      目前不支持直通,但可通过命令链接使用 Mac 版本的工具。

      bash
      将 Mac 上的 \’adb\’ 和 \’fastboot\’ 命令链接到 Linux

      mac link adb
      mac link fastboot

      像在 Linux 上原生安装一样使用这些命令

      adb devices
      fastboot devices

      11. 环境变量 (Environment variables)
      通过 ORBENV 或 WSLENV 变量控制从 macOS 转发到 Linux 的环境变量。

      bash
      为单个命令转发指定变量

      ORBENV=EDITOR:AWSACCESSKEYID orb terraform apply

      为后续所有命令设置要转发的变量

      export ORBENV=EDITOR:AWSACCESSKEYID

      12. 系统日志与信息 (Boot logs & Info)

      bash
      查看指定机器 (如 \’ubuntu\’) 的启动日志和控制台输出

      orb logs ubuntu

      查看 Linux 内核头文件 (位于压缩包内)

      /sys/kernel/kheaders.tar.xz

      当前限制

      图形应用:默认不支持,需自行配置 XQuartz 或 Xrdp。
      嵌套虚拟化:在 Apple Silicon 上暂不支持嵌套 KVM,需等待 macOS 官方支持。
      内核模块:编译自定义内核模块可行但非官方支持,且每次 OrbStack 更新后需重新编译。

正在查看 0 条回复
  • 在下方一键注册,登录后就可以回复啦。