Debian noroot 環境のクリーンインストールにおける問題を回避する

# はじめに

[Debian noroot][DBNR] とは、 [Android OS][ANDR] 上において root 権限を取ることなく [Debian 環境][DEBI]を構築するためのアプリケーションです。
CPU の性能とメモリ容量が潤沢にある Android 端末であれば、 [Debian noroot][DBNR] の導入によって Android 端末上で非常に軽快な [Debian 環境][DEBI]を実現することができます。

重篤な障害等、何らかの理由で [Debian noroot 環境][DBNR]をクリーンインストールする必要がある場合は、 [Android OS][ANDR] のアプリ設定から [Debian noroot アプリ][DBNR]のデータ削除と [Debian noroot アプリ][DBNR]の再起動による手法により行います。

この時、 [Debian noroot アプリ][DBNR]の再起動を行っても、ストレージ領域内に [obb 形式のファイル][OBBF]が残骸として残っていると、 [Debian noroot 環境][DBNR]の初期化イメージファイルが正常にインストールされずに [Debian noroot アプリ][DBNR]及び [Debian noroot 環境][DBNR]の再起動に失敗することがあります。

そこで、 [Debian noroot 環境][DBNR]のクリーンインストール前に、 [Android OS][ANDR] 上において動作するファイルマネージャ等を用いて残骸として残っている [obb 形式のファイル][OBBF]を削除することにより、[Debian noroot 環境][DBNR]の初期化イメージファイルのダウンロードと初期化が正常に行われ、問題なく [Debian noroot 環境][DBNR]のクリーンインストールが行われることを確認しました。

本稿では、 [Debian noroot 環境][DBNR]のクリーンインストールに不具合が発生する問題を回避するための手法について述べます。

本稿では最初に、 "[問題の概要][CHAP01]" の章において、[Debian noroot 環境][DBNR]のクリーンインストールにおいて発生する問題の内容及びその原因について述べ、次に、 "[問題の回避策][CHAP02]" の章において、今回発生する問題を回避するための実際の手法について述べます。

最後に "[結論][CHAP03]" の章において本稿の結論について述べます。

# 問題の概要

本章では最初に、 "[問題の内容][SEC0101]" の節において、 [Debian noroot 環境][DBNR]のクリーンインストールにおいて発生する具体的な問題について述べ、次に、 "[問題の原因][SEC0102]" の節において、問題発生の原因について述べます。

## 問題の内容

何らかの理由で [Debian noroot 環境][DBNR]をクリーンインストールする必要がある場合、 [Debian noroot アプリ][DBNR]のアンインストール及び再インストールを行うことは不具合が発生するため不可能です。

従って、 [Android OS][ANDR] のアプリ設定から [Debian noroot アプリ][DBNR]のデータ削除と [Debian noroot アプリ][DBNR]の再起動による手法により、[Debian noroot 環境][DBNR]のクリーンインストールを行います。

しかし、 [Android OS][ANDR] から [Debian noroot アプリ][DBNR]の再起動を行った時に、 [Debian noroot 環境][DBNR]の初期化イメージが正常にダウンロードされずに以下の画像が画面に表示された状態で [Debian noroot 環境][DBNR]の起動が停止する不具合が発生することがあります。

![("Loading Please wait...")][IMG1]

そして、この場合 [Debian noroot アプリ][DBNR]を再度起動しても、上記の画面が表示された状態の後に [Debian noroot 環境][DBNR]が完全に起動を停止して、最終的に [Debian noroot 環境][DBNR]のクリーンインストールが失敗します。

## 問題の原因

[Debian noroot 環境][DBNR]が正常にクリーンインストール出来ない問題について、 [Debian noroot 環境][DBNR]のデータが格納されている ```/sdcard/Android``` ディレクトリ及び ```/sdcard1/Android``` ディレクトリを中心に問題となるファイルについて調べました。

その結果、 ```/sdcard/Android/obb/com.cuntubuntu/main.150626.com.cuntubuntu.obb``` を取り除いて [Debian noroot アプリ][DBNR]のデータ削除と [Debian noroot アプリ][DBNR]の再起動を行うと、 [Debian noroot 環境][DBNR]の初期化イメージのダウンロードが正常に行われ、 [Debian noroot 環境][DBNR]が問題なく起動することが判明しました。

最終的に、[Debian noroot 環境][DBNR]のクリーンインストールに不具合が発生する問題は、 ```/sdcard/Android/obb/com.cuntubuntu/``` ディレクトリ上にある ```main.150626.com.cuntubuntu.obb``` という [obb 形式のファイル][OBBF]が残骸として残っているために [Debian noroot 環境][DBNR]の初期化イメージファイルのダウンロードを阻害していたのが原因と判明しました。

# 問題の回避策

本章では、[前章][CHAP01]の "[問題の原因][SEC0102]" の節を踏まえて、[Debian noroot 環境][DBNR]のクリーンインストールの不具合の問題を回避するための具体的な手法について述べます。

[Debian noroot 環境][DBNR]のクリーンインストールに不具合が発生した場合、 [Android OS][ANDR] のアプリ設定において [Debian noroot アプリ][DBNR]のデータ削除を行った後、 [Android OS][ANDR] 上で動作するファイルマネージャを用いて、ディレクトリ ```/sdcard/Android/obb/com.cuntubuntu``` の内容を確認し、 ```main.150626.com.cuntubuntu.obb``` なる [obb 形式のファイル][OBBF]を削除します。

もしくは、  [Android OS][ANDR] 上で動作するターミナルエミュレータ等を用いて、以下のようにして ```/sdcard/Android/obb/com.cuntubuntu/main.150626.com.cuntubuntu.obb``` を削除します。

なお、 ```/sdcard/Android/obb/com.cuntubuntu/main.150626.com.cuntubuntu.obb``` は root 権限を取ることなく削除可能です。

```shell-session
$ rm /sdcard/Android/obb/com.cuntubuntu/main.150626.com.cuntubuntu.obb
```

```/sdcard/Android/obb/com.cuntubuntu/main.150626.com.cuntubuntu.obb``` を削除した後、再度 [Debian noroot アプリ][DBNR]を起動すると、 [Debian noroot 環境][DBNR]の初期化イメージファイルのダウンロードと初期化が正常に行われ、問題なく [Debian noroot 環境][DBNR]のクリーンインストールが行われます。

# 結論

[Debian noroot 環境][DBNR]のクリーンインストールにおいて、 [Debian noroot 環境][DBNR]の初期化イメージファイルのダウンロードに異常が発生する場合、ストレージ領域内に残っている obb 形式の残骸となっているファイルを削除すると、問題なく [Debian noroot 環境][DBNR]のクリーンインストールが行われることを確認しました。

何らかの理由で [Debian noroot 環境][DBNR]のクリーンインストールを行う場合、 **```/sdcard/Android/obb/com.cuntubuntu``` ディレクトリ以下に obb ファイルが残留していないかどうかを確認することを御勧め致します。**

# 謝辞

本稿の記述に当たって、 [Android OS][ANDR] 端末上で非常に軽快な Debian 環境を実現することを可能にした [Debian noroot 環境][DBNR]の開発者である [pelya 氏](https://github.com/pelya)に心より感謝致します。
そして最後に、 [Debian noroot 環境][DBNR]と [Android OS][ANDR] 及び [Debian 環境][DEBI]の全ての事に関わる全ての皆様に心より感謝致します。

<!-- 各章及び各節のリンク一覧 -->

[CHAP01]:#問題の概要
[CHAP02]:#問題の回避策
[CHAP03]:#結論
[SEC0101]:#問題の内容
[SEC0102]:#問題の原因

<!-- 外部リンク一覧 -->

[DBNR]:https://play.google.com/store/apps/details?id=com.cuntubuntu&hl=ja
[ANDR]:https://www.android.com/intl/ja_jp/
[DEBI]:https://www.debian.org/index.ja.html
[OBBF]:https://developer.android.com/google/play/expansion-files.html
[IMG1]:https://qiita-image-store.s3.amazonaws.com/0/86258/28a6e3cb-3323-c213-aa35-0209470bd205.png