ジャンル不定の日記です。

Windows 10 のアップグレード通知キター

ノートPCのリカバリ領域使ってインストールしたVirtualBox上のWindows 7に、Windows 10の無料アップグレード通知キター!
Windowsアップグレード全部終わって1日経過くらいかな?
アップデート終わってすぐには通知こなかったが、いま起動したらきてた。




VirtualBox Graphics Adapter が対応してないからダメだよと言われた・・・
ドライバ削除を試してみたけどダメだった・・・

手動でインストールすればいいぽいけど、まだ7のままでいいや。
ノートのOEMライセンス流用してVirtualboxに入れてるけど、両方アップグレードは無理かもしれないから、
先に仮想環境をアップグレードして、実機の方は無料期間ギリギリで試してみたいと思う。
仮想環境で無料アップグレードできちゃえば、ハード的な寿命無しで永久にWindows使えちゃうね。

Btrfsのlzo圧縮してみた

以前からLinuxインストールするときのファイルシステムはBtrfsにしていたが、
Btrfsには圧縮機能があり、lzoアルゴリズムで圧縮すると、容量節約だけでなくパフォーマンスも上がるとか・・・
容量も余裕ないし、これは使うしかない!

マウントオプションに、
compress=lzo
をつけると、以後作成されたファイルが圧縮されるとのことで、早速 /etc/fstab に追加。

作成済みのファイルも、
# btrfs filesystem defragment -r -v -clzo /
で / 以下全部圧縮できるとのことでやった。


256GBのSSDが壊れて、代わりに使った1TBのHDDも壊れて、今は320GBのHDDをメインストレージに使用しているが、
256GBの時よりは多いけど320GBじゃ余裕はなかったんだよね。
圧縮前の状態で空きが144GBで、途中でゴミ箱削除して5GBほど増えたのだが、
圧縮が完了したら217GB空きになった。
空きが70GBほど増えたね。

メインストレージと別に3TBのHDDをリムーバブルで繋いでバックアップ用にしているが、そっちは今のところ余裕。
圧縮すればかなり節約できると思うが、この前1TBのHDDが壊れた時に、Btrfsだと破損するとサルベージが難しいと思ったんで、
バックアップ用はBtrfsじゃないほうが良いような気もする・・・

リカバリ領域からVirtualboxにWindows7インストール成功した

先日から試していた、東芝ノートPCのリカバリを使ってVirtualbox仮想環境にWindows7インストール成功した。
DVD2枚組のリカバリディスクとHDDのリカバリ領域があるのだが、DVDは入れ替え作業ぽいところでエラーが出て失敗したのでリカバリ領域を使ったインストール。

機種はTOSHIBA dynabook Satellite B450/B (ヤフオクのジャンク品で3,300円)
東芝機ならノートでもデスクトップでも同じ方法でできると思う。

これまでの仮想環境へのリカバリ実験で、
FUJITSU XP (CDx3) → 失敗
HP Vista (DVDx1) → 成功
TOSHIBA 7 (DVDx2) → 失敗
と、今回の、
TOSHIBA 7 (HDD) → 成功
となった。
プリイン回避の改造が必要だったんで、HPのVistaより難しかった。


<実機システム情報の抽出>
システム情報はdmidecodeコマンドのWin32バイナリを拾ってきてコマンドプロンプトから、
dmidecode > dmidecode.txt
てな感じでテキストファイルに保存。
USBメモリを使用して行った。
リカバリを行うときに東芝ノートに偽装する必要があるので使う。


<実機パーティション情報とリカバリ領域イメージの抽出>
Arch Linuxのインストールディスク(USBメモリ)で実機を起動し、外付けHDDに保存した。
リカバリ領域の容量は6GBちょいなので、大きめのUSBメモリでも可能なサイズ。
保存用の外付けディスクが /dev/sdb1 だとして、
# mount /dev/sdb1 /mnt
# fdisk -l > /mnt/fdisk.txt
# dd if=/dev/sda3 of=/mnt/recovery.img bs=512
fdiskの出力を確認しての作業だが、実機パーティションは、
Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048   3074047   3072000   1.5G 27 Hidden NTFS WinRE
/dev/sda2         3074048 475801599 472727552 225.4G  7 HPFS/NTFS/exFAT
/dev/sda3       475801600 488396799  12595200     6G 17 Hidden HPFS/NTFS
こんな感じになってて、タイプが17の隠しNTFSのパーティションがリカバリ領域だったんで、このパーティションイメージをファイル化。


<仮想HDDの作成>
実機から抜き取ったのはリカバリ領域のパーティションイメージであってディスクイメージではないので、
仮想HDDを作成してfdiskでパーティションを作り、ddでイメージを書き込む。
作業は、Linuxのインストールディスクなどでも可能だと思うが、
Virtualboxの共有フォルダでパーティションイメージを転送したかったので、構築済みのUbuntu(Xubuntu 14.04)仮想環境を使用した。
仮想HDDは可変サイズVDI形式で40GBとした。
本来はリカバリ領域を単体ディスクにしたかったが、testdiskのブートローダが1番目のHDD以外はブートできない糞仕様の様なので、実機と同じようにHDDの末尾にリカバリ領域がある構成に。
40GBのVDIを作成すると総セクタ数が83886080となり、リカバリ領域のセクタ数が12595200なので、
パーティション1: 始点2048 終点71290879 タイプ7(NTFS)
パーティション2: 始点71290880 末尾まで タイプ17(隠しNTFS) ブータブル
となるようにfdiskでパーティションを構成。
一度ハマったのだが、リカバリ領域ブータブルにしなくてもtestdiskでブート可能なのだが、リカバリツールでエラーになるぽい。
パーティションの構成が終わったらリカバリ領域のパーティションイメージを書き込み。
# dd if=/media/sf_data/recovery.img of=/dev/sdb2 bs=512
共有フォルダ上のイメージファイルが"/media/sf_data/recovery.img"で/dev/sdb2が仮想HDDのリカバリ領域。
リカバリ領域のパーティション番号が2以降で前に空き領域があればパーティション1は不要かもしれない。


<ブートローダのインストール>
引き続き仮想Ubuntu上での作業。
リカバリ領域を起動するのにブートローダが必要だが、testdiskコマンドを使った。
# apt-get install testdisk
# testdisk
[No Log] ↑↓でデバイス選択 [Proceed] [Intel]
[Advanced] [Boot] [Rebuild BS] [Write] [Y]
[MBR Code] [Y] [Y]
testdiskはコマンド選択式のアプリ。
今回は1番目のパーティションが空だが、空のパーティションがある状態で[Analyse]コマンドを使うと、パーティションが削除されて番号が詰められてしまうようなので注意。
リカバリ領域のパーティションがブータブルなのでtestdiskの[MBR Code]で自動で起動できるようだが、
ブータブルの領域がない場合は起動時に"1234F"と表示される。1234はパーティション番号でFはFDDで、選択したものがブートされる。
が、リカバリ領域がブータブルでない場合はリカバリツールでエラーが発生する模様。


<システム情報の偽装>
作成した仮想HDDでリカバリツールが起動できるが、システム情報を偽装して東芝ノートだと思わせないとツールが使えない。
実機のdmidecode出力結果を元に、
VBoxManage setextradata "Win7" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" "dynabook Satellite B450/B"
てな感じで、VirtualboxのBIOSシステム情報を変更できる。
"Win7"の部分はVM名
続く部分は、"Config/"に続く"DmiSystemProduct"の部分が設定項目。
最後のパラメータが値だが、値に数字以外が含まれる場合はそのまま入力でいいのだが、値が数字のみで構成されている場合は"string:0000000000"の様に書かないとVMが起動できない。
不要な値もあるかもしれないが、
DmiSystemVendor
DmiSystemProduct
DmiSystemSerial
DmiSystemUuid
DmiSystemFamily
DmiSystemSKU
上記6項目を設定したらリカバリツールが使用できた。


<Windows7のインストール>
ここまでの作業でインストール可能になっているので、TOSHIBA Recovery Wizardで仮想HDDの1番目のパーティションにインストールなのだが、
インストール完了後の初回起動時に東芝の追加インストールが始まり、エラーが発生して無限再起動に陥る。
インストール直後に改造する必要があるので、インストール完了で再起動の場面になったら、再起動せずにシャットダウンする。
ちなみに、MBRにtestdiskのブートローダが入っていることが原因だと思うが、HDDから起動すると一度Windowsの修復が発生する。自動で治る。


<プリインストールの改造>
東芝追加インストールで無限再起動に陥るので改造する。今回の作業も仮想Ubuntuで行った。
# mount /dev/sdb1 /mnt
Windowsのパーティションがsdb1なので、マウント。
OSバージョンによって構成が違うと思うが、手元のでは初回起動時に"/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup/B1.BAT"が実行され、更に"/Windows/System32/sysprep/BTOot.bat"実行される構造になってた。
BTOot.batでは、"/Windows/System32/sysprep/"にある"COMPxxx"ディレクトリが存在すると追加インストールされる。
"COMPxxx"ディレクトリ内の"COMPMSG.INI"をみると、何をインストールするのかなんとなくわかる感じだった。
"COMPxxx"ディレクトリが存在しなければインストールが省略されるので、消す。(復元可能な方法で行ったが)
特に、"COMP086"の"Atheros Wireless LAN Driver"が無限再起動の原因ぽかった。
まあ、全部消したw


インストールしてノートPC裏のプロダクトキーで認証もできたのだが、
プロダクトキーで認証するまで、海賊版だとか言われたw
COMPxxxで消さないほうが良いのがあったのかもしれない。
まあ、プロダクトキーで認証できて正規版になったので問題なしぽい。


COMPxxxのプリイン消しすぎたからだと思うが、壁紙すら無いw

HDDリカバリ領域(東芝)からVirtualboxへのインストールを試した。

前回東芝ノートのリカバリディスクでWindows7のVirtualbox仮想環境へのインストールを試みたが、
システム情報の偽装はうまく行ってそうだったが、2枚組のリカバリディスクの入れ替えが生じる箇所と思われる場面でエラーが生じて失敗した。
ディスク入れ替えの生じないHDDリカバリ領域からのインストールなら同じ問題は生じないと考えたので、HDDリカバリ領域からのインストールを試みた。


まず、実機でArch Linuxのインストールディスク(USBメモリ)でLinuxを起動。
# loadkeys jp106
# mount /dev/sdb1 /mnt
# fdisk -l > /mnt/fdisk.txt
sdb1はUSB接続した外部HDD。
パーティション情報を保存しておいたほうがいいと思ったので、fdiskの情報をテキストファイルに保存した。
Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048   3074047   3072000   1.5G 27 Hidden NTFS WinRE
/dev/sda2         3074048 475801599 472727552 225.4G  7 HPFS/NTFS/exFAT
/dev/sda3       475801600 488396799  12595200     6G 17 Hidden HPFS/NTFS
こんな感じだった。
sda2がWindowsのCドライブなのは容量見ればわかるが、
sda1はWindowsの回復機能のパーティションらしい。
sda3がリカバリ領域。それほど大きくないね。
Windowsの回復機能はリカバリを行うと自動的に作られるようなので、sda3のリカバリ領域だけ抽出で良いぽい。
# dd if=/dev/sda3 of=/mnt/sda3.img bs=512
これでUSB接続したHDD上にWindows7のリカバリ領域が sda3.img として作成された。


ここからはVirtualboxのあるメインPCにHDDを繋いで作業。
リカバリ領域のパーティションイメージを抽出したが、Virtualboxで使うのはパーティションイメージではなくドライブ全体のイメージなので、どうするか考えたが、
新規に作成したVDIをLinuxに接続してfdiskでパーティションを作成し、パーティションにddで書き込むことにした。
ddでイメージを読み込むのに共有フォルダを使いたいので、元々あったUbuntuの仮想環境で作業した。

リカバリ領域は単体のHDDにしようと思ったので、
リカバリ領域のパーティションのセクタ数が12595200で開始位置が2048にすると、
VDIのサイズは「(12595200+2048)*512=6449790976」というわけで、6GBちょいのVDIを作成して仮想Ubuntuに接続した。

仮想Ubuntu上で、繋いだHDDはfdiskコマンドで開始セクタが初期値の2048で末尾までのパーティションを作成。
実機のパーティションはID17の隠しNTFSだったが、ブートするのに隠れてないNTFSの必要があるかと思ったので、fdiskのtコマンドでIDを7に変更した。
用意したリカバリ領域のイメージファイルがある場所を共有フォルダにして、作成したパーティションにddコマンドで書き込んだ。

1番目のパーティションにリカバリ領域があるHDDができたが、起動するためのブートローダが必要だが、
testdiskコマンドでWindows用のブートローダをMBRに書き込めるようなので使用した。
sudo testdisk

[No Log]
↑↓でデバイス選択
[Proceed]
[Intel]

[Analyse]
[Quick Search]
←→で*=Primary bootableに変更
[Write]

[Advanced]
[Boot]
[Rebuild BS]

[MBR Code]
testdiskは選択式のツールだが、流れはこんな感じ。
[Analyse]で見つかったパーティションをプライマリのブートパーティションに変更できる。
[Advanced]で[Rebuild BS]するとパーティションがブート可能になる。
[MBR Code]でMBRにブートローダがインストールできる。


作成したディスクでブート可能だったのだが、問題が生じた。
testdiskコマンドでMBRにインストールできるブートローダは、1番目のドライブじゃないとブートできない糞ローダだった・・・
作成した仮想ドライブを1番目のドライブとしてVMを起動するとリカバリ領域が起動するのだが、リカバリは1番目のパーティションに対して行われる。
作成したリカバリドライブを2番目のドライブにして起動するつもりだったが、できない。
VirtualboxでSATAのホットプラグが行えるので、リカバリ領域起動後にリカバリ対象のドライブを接続するということをやってみたが、途中で入れ替わっちゃダメらしい。


というわけで、もっとましなブートローダがあればリカバリディスクを単体のHDDとして作成できそうではあるが、
実機と同じようにパーティションを分割して、後ろにリカバリ領域がある構成にして、インストール成功したら後からリカバリ領域を消すことにした。


VDIを40GBで作りなおして、総セクタ数が83886080となり、リカバリ領域を残すと1番目のパーティションの終了位置は71290879。残りが全部リカバリ領域。
両方共パーティションタイプはID7の普通のNTFS。

で、ddでリカバリ領域のパーティションに書き込んでtestdiskでMBRにブートローダを書き込んで起動してみたら、
HDDの1番目のパーティションが消えてリカバリ領域が1番目になってた。
1番目のパーティションは空のままだったが、testdiskで[Analyse]するとファイルシステムがなかったら消されちゃうらしい。
あと、[Rebuild BS]でだと思うがパーティションタイプがID17の隠しNTFSに変わってたんだが、ブートは可能だった。

というわけで、testdiskの[Analyse]はパーティションを見つけるための機能で、
fdiskではaコマンドでブータブルにできるのでtestdiskの[Analyse]は使う必要ないぽい。
もう一度fdiskでパーティションを作り直し、
1番目のパーティションは開始位置が2048で終了位置が71290879、タイプ7のNTFS。
2番目のパーティションは残り全部で、タイプ17の隠しNTFSとした。
testdiskでは、
[Advanced]の[Rebuild BS]、[MBR Code]
でリカバリ領域をブート可能にしてMBRにブートローダ書き込み。

作成されたHDDを繋いだVMで起動し、2番目のパーティションからリカバリ領域がブートでき、インストールに成功した!


のだが、インストール直後のリブートで一回Windowsの回復が発生してブートローダの修復?後にWindows7が起動したのだが、
初回インストール時に東芝の追加ソフトがインストールが始まるのだが、
無線LANのインストールぽいところで死んで無限再起動に陥る・・・
Alt+Ctrl+Delとか、
初回ブートの東芝インストーラーが、
/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup/B1.BAT (パーティション区切りはLinux表記)
の様なので、中で起動しているコマンドをコメントしてみたり試したりしてたら何時の間にか初回起動にならなくなったのだが、

Administratorが無効で初期ユーザーもいないからログイン不能ぽいことになってWindows壊れたw


東芝の追加ソフトインストールがなければ突破できそうなんで頑張れば行けそうなのだが、今回は失敗。
なんとかなりそうな気ががするので、もうちょっと頑張ってみる。

東芝Windows 7リカバリディスクの流用に失敗

先日中古(ジャンク)で購入した東芝ノートPCのリカバリディスクをVirtualboxの仮想環境に流用を試みた。

購入したノートの方をWin10無料アップグレードできるようなら先にやりたいと考えてるんで、
Win10無料アップグレードはWindows Updateが進まないとできないと思うから届いてからずっとやってるんだが、Windows Update糞遅い・・・
一昨日届いてからずっとアップデートしてるんだが、頻繁に動いてるんだかよくわからん状況になってなかなか進まないんで、待ちくたびれたから先にリカバリディスクの流用を試みることにした。


まず、普通にVMを作成してリカバリディスクから起動すると、
「エラー」とだけ表示されて終わるw

先日のHPノートのVistaリカバリディスク流用と同じように、dmidecodeでBIOS情報を確認して、
DmiSystemVendor
DmiSystemProduct
DmiSystemSerial
DmiSystemUuid
DmiSystemFamily
DmiSystemSKU
を設定したら、突破成功!
上記設定の中に不要なものがあると思うから1個づつ試したかったが、イメージのロードが長くてめんどいからまとめてやって一発成功。
注意点は、FamilyとSKUの値が"0000000000"。
不要なデータな気もするが、数字だけの値を設定する場合は、
VBoxManage setextradata "Win7" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSKU" "string:0000000000"
の様に "string:値" と書く必要があるらしい。そのまま数値入れたらエラーでVMの起動ができなかった。


で、リカバリディスクは使用できたんだが、パーティションの初期化をして3.8Gibコピーされたところで「エラー」・・・
ERROR: 0A-0224-0000
とエラー番号が出るんでそれでググってみたが、別機種含めて東芝のリカバリディスクでよく出るエラーぽい。
解決方法は見つからなかったが、リカバリディスクは2枚組で1枚目のコピーが終わったところで出てるような気配なんで、正常ならディスクの入れ替えが発生する箇所ではないかと。
光学ドライブのハードまたはデバイスの順番が想定外なんじゃないかと思う。

実機の方はデバイスマネージャで見るとHDDも光学もIDEぽいんで、
とりあえずHDDをプライマリ・マスタにして、プライマリ・スレーブ、セカンダリ・マスタ、セカンダリ・スレーブのパターンを試してみたがダメだった。

光学ドライブの問題だとは思うので、HDDのリカバリ領域からのリカバリならこの問題突破できるような気がする。
というわけで、次はHDDのリカバリ領域からの仮想化を試してみようと思う。

Android上のchrootなLinuxでXfceを起動しようとしたが・・・

Android上のchrootなLinuxでGUIを起動している先人たちがいるので真似したが、現時点でうまく行ってない。
とりあえず、メモも兼ねて現状までまとめる。

SDカードの第2パーティションがext4になっててAndroid上で /storage/ext4sd にマウントされるようになってる。
/storage/ext4sd/.linux 以下にArch Linux(armv7)のrootfsを展開してある。


cd /storage/ext4sd
まず、ディレクトリ移動。

mount -o bind /dev .linux/dev
mount -o bind /proc .linux/proc
mount -o bind /sys .linux/sys
chroot環境の構築でカーネルは共有なので、システムが作成するディレクトリはmountでハードリンクする。

busybox busybox chroot .linux env -i bash
chrootする。
chrootの第1引数は新しいルートディレクトリだが、第2引数で実行するコマンドが指定できるので、env -iで環境変数を初期化する。
envの引数で更に実行するコマンドを指定できるので、bashを起動する。

groupadd -g 3003 aid_inet
gpasswd -a root aid_inet
idが3003のグループに所属していないとAndroidのカーネルによる制限でネットワーク(socket)が使えない。
ネットワークを使うには3003のグループを作成してユーザーを所属させる必要がある。

su -
chrootした時点でプロンプトが[#]だが、suしないとグループ権限が使えない様でネットワーク使えないらしい。

rm /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
DNSで名前解決をするためには /etc/resolv.conf にネームサーバーのアドレスを書いておけばいいが、
Arch Linux ではsystemdで動的に書き換えるようで /etc/resolv.conf がシンボリックリンクになってる。
削除してから書き込む。
8.8.8.8はGoogleの公開ネームサーバー。

pacman -Syu
Arch Linuxのアップデート。

pacman -S xfce4
pacman -S xorg-server
pacman -S xf86-video-fbdev
xfceを使うために必要そうなパッケージのインストール。
ビデオデバイスは、fbdevを使うぽい。


Xfceは startxfce4 コマンドで起動できるようなんだが、 /dev/tty0 ないと言われて起動できない。startxコマンドでも同じ。
Android上で /dev を確認しても、 /dev/tty0 じゃなくて名前が違うぽい。
わからないんで、とりあえず現時点ではここまで。


あと、今回は /dev /proc /sys の3つをAndroid環境からハードリンクしている。
上記3つはメモリだからリブートすれば復活すると思うが、
先日、ネットワークの使い方がわからなくて試行錯誤している際に /system/bin をハードリンクして、
後始末の際にシンボリックリンクと間違えて rm -r で消しちゃってAndroidのROM焼きしなきゃ復旧できない事態になった。
後始末で消すときは、きちんとumountするか端末リブートするかで慎重にやらんとね。

Androidでゲームの複アカを試そうとしたんだが・・・

Androidでchroot使ってゲームの複アカを試そうとして、微妙にchroot用のディレクトリを作成してたのだが、
そういえば、自分のタブレットはAndroid4.2だが、4.4からマルチユーザー対応になってるんだよな?
4.4以上ならchroot環境の構築などせずとも、Googleアカウントを複数使うだけでゲームの複アカができるんじゃないか?

というわけで、めんどくさいからやめた。
Colorfly G708 とかAndroid 5.1搭載で結構ほしいが、安いけど貧乏人には厳しい・・・

中ボタンがない・・・

ヤフオクで購入したノートPCをいじってるが、タッチパッドの設定で驚愕した。

物理的にも設定的にも、中ボタンがない・・・


以前からアルプス電気のタッチパッドは、設定ツールといい、ハードの操作性といい、
Synapticsのタッチパッドに比べてあまりにもひどいと思ってたが、
タップで中ボタン設定ができないってどういうことよw
タップは全面中ボタンにさせてよ・・・

USBスリープアンドチャージ

先日WinXPを実機に入れようとして古い光学ドライブ3つ試したが、全滅で苦労したが、
ヤフオクで買ったノートPC、CPUは雑魚いけど、書き込み可能なDVDドライブがついてるからDVD書き込み機の予備としても使えるかも。
Vista入ってたHPのノートも光学ドライブの故障でリカバリできなかったし、光学ドライブの故障率パネェ。
重いトレイを動かすから、モーターのパワー低下で開かなくなる感じ。


あと、USBが右手前2ポートと左奥に2ポートあって多くていいね。
と思ってたんだが、
左奥のポートがLED照明置くのにちょうどよさ気な位置だったんで、デスクトップみたいに電源OFF時もスタンバイ電源で給電できないか?
と思って調べた。

そしたら、いきなり東芝の「USBスリープアンドチャージ」って機能が紹介されたページに遭遇した。
機能紹介のページでは購入したノートの型番はなかったが、対応ポートはUSBマークの隣にサンダーマークみたいのが描かれているようで、
手元の確認したら、
左奥の1ポートにサンダーついてる!

標準では無効で設定しないと給電されないようなのだが、紹介されてたOS上の設定ツールが見つからず。
BIOSで確認してみたら、その項目あったのだが[mode1][mode2][disable]とだけ書かれてて説明がねえw

mode1かmode2のどっちかがアダプタ外した時は無効になるんじゃないかと思ったが、もう一回OS上で設定ツール探したら、
[TOSHIBA] → [ユーティリティ] → [HWセットアップ]
にあった。
だが、このツールBIOSをOS上から設定するだけのツールで、通常はmode1選べとしか書かれてねえw

仕方ないので、とりあえず[mode1][mode2]の両方を試してアダプタ抜いてみたが、
どっちともアダプタ抜いても給電されてるw
電池残量で変わるのかな?

まあ、アダプタつなぎっぱじゃないとダメだが、
電源OFF時でもUSB給電できるなら、でっかい1ポートUSBアダプタとしても利用価値あるねw
落札価格的には、ノートPCよりもUSBアダプタぽいしw


あと、左側の奥から2番目のポートはUSBとeSATAの共通ポートだった。
eSATAのケーブル持ってないけど、別のハードディスクにバックアップするときに使えるね。

Androidのchrootでネットワーク

文鎮化したAndroidタブレットが復活したんで、またchrootでLinuxをやってみた。
前はネットワークを使う方法がわからなくて、操作ミスって文鎮化させてしまったが、理解できた。
Arch LinuxはSDカード上に展開してあるので、ファーム焼き直ししたがすぐ復活。


まず、chrootの前に。
# mount -o bind /dev .linux/dev
# mount -o bind /proc .linux/proc
# mount -o bind /sys .linux/sys
.linuxディレクトリにarmv7版のArch Linuxを展開してある。
chrootでカーネルはAndroidの物を使うので、カーネルが作る上記ディレクトリをAndroidからハードリンク。

で、chroot。
# busybox busybox chroot .linux env -i /usr/bin/sh
chrootの引数でコマンドを実行できるが、[env -i]で環境変数を初期化。
envコマンドの引数で更にコマンドを指定できるので、bashを起動。

この状態でネットワークが利用できない。
アンドロイドアプリと同じように制限されて。
権限を与えるにはidが3003のグループにユーザーを入れる必要がある。
# groupadd -g 3003 aid_inet
# gpasswd -a root aid_inet
前はこの時点でrootでネットワークが使えると思ってしまったのだが、
この時点で最初からプロンプトが[#]だが、chrootしたArchのrootとは違う?ぽい。
# su
suでrootになったらArchのrootになるぽい。
これでネットワークが使えた。
root以外の一般ユーザもidが3003のグループに入れればネットワークが使えるようになる。


X導入までしてみたい。
DEはUbuntuがタッチパネルに力入れてたから使いやすいのかもだが、重いよなw
Xfce辺り入れようと思う。