よくあるスマホの写真で容量パンパン問題を解決すべく、自宅に眠っていたサポート切れのChromebookをNAS化しました。スマホの写真をNAS化したChromebook経由&オフラインでHDDに移す流れ。
今回NASにしたのは自宅に眠っていたAcer Chromebook for Works 14(CP5-471)。およそ10年前のChromebookです。実際にNAS化して現在は自宅で運用中です。
接続設定や権限関係でつまずきも多かったのですが、最短でNAS化できる手順を紹介します。
古いChromebookをNAS化するメリット
今回紹介する「ChromebookをNASとして再生する」方法は、運用するうえで以下のメリットがあります。
- 使わなくなったChromebookを使うので無料
- 省電力性に優れている
- ファンレスで静穏
①については古いものを使いますので当然。こんなマニアックな記事を読む諸兄におかれましては、余っているHDDの1つや2つはあると思いますので、それを使えばノーコストでNASを構築できます。眠っているHDDをもよみがえらせるSDGsやで。
②については古いChromebookは消費電力が少ないため、100均で売ってるようなアダプタ+ケーブルで給電できる点。「電圧が弱くて充電できない可能性があります」とエラーが出ますが、蓋を閉めた状態なら24時間動かしても問題ないです。
もちろんChromebook付属のアダプタを使っても良いですが、付属のアダプタは他のPCやスマホの急速充電などに便利なので、安い電源構成で済まして付属のアダプタは他の用途で使うのも手。私はアダプタをなくしていたので、12Wの安アダプタ+ケーブルで運用しています。
▽ こんな感じで十分
③昔のChromebookはパワーが少ない分、ファンレスタイプが多い。今回NAS化した「Acer Chromebook for Works 14」もファンレスで動作音はゼロです。外付けHDDが回転する音はかすかに出てしまいますが、気になる場合はSSDを使えば解決です。
ChromebookをNAS化する流れは以下の通り。
- Powerwashなどの下準備
- ChromebookのLinux環境を有効化
- Sambaのインストール&設定
- ポート設定
- テスト
- 設置
- 運用
他の記事にあるようにDockerを使ってどうのこうの、という話とは無縁です(実際にはそのように動作してますが)。多分この記事の方法が最もシンプル。
あなたも文鎮化しているChromebookをNASとして再生してみませんか?(Gimini風)
ただ、サポート切れのChromebookの使用も含めてすべて自己責任でお願いいたします。
容量を空けるための下準備 Chromebookを初期化(オプション)
今回使ったChromebookはストレージがわずか16GB。時代を感じます。ストレージにChromeOS本体があるので、それを除いて自由に使えるのはおよそ10GB。
Linuxに使える容量を最大化するため、まず手持ちのChromebookは初期化(Powerwash)します。
方法は以下の記事で紹介しています。
その後、プレインストールされるアプリをすべてアンインストールします。アプリを右クリック>アンインストール。できないアプリは無視で。セットアップの段階で可能ならGoogle Play Storeも無効化してください。
これで多分10GBくらいの容量を確保することができます。データは全て消えるので大事なものがあれば退避させてください。
この手順はストレージに余裕があればスキップしても大丈夫です。
Linuxを有効化する
今回の方法はLinuxを使う必要があります。このオプションがないほど古いChromebookは今回は対象外。
こちらについては別途検証して記事化したい。ちなみにAcer CB131は無理でした。
さてLinuxを有効化する手順ですが、Chromebookの設定で行います。お手元のChromebookのバージョンにより、設定場所が微妙に変わります。

設定の最後の方にあることが多いと思いますので、「Linux開発環境」の項目を探すか上の検索窓で検索。そして環境を有効化。
有効化するとLinux環境に割り当てるディスクサイズを聞かれるので、MAXの80%程度を目安に指定。多い方が良いですが、MAXで指定すると「容量が不足してシステムが不安定です」といったエラーが出ます。この辺りは様子を見ながら調整してください。私は6.3GBで落ち着きました。
Linux環境を入れるとランチャーに「ターミナル」アプリが追加されます。これ以降はターミナルを使っての作業になります。penguinと書いてあるところをクリックするとターミナルが表示されます。

最初はコンテナ作成に少し時間がかかるかも。入力できるようになるまで待つ。
ターミナルでSambaをインストール
まずターミナルで以下のコマンドを入力し、アップデートしておきます。
sudo apt update
続いてSambaをインストールします。
sudo apt install samba -y
[-y]はイエスマンオプションで、聞かれたものすべてにYと返答する機能です。
ちなみにSambaはLinuxとWindowsの橋渡しをしてくれるものみたいです。
データ保存用HDDのマウント
一旦ターミナルは忘れてデータ保存用のHDDをChromebookに接続します。青いUSBポートがあればそちらを使うと転送速度が速い。
ChromebookとHDDを接続した状態で起動してもOK
Chromebookの「ファイル」アプリを開くと、左のメニューバーに接続したHDDが表示されると思いますので、右クリック>「Linuxと共有」を選択。ついでに名前を半角英数に変更しておくと後の設定がラクです。

ターミナルに戻ってHDDがどう認識されているのか確認をします。以下のコマンドを入力します。
ls /mnt/chromeos/removable/
これでHDD名が表示されればOKです。メモしておきます
Sambaの設定
次に、Sambaの設定を行います。Sambaの設定ファイルは/etc/samba/smb.confです。編集するにはターミナルで以下のコマンドを入力。
sudo vim /etc/samba/smb.conf
これで設定のためのファイルがvimで開きます。vimの詳しい使い方は割愛しますが、とりあえずこれだけ覚えてください。
- [i] インサートモード。文字入力ができる
- [esc] インサートモードを抜ける
- [:wq] 保存して終了
- [:q!] 強制終了
vimでなくてもよいです
smb.confファイルの最後に、i を押してインサートモードにし、以下を加えます。
[nas_storage]
path = /mnt/chromeos/removable/(あなたのHDD名)/
public = yes
writable = yes
guest ok = yes
force user = (任意の名前)
create mask = 0777
directory mask = 0777
browseable = yes(あなたのHDD名)のところは先ほど調べたHDD名を記載。私の場合は
path = /mnt/chromeos/removable/Hitachi_HDD/
force userは任意の名前。私の場合は
force user = tomo
force userは設定が必要ですが、入力する場面はないのでなんでもOKです。
Globalの設定
ここは必要かどうかよく分からないのですが、smb.confファイルの上の方に[global]というセクションがあるので以下を追記します。
[global]
map to guest = Bad User
bind interfaces only = no追記したらescで編集モードに戻り、:wqと入力。保存して終了します。エラーが出た場合は:q!で強制終了。vimの前にsudoをつけないと権限エラー(Read onlyファイルに書き込もうとしている)になるので注意してください。
その後、以下コマンドを入力してSambaを起動します。restartはタイプミスではないので気にせず。
sudo service smbd restart
少し時間がかかるので待ちます。
再びコマンドが入力できるようになったらtestparmと入力してください。エラーが出なければそれでOKです。
なお、Chromebookを再起動後は上記コマンドを打つ必要があるので、付箋にメモしてChromebook本体に貼り付けておくと良いです。
Chromebookのポート開放
ここは散々ハマったポイントなのですが、Linuxコンテナが外部からの通信を受け付けるためのポートを開放する必要があります。
Chromebookの設定からLinux環境画面>ポート転送をクリックします。

[追加]をクリックしてポート番号を入力します。何でもよいですが、「10445」としました。(TCP)オプションはいじらず、そのまま。ラベルは任意ですが、NASとしておきました。つけなくてもよいです。

ターミナルに戻ります。
ここが重要!OSの「ポート制限」を回避するコマンドを入力
スマホなど外部のデバイスから接続する際、本来ならばコンテナのデフォルトの待ち受けポートである445にアクセスしたいのですが、Chromebook側のポートは1024以上で指定する必要があるので、できません。
そこで、Linux内部で 10445 を 445 にリダイレクトする必要があります。以下のコマンドを入力します。
sudo iptables -t nat -A PREROUTING -p tcp --dport 10445 -j REDIRECT --to-ports 445
10445以外に設定した場合は書き換えてください。これで外部からの接続をポート10445でキャッチ、内部でポート445経由でコンテナに送るという流れになります。
これで設定は完了。テスト方法はWindowsのPowershellで
Test-NetConnection 192.168.x.x -Port 10445
と打ってみてください。192.168.x.xはChromebookのWiFiのIPアドレスです。Chromebookの設定>ネットワークから確認できます。

これでTcpTestSucceeded : Trueと出たら成功です!
ハマりポイント:Buffaloルーターの「プライバシーセパレーター」
ルーターには機器同士のネットワークを遮断するセパレーターという機能があります。これがオンになっているとNASは使えません。どうしてもエラーが出る場合はルーターの設定を見てください。
- 症状:Pingすら通らない。
- 対策:ルーター設定でセパレーターを「オフ」にする。
- 確認:Windowsから
ping [IPアドレス]で応答を確認。
CXファイルエクスプローラーからアクセス
それではスマホからアクセスしてみましょう。おすすめのアプリは「CXファイルエクスプローラー」です。



アプリを開いたらネットワークタブ>新規ロケーション、リモートタブ>SMBをクリックします。
SMBウィンドウで「その他」をクリックすることでポート入力画面が表示されます。

「ホスト」にお使いのChromebookのWiFiのIPアドレス、ポート番号を入れて「匿名」にチェック。これでOKをタップするとフォルダにアクセス可能です!
NASフォルダへのアップロード方法
アップロード方法はスマホやPCで写真を選択した後「共有」アイコンをクリック>共有先にCXファイルエクスプローラーを選んでNAS上のフォルダにアクセス、そこで右下の「貼付け」をタップするとアップロードされます。スマホの場合はCXファイルエクスプローラーのローカルタブから写真を探すことができます。
もう少し良い方法があるので後述します。
ChromebookをNASとして運用するときの注意点

実際にChromebookをNASとして運用するときのチップです。
Chromebookをスリープしない設定にする
デフォルトでは蓋を閉じるとスリープになります。NAS運用中は蓋を閉めておいた方がよいので(埃対策、省電力性)、スリープを無効にする設定をしておきます。
Chromebookの設定で電源管理をクリック。デフォルトでは時間が経ったら「スリープ」する設定になっていますが、「画面をオンのまま」へ切り替えておきます。また、デフォルト蓋を閉じた時「スリープ」になる設定になっていますが、これも「何もしない」へ変更。
これで蓋を閉じてもSambaが動いたままになります。この状態で運用します。
Sambaの再起動方法
Chromebookを再起動した場合は、再びターミナルからSambaを再起動する必要があります。ターミナルに以下コマンドを入力。
sudo service smbd restart
また、ポート転送のチェックボックスがオフになっているので、これをオンに戻せば再び動き出します。
設置の際の注意
HDDに繋いだ状態で電源を付けたまま動かすのは絶対NG。HDDは非常に繊細なので、必ずPCの電源を落としてHDDへの給電が止まった後に設置場所に持っていき、改めてSambaを起動します。面倒ですがHDDが壊れたら元も子もないので
番外編:ブラウザで動作するUIをpythonで作成
CXファイルエクスプローラーでの画像アップロード方法はややトリッキーで、まず画像を選んでアップロードする形。
画像選択>共有>アップロードするフォルダへ移動>張り付け
これを普通のアプリのように、アップロードする画像をプログラム側から選びたい。
アップロードボタンをクリック>アップロードする画像を選択
要するにこういうことです。

ブラウザにUIを展開するPythonを実行することで、より使いやすく、かつPCからも画像をアップデートできるようになります。
ホスト側のターミナル(Chromebook)でコマンドを打ち、あとは別のクライアント側(PCやスマホ)でブラウザにアクセスし、アドレスバーに「192.168.1.25:5000」などと打てば表示される仕組みです。
導入の手順を紹介します。
Pythonのインストール
まずはPythonをターミナルへインストールする必要があります。
Python3用のpipをインストール
sudo apt install python3-pip -y
PythonでWebアプリを作るためのマイクロフレームワーク[flask]をインストール
pip3 install flask
これで準備OK。
続いてプログラムファイル[app.py]を作成します。
ターミナルでsudo vim app.pyと打つとファイルが作成されます。[i] とタイプしてインサートモードへ入り、以下のコマンドをペースト(Ctrl+Shift+v)。その後は[esc]して[ :wq] で保存して終了です。
今回はポート「5000」を使用しているので、ポート転送に追加します。5000に意味はなく何でもよいです。
4行目のUPLOAD_FOLDER = '/mnt/nas_storage/removable/(あなたのHDD名)'の(あなたのHDD名)は今まで使っているHDD名を指定します。
起動方法はターミナルに
python3 app.py
と入力するだけ。
この状態でPCのブラウザのアドレスバーにhttp://192.168.1.25:5000 など(ChromebookのIPアドレス):5000 と打つと、上記アプリが起動します。
後はフォルダを選んでクリックすると画像選択画面になります。Ctrl+Cで終了しますが、終了させないでこのままの状態で運用します。
古いChromebookをNAS化に成功 まとめ
完全に文鎮化していたChromebookがNAS母艦として見事によみがえりました。今は給電用のアダプタを繋ぎ、蓋を閉めた状態で運用中です。妻との写真共有がはかどります。
もし自宅に古いChromebookがあるなら挑戦してみる価値はあると思います。使ってないChromebookをお持ちの方、ぜひ挑戦してみてください!

