クロームブックでLXDを試す

クロームブック(Chromebook)にあるクロスティーニ(Crostini)はLXDを利用して動作しています。

クロームブックで開発環境を構築する

LXDを試す


クロームブック(Chrome OS)は標準機能としてLXDを操作することができますので、今回は操作しながら見ていくことにしましょう。




細かい仕組みを見ていく前に、LXDで任意のインスタンスを作成することにします。


Ctrl + Alt + Tを押すと、



crosh(Chrome Shell)と呼ばれるターミナルが起動します。

下記のコマンドを実行して、Termina(テルミナ)と呼ばれるVMイメージを起動します。

crosh> vmc start termina

※すでにクロスティーニを起動している場合は

crosh> vsh termina

になります。


テルミナが起動すると、プロンプトが

(termina) chronos@localhost ~ $ 

に切り替わります。


プロンプトがテルミナに切り替わると、lxdやlxcのコマンドを実行できるようになります。

試しに

$ lxd --version

を実行してみましょう。

5.0.2

のようにLXDのバージョンが出力されます。




続いて、defaultのプロフィールを確認します。

$ lxc profile show default
config:
  boot.autostart: "false"
  boot.host_shutdown_timeout: "9"
  raw.idmap: |-
    both 1000 1000
    both 655360 655360
    both 665357 665357
    both 1001 1001
  security.nesting: "true"
description: Default LXD profile
devices:
  /dev/snd/controlC0:
    major: "116"
    minor: "0"
    mode: "0666"
    path: /dev/snd/controlC0
    type: unix-char
  /dev/snd/pcmC0D0p:
    major: "116"
    minor: "16"
    mode: "0666"
    path: /dev/snd/pcmC0D0p
    type: unix-char
  /dev/snd/seq:
    major: "116"
    minor: "1"
    mode: "0666"
    path: /dev/snd/seq
    type: unix-char
  /dev/snd/timer:
    major: "116"
    minor: "33"
    mode: "0666"
    path: /dev/snd/timer
    type: unix-char
  /dev/wl0:
    major: "245"
    minor: "0"
    mode: "0666"
    path: /dev/wl0
    type: unix-char
  cros_containers:
    path: /opt/google/cros-containers
    source: /opt/google/cros-containers
    type: disk
  cros_milestone:
    path: /dev/.cros_milestone
    source: /run/cros_milestone
    type: disk
  eth0:
    nictype: bridged
    parent: lxdbr0
    type: nic
  external:
    path: /mnt/external
    source: /mnt/external
    type: disk
  fonts:
    path: /usr/share/fonts/chromeos
    source: /mnt/fonts
    type: disk
  fuse:
    mode: "0666"
    source: /dev/fuse
    type: unix-char
  root:
    path: /
    pool: default
    type: disk
  shared:
    path: /mnt/chromeos
    source: /mnt/shared
    type: disk
  tun:
    mode: "0666"
    source: /dev/net/tun
    type: unix-char
name: default
used_by:
- /1.0/instances/penguin

クロスティーニとして動いているpenguinというインスタンスでdefaultプロフィールが用いられていました。


興味があれば、lxdbr0ネットワークやdefaultストレージも見ておくと良いでしょう。

LXDを試す




インスタンス名がc1のインスタンスを作成してみます。

下記のコマンドを実行します。

lxc launch ubuntu:24.04 c1
Creating c1
Starting c1

が出力されたら、

$ lxc list

のコマンドを実行して、

+---------+---------+-----------------------+--------------------------------------------+-----------+-----------+
|  NAME   |  STATE  |         IPV4          |                    IPV6                    |   TYPE    | SNAPSHOTS |
+---------+---------+-----------------------+--------------------------------------------+-----------+-----------+
| c1      | RUNNING | 100.115.92.200 (eth0) | 240d:1e:3bb:5500:216:3eff:fee6:9fdb (eth0) | CONTAINER | 0         |
+---------+---------+-----------------------+--------------------------------------------+-----------+-----------+
| penguin | STOPPED |                       |                                            | CONTAINER | 0         |
+---------+---------+-----------------------+--------------------------------------------+-----------+-----------+

インスタンスが生成されていることを確認します。




作成したインスタンスを操作してみます。

今回は下記のコマンドを実行して、インスタンスにbashログインをしてみます。

sudo lxc exec c1 bash

lxc execの後にインスタンス名とインスタンス内で実行したいコマンドを追加します。


このコマンドを実行すると、

root@c1:~# 

になり、インスタンス内にログイン出来たことになります。


動作確認の為に下記のコマンドを実行してみます。

# cat /etc/lsb-release

※# はコメントではなく、rootアカウントで操作している意味になります。

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu 24.04 LTS"

Ubuntu 24.04に切り替わっている事がわかります。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。