chromebookにNixOSを導入して最強のlinux開発環境を整える。
最近ChromeBookを購入しました。
youtubeを見るネットサーフィンぐらいしかChromeBookの活用を見出していませんでした。
ChromeBookには、Linuxを使用できる機能があり、でも基本的にはdebian、ubuntuベースであまり使いたいとは思いませんでした。
なので頑張ってNixOSを自分の気に入ったOSを別で入れてみたいと思います。
chrome bookのターミナル
ChromeOS
ctrl+alt+f2~f7
を押すとchromeOSの「仮想コンソール」を開けます。
ここではchromeOS自体の操作ができます。gentooのようなコマンドや、chromeOSで動いているソフトの詳細をps
などで覗いてみたりできます。
でもブラウザからコピペできない。...
crosh(The ChromiumOS shell)
ctr + alt+ T を押すと ターミナルが出てきます。
「crosh(The ChromiumOS shell)」といいます。chromeOSで許可されたコマンドが使用できます。
termina
ChromeOSからはユーザー環境にしかアクセスできません。terminaから仮想環境を起動することができます。
ChromebookのLinux環境
Chromebookのlinux環境はterminaからlxcを実行しています。lxcはchromebook特有の機能ではないので他のOSでもよくproxmoxで使用したりしています。
CUIでアクセスできれば色々と操作できるかもしれませんが
GUI画面に入ってしまうと、絶対に管理者権限でchromebookを操作させないという意思を感じてChromeBookの安全性は素晴らしいですね。
手順
1.chromebookから、linuxを開く
2.ctrl+alt+T
でcroshを開きログインする。
3.crosh> vsh termina
でterminaに入る
4.(termina) chronos@localhost ~ $ lxc list
(termina) chronos@localhost ~ $ lxc list
+---------+---------+-----------------------+-------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+---------+---------+-----------------------+-------------------------------------------+-----------+-----------+
| penguin | RUNNING | 100.115.92.199 (eth0) | 2601:646:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx (eth0) | CONTAINER | 0 |
+---------+---------+-----------------------+-------------------------------------------+-----------+-----------+
5.デフォルトインストールが実行された、ubuntu/debianは削除
(termina) chronos@localhost ~ $ lxc delete penguin
6.(termina) chronos@localhost ~ $ lxc list
(termina) chronos@localhost ~ $ lxc list
+---------+---------+-----------------------+-------------------------------------------+-----------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+---------+---------+-----------------------+-------------------------------------------+-----------+-----------+
6.OSをダウンロードします。
(termina) chronos@localhost $ lxc copy images:nixos/24.11 local:
Creating mycontainer
Error: Failed instance creation: Failed getting remote image info:
Failed getting image: The requested image couldn't be found
失敗しました。
以前は機能したような気がします。
(termina) chronos@localhost ~ $ lxc remote list
+-----------------+------------------------------------------+---------------+-------------+--------+--------+--------+
| NAME | URL | PROTOCOL | AUTH TYPE | PUBLIC | STATIC | GLOBAL |
+-----------------+------------------------------------------+---------------+-------------+--------+--------+--------+
| images | https://images.linuxcontainers.org | simplestreams | none | YES | NO | NO |
+-----------------+------------------------------------------+---------------+-------------+--------+--------+--------+
| local (current) | unix:// | lxd | file access | NO | YES | NO |
+-----------------+------------------------------------------+---------------+-------------+--------+--------+--------+
| ubuntu | https://cloud-images.ubuntu.com/releases | simplestreams | none | YES | YES | NO |
+-----------------+------------------------------------------+---------------+-------------+--------+--------+--------+
| ubuntu-daily | https://cloud-images.ubuntu.com/daily | simplestreams | none | YES | YES | NO |
+-----------------+------------------------------------------+---------------+-------------+--------+--------+--------+
実は、CanonicalによってLinuxContainerはLXDから買収されました。以下のURLは機能していますがダウンロードはできません。https://images.linuxcontainers.org
現在はhttps://images.lxd.canonical.com/ からダウンロードする必要があります。
6.リモートイメージサーバーを変更します。
(termina) chronos@localhost $ lxc remote set-url images https://images.lxd.canonical.com/
7.lxdのimageを探します。
lxc image list images:
lxc image list images:nixos
lxc image list images:nixos/24.05
8.自分の好きなOSをダウンロードして起動します。penguinは、コンテナ名なので好きなものに変更。chromeのlinuxから使いたい場合このままの設定。
とりあえずnixos/24.04入れてるけど
lxc image list
で気になったosがあればそれを入れてもいいとおもいます。
lxc launch images:nixos/24.04 penguin
9.termianaから、linuxに入る。
lxc exec penguin bash
10.nixosを使用する。
/etc/nixos/に設定ファイルがおいてあるはず。
nixosの使用方法については以前自分が書いたのでこちらを参考。
ここまでできればあとは、自分でdocker入れたり、xserverを動かしてみたり、自由に操作可能になります。
自分のchromebookが、aarch64な環境なので、
ネイティブビルド出来る環境がでてきたの嬉しい。
x86以外でaarch64な環境を試したい時に、chromebook用意するのもいいかもしれないね。
Discussion