あれこれ備忘録@はてなブログ

勉強したことやニュースや出来事を備忘録として書いていきます

このブログには広告が含まれます

(デレステをPCでする人も必見!)Android-x86やRemix OSの個人用データファイルdata.imgを2GB以上の大きさで作る。手動インストールの方法もあり

halfcoin.blog.fc2.com

デレステというキーワードのせいでしょうか?

この時点で200人近くの人にブックマークされています。

ツイッターでも多くの人がリンク付きツイートで言及していました。

Androidが搭載されたスマホタブレット用のゲームとして配信されているデレステ(アイドルマスター シンデレラガールズ スターライトステージというそうです)を高解像度で大画面のタッチ対応ディスプレイでプレイしたい、というユーザーがPCにAndroid-x86をインストールして各種設定してプレイ環境を整えた話です。

解像度変更ツールやGPU情報偽装ツールは知らなかったので勉強になりました。

この記事ではAndroid-x86のバージョン6.0のrc2が使われています。

現在では安定版の6.0-r1が出ています。

Android-x86 6.0 (marshmallow-x86)

ReleaseNote 6.0-r1 - Android-x86 - Porting Android to x86

グラフィックスライブラリのMesa 3Dもrc2からアップデートされているようなのでこちらを使うとさらに快適になるかも知れません。

気になったのはこの記述です。

Android x86インストール時、MBRext4でフォーマットした方が良い。

NTFSFat32では、使えるストレージ容量が2GBしかありません。 ext4なら2GB以上に設定可能。

実はこの記述は間違いです。

ReleaseNote 4.4-r4 - Android-x86 - Porting Android to x86

The obsolete 2GB limitation of data.img (created when installed to NTFS or VFAT) is also removed. Note VFAT still suffers from the 4GB limitation of the filesystem.

個人用データを書き込むdata.imgの大きさの2GBの制限は4.4-r4で撤廃されています。

(FAT32の限界でファイル1つの大きさは最大4GBですからそれ以上のデータファイルは作れませんが。

NTFSではこの限界はなく空き容量いっぱいまで作ることができます)

しかし、この勘違いをするのは当然で、私も今回調べるまでおかしいな?と思いつつ2GBの制限があるものと思っていました。

この廃止した記述を見た記憶はあったのですが、あいかわらず残っているかのように思っていたのです。

その原因はインストーラーが修正されていなかったからです。

たしか1-2048の範囲で書き込むように書かれていたと思います。

無視して2048以上の数値を書き込めば良いのかも知れません。

自分で作ることもできます。

Linuxなどを使っている場合には

dd if=/dev/zero of=data.img bs=1M count=8192

などとすれば8GBのdata.imgが作られるでしょう。

countの数は厳密には8GBでは無いかも知れません。

8000で8GBになると書いているところもあります。

高速に作る方法があるようで

dd if=/dev/zero of=data.img bs=1M seek=8192 count=1

とすると一瞬でできるようです。

中身はゼロで埋まっていないらしいのですが、いずれにしろフォーマットするので問題ないようですね。

いずれにしろ、それでdata.imgを作ったら

mkfs.ext3 data.img

とすればEXT3でフォーマットされます。

mkfs.ext4でも大丈夫なようです。

このdata.imgを元のdata.imgと置き換えれば良いのです。

Windowsで作る場合にはdd for windowsを使えばdata.imgを作るところまではできます。

dd for windows

/dev/zeroはこのソフトウェアの中で使えるようになっているようです。

あとはここの少し下にあるMKE2FS.EXEと書かれたリンクからmke2fs.zipをダウンロードします。

MTOOLs for Bochs and Win32 and/or DOS

解凍したmke2fs.exeを使って、

mke2fs.exe -F -t ext3 data.img

または

mkfs.ext3 data.img

とすればフォーマットできます。

2017/01/24 追記

6.0-r2ではインストーラーのフォーマットの選択項目がext4になっているので、ext4でのフォーマットの方が良いかも知れません。

mkfs.ext4 data.img

でできます。

追記終わり

探してみたら、それらをすべていっぺんに行うツールと作り方が書いてある記事がありました。

www.reddit.com/r/RemixOS/comments/40xy2o/how_to_make_large_internal_storage_for_remix_os/

redditのリンクを貼り付けるとはてなブログのスパムフィルタに引っかかって投稿できなくなるので、URLだけ載せておきます。

ここには作ったあとのdata.imgもあります。

www.reddit.com/r/RemixOS/comments/418r8o/remix_os_how_to_expand_dataimg/

これを元のdata.imgと置き換えます。

多くのサイトでは、data.imgの2GB制限を避けるためにインストール先のHDDをext3でフォーマットするようにしています。

しかし、FAT32NTFSでフォーマットした領域にインストールしたほうがsystem.sfsまたはsystem.imgが起動時にメモリに読み込まれ、比較的古く遅いPCでも高速に動くのではないかと思います。

もちろんメモリが少ない場合にはスワップが起きて、かえって遅くなるでしょうが。

この方法を使うとAndroid-x86を手動でインストールすることも可能です。

GrubやGrub2などのブートローダーが必要になります。

ISOファイルをマウントしたり解凍して、その中身のうち

  • initrd.img
  • install.img
  • kernel
  • ramdisk.img
  • system.sfs

をインストールしたいHDDにコピーします。

install.imgは必要ないかも知れません。


追記

やはり、install.imgはいらないようです。

追記終わり


多くの場合、フォルダ(ディレクトリ)に置くことが多いです。

Linuxなどをインストールしている場合にはすでにGrubがインストールされているでしょう。

ここではandroid_x86という名前にフォルダに置くことにします。

Ubuntuの場合にはGrub2ですね。

Grub2の場合にはこうなるでしょう。

menuentry 'Android-x86 6.0-r1' --class android-x86 {
    search --file --no-floppy --set=root /android_x86/kernel
    linux /android_x86/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android_x86
    initrd /android_x86/initrd.img
}

Ubuntuの場合には、/etc/grug.d/40_customに書き込むのが通常のようです。

一方、Grubの場合はこうなると思います。

title Androidx86 6.0-r1
  find --set-root --ignore-floppies --ignore-cd /android_x86/kernel
  kernel /android_x86/kernel quiet root=/dev/ram0 androidboot.hardware=android_x86 SRC=/android_x86
  initrd /android_x86/initrd.img

これをmenu.lstに追加します。

Remix OSも同じような方法で手動でインストールが可能です。

Windowsしか使っていない場合には、Remix OSには最初からWindowsで実行できるインストールツールがありますから必要無いですが。

Windows領域とは別領域にインストールしたい場合には便利かも知れません。

Remix OSの場合もAndroid-x86と同様にISOの中身をインストールしたいHDDのどこかに置きます。

RemixOSというフォルダに置くことにしましょう。

Grub2では

menuentry 'Remix OS' --class android-x86 {
    search --file --no-floppy --set=root /RemixOS/kernel
    linux /RemixOS/kernel root=/dev/ram0 androidboot.hardware=remix_x86 androidboot.selinux=permissive quiet SERIAL=random logo.showlogo=1 DATA= SRC=RemixOS CREATE_DATA_IMG=1
    initrd /RemixOS/initrd.img
}

追記

これだと駄目な場合があるようです。

そのときはこちらで。

menuentry 'Remix OS' --class android-x86 {
    set root='(hd0,?)'
    search --fs-uuid --no-floppy --set=root {harddisk's uuid}
    linux /RemixOS/kernel root=/dev/ram0 androidboot.hardware=remix_x86 androidboot.selinux=permissive quiet SERIAL=random logo.showlogo=1 DATA= SRC=RemixOS CREATE_DATA_IMG=1
    initrd /RemixOS/initrd.img

}

set rootの?はRemix OSをインストールしたパーティション番号で、{harddisk’s uuid}のところはそのパーティションのUUIDです。

Ubuntuなどではblkidでパーティション一覧が出るのでそこからわかります。

追記終わり


Grubでは

title Remix OS
  find --set-root --ignore-floppies --ignore-cd /RemixOS/kernel
  kernel /RemixOS/kernel root=/dev/ram0 androidboot.hardware=remix_x86 androidboot.selinux=permissive quiet SERIAL=random logo.showlogo=1 DATA= SRC=RemixOS CREATE_DATA_IMG=1
  initrd /RemixOS/initrd.img

蛇足

これを見て、思い立って古いマシンにAndroid-x86とRemix OSを上の方法で手動インストールしてみました。

どちらも起動時にはセットアップ画面が表示されるまでに時間がかかります。

特にRemix OSはインストールに失敗したのではないか?と思うほど時間がかかります。

Android-x86.orgトップページにあるDownloadからは4.4-r5しかダウンロードできません。

しかし、4.4-r5はなんだか3台のマシンで試しましたがどうも不安定です。

インストーラーがおかしいという指摘もあります。

私の印象ではそれ以外の部分もおかしなところがあるように思います。

Firefoxでページを表示しただけで強制終了したり、Google Playやアカウント認証関係のアプリが強制終了してエラーのダイアログが頻繁に出ます。

上のリンクにある4.4-r4のリリースノートのページから4.4-r4がダウンロードできるのでそちらを使ってみると良いかも知れません。

インストール自体は上記の方法でインストーラーを使わずにインストールすることができます。

これならGPD WINやタブレットとしてもノートPCとしても使えるコンバーチブルタイプのマシンの一部のようなeMMCにもインストールすることができます。

もっともGrub2も手動でインストールする必要がありますが。