古いLet's Note (CF-S10)にCloudReady入れてみた

# はじめに

Chromebookに興味があったのですが、最初から購入するのもちょっと…と少し不安があったので、もう使っていないLet's Note(CF-S10)にCloudreadyを入れて試してみることにしました。
とにかく、何ができそうで、何ができそうにないのかを確認できればと思って、できたことと引っかかったけど解決できたことをメモっておこうと思います。

# インストール環境

<dl>
  <dt>機種</dt>
  <dd>Let's Note CF-S10 (2011年)</dd>
  <dt>CPU</dt>
  <dd>Core(TM) i7-2620M</dd>
  <dt>RAM</dt>
  <dd>16GB</dd>
  <dt>HDD(SSD)</dt>
  <dd>256GB</dd>
  <dt>OS</dt>
  <dd>Chromium OS 85.0.4183.162 (Developer Build 0 Chromium OS)</dd>
</dl>

# 試したかったこと

- どの程度、通常使用に耐えられるか
- 普段使っているアプリ(On Windows)が提供されていて動作するか
- 開発環境を作れるかどうか

# インストールしたかったもの

Cloudreadyのインストールについては、いろんな方が書かれているので、そちらを参考にしていただいたほうが、最新のものを見つけられると思います。
普段使う上で、ないと困るもの、開発環境で普段使っているアプリケーションは、今のところ、下記。

- [Docker](https://www.docker.com/)
- [Enpass](https://www.enpass.io/)
- [Jetbrains Toolbox App](https://www.jetbrains.com/ja-jp/toolbox-app/)
- その他Jetbrainsの各種開発ツール

# 結論

結論から先に書いておくと…

- ブラウザーで完結するものについては、普通に使えそう。
- パスワード管理ツール(Enpass)を使っているのだけど、Linux版を使えばうまく使えそうだが、いくつかハマった点あり。
- 開発環境(Jetbrains系 with Docker)もLinux版でうまくできそうだけど、これもハマった点あり。

という感じ。

メールとかはまだ未確認なので、今後試してみて追記する(予定)。

# 導入手順とハマった点

## Linux(ベータ版)

1. インストール

    特に悩むことはなかったです。
    設定のLinux(ベータ版)を選んでウィザードに従っていけばインストールできます。

1. ハマった点

    初期値のディスクサイズだと全然足りず、途中でDisk Fullになった挙げ句、バックアップも取れず、削除→作り直し(32GB)に…

## Docker

1. インストール

    普通にapt-getでインストールしても大丈夫そうだけど、公式の[Debianでのインストール](https://docs.docker.com/engine/install/debian/)で試しました。

1. ハマった点

    1. docker psしたら、「Couldn’t connect to Docker daemon」が発生。
        どうやら一般ユーザーでsocketにアクセスができなくて発生するエラーのようなので、一人で使うChrome OSなので、下記のコマンドを実行後、「ターミナル」アプリアイコンを右クリック、「Linux（ベータ版）を終了」を選択し、Linuxコンテナを再起動で解決。

        ```
        user$ sudo usermod -aG docker <your-user>
        ```

    1. docker-compose up -dしたら、「write sysctl key kernel.domainname: open /proc/sys/kernel/domainname: permission denied」が発生。
        dockerがうまく一般ユーザーで実行できるようになったので、docker-composeでbuild　→　up -dしたら、上記のエラーが発生しました。
        domainnameが…と出ていたので、まだ特権ユーザーじゃないとだめなのか？と調べてみたのですが、どうやら違う模様…

        原因は、なんと、docker-compose.xmlで、何気なく指定した「domainname:」項目…
        これを外したら、難なく解決。

## Enpass

1. インストール
公式の[KB](https://www.enpass.io/support/kb/general/how-to-install-enpass-on-linux/)にあるとおりに進めていけば、インストールは完了します。
すでにWindowsで使っていたけど、Vaultのバックアップを取っていなかったので、New Userで新しくデータを作った上で、パスワードデータだけ同期(from Microsoft OneDrive)することに。 
インストールしたものは、2020/12/28 00:00時点で、
Enpass 6.5.1 (723)

1. ハマった点
    1. Enpass本体
    ※おそらくVaultのリストアも同じ対応でできると思います。
データのSyncをさせようとすると、通常ならば、ChromeでOneDriveにログインすると、EnpassがChromeから開かれて、認証完了になると思います。
    しかし、ChromeOS→Linux上のEnpassへのリダイレクトができず、「このページはChromeで開けません」というエラーが出てしまい、認証が完了できない状態で止まってしまいました。
    調べてみると、Linux上のEnpassに、認証用のURLを渡せれば、認証が完了するという記事を見かけたので、以下の手順で試してみました。

        1. エラーが出たChromeのページでDeveloper Toolを開き、SourceタブでCtrl+Shift+Fを押して、「redirect_btn」というキーワードで検索し、Clickイベントを探す。
        1. Clickイベント内の「redirect_link」という変数が出てきている行にブレークポイントを貼って、ページの「Redirect」ボタンを押下。
        ![Screenshot 2020-12-27 at 22.58.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303822/bd64fd41-8c59-3067-f97c-0e23f8daa597.png)
        1. ブレークポイントで止まるので、redirect_link変数の中身を右クリック「Copy link address」でコピー
        1. Linuxのターミナルを開き、下記のコマンドを実行。(/opt/enpass/Enpassの後ろにコピーしたURL)

        ```
        user$ /opt/enpass/Enpass https://auth.enpass.io/onedrive/?code=...
        ```
    1. [Enpass extension](https://chrome.google.com/webstore/detail/enpass-extension-requires/kmcfomidfpdkfieipokbalgegidffkal)
    Enpass本体への通信ができないというエラーが発生し、IPとポートを設定する画面が出てきたので、

    <dl>
    <dt>IP</dt>
    <dd>127.0.0.1</dd>
    <dt>Port</dt>
    <dd>10391</dd>
    </dl>

    を設定したところ、問題なく使えるようになりました。

## [Jetbrains Toolbox App](https://www.jetbrains.com/ja-jp/toolbox-app/)

1. インストール

    公式のLinux版をダウンロードして、「ファイル」アプリを使って、Linuxファイルへ移動し、展開すれば完了です。
    インストールしたものは、2020/12/28 00:00時点で、
Toolbox App 1.19.7784, Debian GNU/Linux 10 (buster) 10 (Linux 5.4.48-06434-gd868196d13af)

    ```
    user$ tar -zxvf jetbrains-toolbox-1.19.7784.tar.gz
    ```

1. ハマった点

    ハマったというか、ログインができず、色々と困りました。
    原因はEnpassと全く同じで、Chromeでログイン後、Jetbrains Toolboxにリダイレクトしてくるのですが、開けず、という状況だったので、対応は全く同じでした。
    ただし、URLの取得方法が若干異なり、ログイン後の「Approve」ボタンを右クリック、「検証」で開くと、そこに記載がされているのですが、https://account.jetbrains.com/の部分が 
   書かれていないので、先頭につけて、それをjetbrains-toolboxコマンドに引き渡す必要があります。

    ```
    user$ jetbrains-toolbox https://account.jetbrains.com/oauth2/consent/accept?_st=...
    ```

# 終わりに

かなり無理矢理、認証を通している感じなので、各アプリケーションの仕様の変更で対応ができなくなる可能性も高く、デザイン変更などによるURLの取得方法も変わるかもしれないです。