ラベル 問題 の投稿を表示しています。 すべての投稿を表示
ラベル 問題 の投稿を表示しています。 すべての投稿を表示

2011/02/02

Google日本語入力が使えない・アンインストールできない・上書きインストールできない

twitterでつぶやいたけど忘れないようにメモ。

しばらく前からMacBookのBootcampで入れてあるVistaのGoogle日本語入力が使えなくなっていた。コントロールパネルからアンインストールしようとしても「~.msi」が見つからないとかでアンインストールできなかった。

Google日本語入力を上書きインストールしようとしても1603エラーとかでインストール出来ない。

Revo Uninstallerのフリー版をインストールしてGoogle日本語入力に関する項目はレジストリの中も含めて全部削除し、それからGoogle日本語入力をインストールしたら成功した。レジストリの中を消さないで試してみたけど駄目だった。

2009/07/23

iPhoneアプリ作成:テーブルビューセルのサンプルアプリが落ちる

SoftBank Creativeの「はじめてのiPhoneプログラミング」のサンプルアプリを作成しながら悩んだことのメモです。

いろいろ悩んでます。


P.223「UITableViewCellのカスタムサブクラス」から始まるサンプルの作成で、Cellsアプリが実行時に不正に終了してしまい困りました。

ブレークしながら実行すると、以前悩んだときと同じように"EXC_BAD_INSTRUCTION"と表示されます。


この本のサイトから取得したサンプルソースを参照したところ、iPhone SDK 2.1以上を使用している場合に変えなければならない所があるみたいです。
Jeff and Dave's Excellent iPhone Support Page


- tableView:cellForRowAtIndexPathメソッドにおいて、本の文中では次のようにあります。
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell = [nib objectAtIndex:1];


これの[nib objectAtIndex:1]としている箇所を次のように[nib objectAtIndex:0]にしなければならないようです。

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
cell = [nib objectAtIndex:0];



サンプルソースでは、コメントで次のように記述されています。
The behavior here changed between SDK 2.0 and 2.1. In 2.1+, loadNibNamed:owner:options: does not include an entry in the array for File's Owner. In 2.0, it does.




難しいです。

iPhoneアプリ作成:UITableViewCell で「warning: 'setText:' is deprecated」

SoftBank Creativeの「はじめてのiPhoneプログラミング」のサンプルアプリを作成しながら悩んだことのメモです。

ちびちびとやってます。


iPhone SDK 3.0 を使用したビルド環境でテーブルビューを使うサンプルアプリを作成すると、警告が出てしまうところがあります。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];

〜省略〜

NSUInteger row = [indexPath row];
cell.text = [listData objectAtIndex:row];

上記のコードのうち、
cell.text = [listData objectAtIndex:row];
で次のような警告が出ます。
warning: 'setText:' is deprecated



UITableViewCellクラスのドキュメントを見ると下記のようにあります。
text

The text of the cell. (Deprecated. Use the textLabel and detailTextLabel properties instead.)


ネットで調べたところiPhone SDK 3.0で"Deprecated"になったようです。


どのように変更するのがいいのかAppleのiPhone Reference Libraryで検索してみたところ、次のようにしているサンプルコードがありました。
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"CellWithSwitch"];

〜 省略 〜

cell.textLabel.text = @"Sound Effects";


これにならい次のように変更したところ、警告が出なくなったようです。
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];

〜省略〜

NSUInteger row = [indexPath row];
// cell.text = [listData objectAtIndex:row];
cell.textLabel.text = [listData objectAtIndex:row];



ビルド後に実行してみても意図した通りの動きをするようなので、大丈夫なんでしょう。
多分。

2009/07/19

iPhoneアプリ作成:Picker Viewがおかしなことに…

SoftBank Creativeの「はじめてのiPhoneプログラミング」のサンプルアプリを作成しながら悩んだことのメモです。

相変わらずよく分からずにやってます。

Picker Viewをつかったサンプルアプリの表示がおかしなことになってしまいました。
ピッカーの項目がビュー全体に広がってしまいました。


Picker Viewを使ったnibをInterface Builderで開き、File's Ownerを選択してコネクションインスペクタを開いたところ、アウトレットのところでviewがPickerに結びついてしまっています。


次のようにviewをViewに結びつけるように変更しました。



そしてビルドし直して実行します。



問題なくなったようです。



しかし、なんでこんなことに…。

iPhoneアプリのデバッグ中にEXC_BAD_INSTRUCTIONで落ちて困った

SoftBank Creativeの「はじめてのiPhoneプログラミング」のサンプルアプリを作成しながら悩んだことのメモです。

相変わらずマヌケなことやってます。


アプリの起動直後に異常終了してしまって困りました。

Xcodeのウィンドウの下の方には"EXC_BAD_INSTRUCTION"と表示されます。


デバッガの使い方もよく分かっていないのですが、デバッガでブレークポイントを設定してブレークしながら実行していると、"EXC_BAD_INSTRUCTION"表示されます。

ブレークしないで実行しても、アプリが落ちるだけでXcode側には特に何も表示されません。

まだまだ覚えなければならないことが多そうです。


"EXC_BAD_INSTRUCTION"についてですが、どうやらアウトレットの接続ミスのようです。

以下のサイトを参考にさせていただきました。
iPhone SDK APP STORE公開までのアプリ開発まとめ。遥か遠い環境設定と開発の道。


Xcodeでアウトレットを作成した際、アウトレット変数の名前をdatePickerとすべきところをdataPickerにしてしまいました。
IBOutlet  UIDatePicker  *dataPicker;


アウトレット変数の名前を間違えたままInterface Builderでアウトレットを使用してしまいました。



その後アウトレット変数の名前を間違えたことに気付き、Xcodeでソースは下記のように修正しました。
IBOutlet  UIDatePicker  *datePicker;


しかし、Interface Builderの方は修正をせず、悪いことに修正をしなくてもビルドが通ってしまい、実行時に"EXC_BAD_INSTRUCTION"のエラーが発生してしまったようです。


我ながらお恥ずかしい限りです。

2009/07/13

MacBook用にマウスを購入

MacBook用にマウスを購入しました。

ロジクールのM305DSです。


当初使っていたマウスのホイールマウスをまわした際の挙動がおかしかったので購入しました。

M305DSにしたところ上記の問題は当然発生しません。

また、ロジクールのWebサイトからドライバをダウンロードしてインストールすればホイールをまわしたときの速度と加速度を調節できるので、ホイールをまわすことによるブラウザ(Safari)のスクロールの速度が自分好みに設定できてストレス0になりました。


ホイールボタンを左右に動かしたときの設定も、初期設定の左右にスクロールから、ブラウザ(Safari)の戻る/進むのショートカットへのキーストロークに変更しました。
自分にはこちらがあっていると思います。


M305DSは自分が今まで使ってきたマウスの中で最小なんじゃないかと思うくらい小さいのですが、これがまたちょうどいい大きさです。


MD305DSの唯一気になる点は、Amazonのユーザレビューにもあるのですが、ホイールボタンの押下がかなり固いです。
でもまあ、許容範囲でしょう。



MacBook使い始めた当初は、サーバとして使っているWindowsマシンにつけてたマウスを引っこ抜いて使っていました。

サーバとして使っているWindowsマシンには別のノートPCからVNCでアクセスして使っているので、別にマウスは必要なかったからです。

そのマウスはホイールボタンがついたUSBマウスなのですが、メーカーは不明で、型番らしきものを検索してもそのマウス専用のMac用ドライバはみつかりません。
Macの標準ドライバでホイールボタンを含めて動きはします。


しかしMacBookで使い始めてから気づいたのですが、ホイールボタンをころころまわしてブラウザなどをスクロールダウンしようとしてもうまくスクロールしてくれませんでした。

試しにマウスを分解してみたところ、ホイール周りに少しほこりがたまっていたので可能な限り分解してほこりを除去しました。

多少改善されたような気はしたのですが、ホイールボタンを下方向に回してスクロールダウンをしている最中にスクロールアップしてしまうといった、上下にふらつく現象がなおりませんでした。

元のWindowsマシンにつなぎ直して確認しても同様の問題が発生するようなので、単にマウスの問題なのかと思います。
分解しきれないところにもほこりが入っていそうな気がしましたし。


それで、ロジクールのM305DSを購入したのですが、まあ当然上記のような問題は発生せず快適に使えてます。



あとは今後もロジクールさんがMac用のドライバをアップデートし続けてくれるかが心配なのですが、少し調べたところ古いマウスのドライバもちゃんと出してくれているようですので、今後も期待しています。

2009/05/27

Android: Antでビルド時に文字コードがらみの警告?

@ITのチュートリアルをやっています。
AndroidでSQLiteのDB操作をするための基礎知識 (1/3) - @IT [www.atmarkit.co.jp]

SQLiteを使用する回のサンプルプログラムをダウンロードして以下の手順でプロジェクトをアップデートした後、CUI環境でコンパイルしようとしました。

ビルド環境:
  • WindowsXP にインストールしている Portable Ubuntu for Windows


・プロジェクトをアップデート
$ android update project \ 
> --name "DB Demo" \
> --target 2 \
> --path $PWD


ant debugでビルドしてみると、文字コードがらみらしい警告が多量に発生し、ビルドもとおりません。
以下のログは文字化けしている箇所は"文字化けした文字列"と置き換えています。

・プロジェクトのビルド
$ ant debug
Buildfile: build.xml
[setup] Project Target: Android 1.5
[setup] API level: 3

dirs:
[echo] Creating output directories if needed...

(省略)

[javac] /mnt/D/xxx/workspace/DB_Demo3/src/com/example/android
/db/Main.java:87: 警告:この文字は、エンコーディング ascii にマップできません。
[javac] {"文字化けした文字列"},
[javac] ^
[javac] /mnt/D/xxx/workspace/DB_Demo3/src/com/example/android
/db/Main.java:87: 警告:この文字は、エンコーディング ascii にマップできません。
[javac] {"文字化けした文字列"},

(省略)

[javac] /mnt/D/xxx/workspace/DB_Demo3/src/com/example/android
/db/Main.java:232: エスケープ文字が不正です。
[javac] {"文字化けした文字列"},
[javac] ^
[javac] エラー 1 個
[javac] 警告 100 個

BUILD FAILED
/home/pubuntu/bin/android-sdk/platforms/android-1.5/templates
/android_rules.xml:116: Compile failed; see the compiler error output for details.

Total time: 12 seconds


どうやら日本語の文字列が含まれたファイルで警告が出ているようです。
警告が出ているファイルを調べると、Shift JISでした。

試しにUTF-8に変換してみたところ、警告が大量に出るのは変わらなかったのですが、ビルドは成功しました。
しかし、Android Dev Phone 1(ADP1)にインストールして起動してみたところ、起動時にエラーとなりこのサンプルアプリケーションを使用することはできませんでした。

ネットで調べてみたのですが、通常のJavaであればAntでnative2asciiを使うとか色々引っかかりましたが、なかなかAndroidの情報が見つかりません。
同様にnative2asciiを使用してみようかと思ったのですが、挫折しました。


やっとAndroid の build.xml のサンプルが見つかりましたので、これを参考にbuild.xmlをいじってみました。

はっきり言って意味は分かっていません。
エラー -> 修正 を繰り返して以下のコードにおちつきました。
もうちょっと調べてみたいと思います。

・build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="DB Demo" default="help">

(省略)

<target name="compile" depends="dirs, resource-src, aidl">
<javac encoding="SJIS" target="1.5" debug="true" extdirs=""
srcdir="."
destdir="bin/classes"
bootclasspath="${sdk-location}/platforms/android-1.5/android.jar">
<classpath>
<fileset dir="libs" includes="*.jar"/>
</classpath>
</javac>
</target>
</project>

build.xmlの末尾の</project>の前に<target>〜</target>を追加しています。


build.xmlを修正後、再度ビルドします。
$ ant debug
Buildfile: build.xml
[setup] Project Target: Android 1.5
[setup] API level: 3

(省略)

[apkbuilder] Creating DB Demo-debug.apk and signing it with a debug key...
[apkbuilder] Using keystore: /home/pubuntu/.android/debug.keystore

BUILD SUCCESSFUL
Total time: 17 seconds

無事ビルドがとおったようです。

ADP1 にインストールしてちょっと確認したところ、動作もしました。

2009/05/21

UbuntuでPDFのフォントが表示されない

PDFで配布されているスクウェア・エニックスのアニュアルレポートをUbuntu 9.04 で読もうとしたら、日本語フォントが一部表示されません。
アニュアルレポート | SQUARE ENIX HOLDINGS [www.square-enix.com]


文字化けしているのかな?


ちょっと調べてみたところ、Ubuntu日本語フォーラムで該当しそうな話題がありました。
Ubuntu日本語フォーラム / pdfが表示できない

poppler-dataをインストールすると解決するらしいとのことなので、早速インストールしてみました。
$ sudo apt-get install poppler-data
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています

(省略)

再度スクウェア・エニックスのアニュアルレポートを開いてみます。

無事日本語フォントが表示されるようになりました。

2008/12/03

Ubuntuでscim-skk

Ubuntu を 8.10 にアップデートしたら、なぜか scim-skk が使えなくなってしまいました。

scim-setup で確認したところ、

「IMエンジン」ー「SKK」

は存在するのですが、

「IMエンジン」ー「全体設定」



「インストールされている入力メソッド」ー「日本語」

のツリーに「SKK」が表示されなくなってしまいました。


以下の手順で、scim-skk が再度使えるようになりました。

(1) 辞書ファイルをリネーム
$ cd $HOME
$ mv .skk-scim-jisyo skk-scim-jisyo.bak


この時点で scim-setup の「インストールされている入力メソッド」ー「日本語」に「SKK」が表示されましたが、まだ SKK 入力モードになりません。

(2) SCIM 再起動
まずパネルの SCIM アイコンから SCIM を終了しました。

次に SCIM を起動します。
$ scim -d



以上で scim-skk が問題なく使えるようになりました。

2008/03/14

SXDEでGNOMEクラッシュ

MPlayerをインストールしてからしばらく他の作業をした後にログアウトし、再度GNOMEでログインしようとしたらGNOMEがクラッシュしてしまいました。

CDEで起動して、
$ dbx /usr/bin/gnome-panel

としてよく分からずにテキトーに調べてみたらFcPatternPositionとやらでエラーになるようです。
こちらに似たような情報が載っていました。

$ fc-cache -sv

した後にGNOMEを起動したところ、問題無く起動しました。

こちらに書いたSXDE 09/07から01/08へのアップデート時の問題もこれで行けたんじゃないかなと思います。

2008/03/09

SXDE(OpenSolaris)のアップデート

SXDEの01/08のダウンロードが終了したので09/07からアップデートしたのですが・・・、GNOMEが起動しなくなってしまいました。
CDEだと問題なく起動するのでGNOME固有の問題と思います。
$ ldd /usr/bin/gnome-session
とすると
libcrypto_extra.so.0.9.8 =>      (ファイルが見つかりません)
と出るのでこれかなぁと思ったのですが違うみたい。(後述)

少し調べていたのですが理由が分からず、ちょっと悔しいけどSXDE 01/08を新規でインストールし直しました。
09/07も昨日インストールしたばかりなのでいくつかのアプリをインストールしただけですし、悩んでいる時間と労力がもったいないので・・・。


ちなみに新規インストールした01/08はGNOMEも問題なく起動します。
でも
$ ldd /usr/bin/gnome-session
とすると
libcrypto_extra.so.0.9.8 =>      (ファイルが見つかりません)
と出るのは変わらないみたい。

SXDE(OpenSolaris)のインストール

SXDE 09/07が手元にあったので、それをノートPC(SOTEC WD331)にインストールしながら01/08をダウンロード。


悩んだこと

(1) NIC認識せず
こちらを参考に、「Device Detection Tool」を使用して必要なドライバを調べてから入手しインストールしました。
サウンドボードもサードパーティー製のドライバが必要みたいなのでついでにインストールしておきました。

(2) Mutt文字化け
OpenBSD/Zaurusでも使用しているmutt-1.5.17を使おうと考え、UTF-8用のパッチを適用してみたがダメ。
Muttのメニューもメールの中身も化けます。
もちろんS-Langもパッチ適用してインストールしました。

一度日本語表示出来たのですがconfigure時にSSLを指定し忘れていて、作り直したらまた化けてしまいました。

UTF-8な環境でgnome-terminal + screenを使うようにしています。
OpenBSD/ZaurusではEUC-JPでmlterm + screenです。
SXDEでも日本語翻訳されたマニュアルは読めています。

理由が分からず挫折中。

2008/03/05

OpenBSD/Zaurusで高負荷時の余計なキーリピートの対策

○X使用時、高負荷がかかっている時にキー入力した際に意図せずキーリピートしてしまう(キー連打になってしまう)のを回避する。

/etc/X11/xorg.confのにAutoRepeatの設定を追加しました。
あいかわらずよくわからずにやってます。
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "Protocol" "standard"
Option "XkbRules" "xorg"
Option "XkbModel" "zaurus"
Option "XkbLayout" "us"
# 20080304 (See keyboard(4))
Option "AutoRepeat" "800 30"
EndSection

次のようにしたつもりです。
  • リピート開始:500ms(デフォルト)→800ms
  • 1秒間のリピート数:30回(デフォルト)→そのまま


とりあえずこれでいってみます。

2007/08/11

WindowsXPからSambaへアクセス時のエラー

Sambaは私には難しいです。
色々な事が起こります。

力不足を感じます。

OpenSolarisのNexentaOS Alpha 7をSambaサーバにしているのですが、WindowsXPからSamba領域にアクセスするとフリーズしたようになってしまいます。
Samba領域内のフォルダがまったく見えていないという訳ではありません。
Vine Linux 4.1やDebian GNU/Linux 4.0からNexentaのSambaにアクセスしても問題ないように思えます。

NexentaOS Alpha 7にインストールしているSambaは次のとおりです。
root@julie:~# dpkg -l samba*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name
Version Description
+++-============
-==================-==================================================
ii samba 3.0.24-2nexenta2 a LanManager-like file and printer server for Unix
un samba-client (no description available)
ii samba-common 3.0.24-2nexenta2 Samba common files used by both the server and the client
ii samba-doc 3.0.24-2nexenta2 Samba documentation
un samba-doc-pdf (no description available)

NexentaのSambaが吐き出しているログを見ると、次のようなエラーが延々と出ています。
[2007/08/11 23:35:36, 0] smbd/notify_fam.c:fam_check_reconnect(136)
failed to connect to FAM service

ネットで検索したところ、smb.confの[global] 設定セクションに次の行を追加するとよいとありました。
fam change notify = no
追加したところ、確かにWindowsXPからSamba領域へのアクセスに問題が発生しなくなりました。


ちなみに"fam change notify"はSamba 3.0.25で廃止されたようです。
Samba 3.0.25 リリースノート

FAMっていうのは「FAM (File Alteration Monitor)」の事だと思うのですが、よく分かりません。

2007/08/07

ZFSでハードディスクをフルに使えるようにする

2007/12/22 認識しなくなってしまったので削除
VMwareにインストールしたNexenta(OpenSolaris)で250GBのハードディスクを何故か半分くらいしか認識していなかったのですが、とりあえずなんとか250GB認識するようにはなりました。

かなり怪しいですけど。


問題が発生しているのは250GBのハードディスクではなく、Windows NTFSで使用している150GBくらいのハードディスクをVMwareのNexentaで認識させたときも同じで、どちらも137.44GBしか認識しておりませんでした。
137.44GBをキーワードに検索すると、似たような現象が見つかります。


調べながら色々やってみました。
250GBのハードディスクを使えるようにすることが出来たのは、多分下記の手順が効いているのだと思います。
もしかしたら下記の手段が本当に効果あった訳では無いのかもしれません

忘れないように一応書いておきますが、
下記の手順が本当に正しいのかどうか分かりませんし、今後重大な問題が発生するかもしれません

真似しないでください

○ ディスクのラベルを削除
こちらを参考にディスクのラベルを削除しました。

root@julie:~# dd if=/dev/zero of=/dev/rdsk/c1d1 bs=1b count=16


○ format コマンドでスライスを作成
formatコマンド中でcylinder数(30282)の指定を行います。
多分cylinder数の指定がキモだと思います。

cylinder数が30282というのは、このハードディスクをLinux(Debian 4.0)につなげてfdiskを実行した際に表示される内容から判断しました。

以下のログで行っている作業は、認識している領域全て(137.44GBくらい)のパーティションをfdiskで作成してから行いました。
確かpartition(pa)サブコマンド時に"fdiskを最初に実行しろ"というようなエラーが出たと記憶しています。
以下の作業の途中でfdiskを行っても良かったのかもしれませんが、それだとcylinder数(30282)の指定の後でfdiskを行うことになるため、気が進まなかったので以下のログの作業の前に行いました。

気が進まなかった理由は、"なんとなく"です。

root@julie:~# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
0. c0d0
/pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
1. c0d1
/pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
2. c1d1
/pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
Specify disk (enter its number): 2



AVAILABLE DRIVE TYPES:
0. DEFAULT
1. other
Specify disk type (enter its number): 1
Enter number of data cylinders: 30282
Enter number of alternate cylinders[2]:
Enter number of physical cylinders[30284]:
Enter number of heads: 256
Enter number of data sectors/track: 63
Enter rpm of drive[3600]: 7200
Enter format time[default]:
Enter cylinder skew[default]:
Enter track skew[default]:
Enter tracks per zone[default]:
Enter alternate tracks[default]:
Enter alternate sectors[default]:
Enter cache control[default]:
Enter prefetch threshold[default]:
Enter minimum prefetch[default]:
Enter maximum prefetch[default]:
Enter disk type name (remember quotes): 250GB
selecting c1d1
No current partition list
No defect list found
[disk formatted, no defect list found]


FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
fdisk - run the fdisk program
repair - repair a defective sector
show - translate a disk address
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
volname - set 8-character volume name
! - execute , then return
quit
format> type


AVAILABLE DRIVE TYPES:
0. DEFAULT
1. 250GB
2. other
Specify disk type (enter its number)[1]:
selecting c1d1
Controller working list found
[disk formatted, defect list found]
format> pa


PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition> p
Current partition table (original):
Total disk cylinders available: 16640 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 3 - 19 133.88MB (17/0/0) 274176
1 swap wu 20 - 36 133.88MB (17/0/0) 274176
2 backup wu 0 - 30283 232.90GB (30284/0/0) 488420352
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 usr wm 37 - 30281 232.60GB (30245/0/0) 487791360
7 unassigned wm 0 0 (0/0/0) 0
8 boot wu 0 - 0 7.88MB (1/0/0) 16128
9 alternates wm 1 - 2 15.75MB (2/0/0) 32256

format> label
Ready to label disk, continue? yes

スライス6に232.60GB割り当てられたようなので、zpoolではディスク全体ではなくスライス6をZFS領域に割り当てます。
root@julie:~# zpool create -f share c1d1s6


上記の手順を踏み、さらにzfsコマンドで追加した状態でdfコマンドを実行した結果は下記のようになりました。
root@julie:~# df -h
Filesystem size used avail capacity Mounted on

〜 省略 〜

share 228G 21K 228G 1% /share
share/mail 228G 186M 228G 1% /share/mail
share/share 228G 21K 228G 1% /share/share
share/share/important
228G 18K 228G 1% /share/share/important
share/share/pub 228G 287M 228G 1% /share/share/pub


iostatコマンドでは相変わらず137.44GBしか認識されていません。
かなり危険な香りがします。

root@julie:~# iostat -En
c0d0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: VMware Virtual Revision: Serial No: 000000000000000 Size: 10.74GB <10737377280>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
c0d1 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: VMware Virtual Revision: Serial No: 010000000000000 Size: 137.44GB <137437655040>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
c1d1 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Model: VMware Virtual Revision: Serial No: 110000000000000 Size: 137.44GB <137437655040>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0
c1t0d0 Soft Errors: 2 Hard Errors: 23 Transport Errors: 0
Vendor: Generic Product: DVD-ROM Revision: 1.0 Serial No:
Size: 0.00GB <0>
Media Error: 0 Device Not Ready: 23 No Device: 0 Recoverable: 0
Illegal Request: 2 Predictive Failure Analysis: 0

2007/08/05

ZFSを使いたい

ZFSが使いたくてNexentaOS Alpha 7をVMwareにインストールしてみました。
$ uname -a
SunOS julie 5.11 NexentaOS_20070402 i86pc i386 i86pc Solaris


NexentaOSはDebianベースのシステムで、OpenSolarisのカーネルとGNUのツールを使用しているらしいです。

ZFSで何がしたいという訳ではないのですが、ちょっと興味があったので使ってみることにしました。

そういえば昔、JFSやXFSのLinux kernel 2.2用のパッチが出た時も使ってみたなぁ。
本当に使ってみただけでしたが。


今回やったのは、

・ZFSストレージプールの作成
・ZFS ファイルシステムの作成

と、あとはZFSファイルシステムを作った後で諸々の事情でNexentaOSを再インストールしたので、

・既存のZFSファイルシステムのインポート

をしてみました。


○ 初めてZFS領域作成
root@julie:~# zpool create share c0d1
root@julie:~# df -h
Filesystem size used avail capacity Mounted on
/dev/dsk/c0d0s0 1.9G 1.6G 236M 88% /
/devices 0K 0K 0K 0% /devices
/dev 0K 0K 0K 0% /dev
ctfs 0K 0K 0K 0% /system/contract
proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
swap 694M 584K 694M 1% /etc/svc/volatile
objfs 0K 0K 0K 0% /system/object
/usr/lib/libc/libc_hwcap1.so.1
1.9G 1.6G 236M 88% /lib/libc.so.1
fd 0K 0K 0K 0% /dev/fd
/dev/dsk/c0d0s3 958M 75M 825M 9% /var
swap 694M 0K 694M 0% /tmp
swap 694M 160K 694M 1% /var/run
/dev/dsk/c0d0s4 4.5G 4.6M 4.4G 1% /opt
home 2.0G 1.2M 2.0G 1% /export/home
share 125G 18K 125G 1% /share

"zpool create"の実行だけで
・ストレージプールの作成
・プールと同じ名前のファイルシステムとマウントポイントを作成
・マウント
を自動で行うようです。
便利なような怖いような。

c0d1というのはVMwareの仮想ディスクではなく本物のハードディスクです。
shareはそのハードディスク全体にして、その下にユーザーのホームディレクトリやSamba/NFS共有ディレクトリを作ろうかと考えました。

で、Samba共有用のディレクトリshare/shareを作成しました。
root@julie:~# zfs create  share/share


share/shareをNFS共有ディレクトリにします。
root@julie:~# zfs set sharenfs=rw share/share


これだけで、NFSクライアントからshare/shareを共有でき、さらにNexenta再起動後も有効になってました。


○ 既存のZFS領域をインポート
上記の手順で一度ZFS領域を作成したのですが、ここでNexentaを再インストールしました。
諸々の事情です。

zpool importを使ってできたのですが、"-f"をつけないといけないみたいです。
root@julie:~# zpool import share
cannot import 'share': pool may be in use from other system
use '-f' to import anyway
root@julie:~# zpool import -f share


----
NexentaOS Alpha 7を使っての問題点
ひとつ大きな問題が発生しています。

ディスク「c0d1」は250GBくらいあるハードディスクなのですが、半分しか認識していません。
       Total disk size is 16709 cylinders
Cylinder size is 16065 (512 byte) blocks

Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 Linux native 0 30400 30401 100


ちなみに同じハードディスクをVMwareのDebianで認識させたところ全領域認識できたみたいです。
なお、最初は/dev/hdb2がありませんでした。
Debianで/dev/hdb2を作成し、typeに"ee"を指定しました。
Disk /dev/hdb: 250.0 GB, 250056737280 bytes
256 heads, 63 sectors/track, 30282 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 16644 134216459+ ee EFI GPT
/dev/hdb2 16644 30282 109977588 ee EFI GPT


上記のようにDebianで/dev/hdb2を作成した後Nexentaで参照すると、次のようになっていました。
       Total disk size is 16709 cylinders
Cylinder size is 16065 (512 byte) blocks

Cylinders
Partition Status Type Start End Length %
========= ====== ============ ===== === ====== ===
1 EFI 0 16709 16710 100
2 EFI 16709 30400 13692 82


100% + 82%で182%ですか?
限界を越えたスーパーサイヤ人みたいです。

(2007/8/8 追記)
かなり怪しい感じですが、一応250GB位認識されるようになりました。
ZFSでハードディスクをフルに使えるようにする

2007/07/28

UTF-8によるscreen文字化け

家内ネットワークのファイル/IMAPサーバとして使いはじめたDebian GNU/Linux 4.0の日本語環境はデフォルトがUTF-8みたいです。
xxx@julie:~$ echo $LANG
ja_JP.UTF-8

ついにうちにもUTF-8の環境が出来てしまったみたいです。


で、EUC-JPのVine Linux 4.1からtelnetでDebian GNU/Linux 4.0にアクセスした際に文字化けする現象が発生していました。
(後述しますが、私の設定の問題です。)


次のような文字化けの現象が発生していました。

・KDEのKonsole(以下Konsole)の「設定」ー「エンコーディング」をutf8にしても文字化けが解消されない
・GNU Screen(以下screen)を使用していない状態でKDEのKonsoleの「設定」ー「エンコーディング」をutf8に変更すると文字化けしない


screenを使用せずにKonsoleをUTF-8の設定にすれば文字化けしないので、どうやらscreenの設定が悪いようです。
そういえば、.screenrcではろくに設定をしていませんでした。
escape ^L^L
hardstatus alwayslastline "screen |%c %m/%d | %w"

ネットで調べると.screenrcの設定例は色々見つかるのですが、自分の場合は少しずつ設定を追加していこうかと思っています。


screenのマニュアルを調べたところ、次のような対策があるみたいです。
もちろん他にもあるとは思いますが、私が簡単に見つけられた方法の中で手軽だと思ったのが下記の2つでした。
Konsoleのエンコーディングはutf8に変更することが前提です。

(1) "-U"オプションをつけて起動する
screenのマニュアルには次のようにあります。
-U   UTF-8 モードで screen を動作させる。
このオプションは、ユーザの端末が UTF-8 エンコードされた
文字を理解し、また送信してくることをscreenに伝える。
また新規ウィンドウのデフォルトエンコーディングが
`utf8' になる。


(2) screenのコマンドモードでutf8コマンドを使用する
utf8 [on|off [on|off]]
現在のウィンドウが用いるエンコーディングを変更する。
utf8 を on にすると、ウィンドウに送られる文字列は
UTF-8 エンコードされる (逆も同じ)。 パラメータを
省略すると状態をトグルする。二つ目のパラメータを
与えると、ディスプレイのエンコーディングも同時に
変更される (これは screen の "-U"オプションで
指定するほうが良いが)。 "defutf8" も参照のこと。
これは新規に生成されるウィンドウのデフォルトを変更する。


うちの場合、デフォルトはVine Linux 4.1のEUC-JPで使用しているため、必要な時に(2)の方法を用いる(screenのコマンドモードに入り、"utf8 on on"というコマンドを使用してUTF-8に変更する)方がいい気がします。
多分。

Sambaの設定でつまずいた

Debian GNU/Linux 4.0を導入して設定をいじっていますが、Sambaの設定でつまずいてしまいました。

Sambaの設定はいつもどこかでつまずいている気がします。
情けないです。

インストールしてあるSambaのバージョンです。
$ dpkg -l|grep samba
ii samba 3.0.24-6etch4 a LanManager-like file and printer server fo
ii samba-common 3.0.24-6etch4 Samba common files used by
both the server a
ii samba-doc 3.0.24-6etch4 Samba documentation



Sambaパスワードの設定は次のように行いました。
# smbpasswd -a xxx
New SMB password:
Retype new SMB password:
Added user xxx.


(1) SWATにアクセスできない
これは/etc/hosts.denyと/etc/hosts.allowで許可されていないことが原因でした。

/etc/hosts.allowに次の行を追加したところ、動作するようになりました。
swat : xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy



(2) Samba公開フォルダにアクセスできない

SWATでいくら設定を変更してもクライアントから公開フォルダにアクセスできない現象が発生していました。

syslogを見ると次のようなエラーが出力されてsmbdが起動していませんでした。
Jul 28 09:01:55 localhost smbd[4309]:
[2007/07/28 09:01:55, 0] smbd/server.c:main(960)
Jul 28 09:01:55 localhost smbd[4309]:
ERROR: failed to setup guest info.


smb.confを見ると[global]セクションに次のような行がありました。
  guest account =


SWATで「guest account」の「項目のデフォルト値」を押すと「guest accout」には「nobody」が設定され、この状態でsmbdを再起動したところエラーにはならずにsmbdが起動し、クライアントからSambaの公開フォルダを参照することが出来ました。


現在のsmb.confは次のようになっています。
# Samba config file created using SWAT
# from xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)
# Date: 2007/07/28 09:05:53

[global]
dos charset = CP932
# unix charset = UTF-8
unix charset = eucJP-ms
workgroup = XXXXX
server string = Julie Samba [Debian GNU/Linux]
update encrypted = Yes
ldap ssl = no

[share]
comment =
path = /mnt/share
read only = No
hosts allow = xxx.xxx.xxx.0
veto files = /mnt/share/yyyy/

(2007/7/28 追記)
"dos charset = CP932", "unix charset = eucJP-ms" を追加。
"print command =", "lpq command =", "lprm command =" を削除。


日本語表示のため、「dos charset」と「unix charset」を追加しました。
unix charsetをeucJP-msにしたのは、現状ではSamba公開フォルダ内の日本語のフォルダ名はEUC-JPにしてあるからです。
(「日本語文字化けをどうにかする (その4)」参照)

2007/07/25

仮想PC上のWindows 98でゲームをしたい (4)

仮想PC上のWindows 98でゲームをしたい (3)」の続きです。

前回は次のように書きました。
ただ、それでも出ていない音がある気がしますが、今のところ困ってもいないのでちゃんと確認していません。

ちょっと確認してみたところ、ゲーム中で最初出ていたCD音源が途中から出なくなる現象が発生しているようです。

ゲームプレイ中はよくわかりませんでしたが、ゲームCDのCD音源をWindows付属のCDプレイヤーで聴いて確認することが出来ました。

トラックの移動が発生した後に音が出なくなるような気がします。


そこでいくつか設定を変更しながら試してみたのですが、「Virtual Machie Settings」のCD-ROM設定で「Legacy Emulation」のチェックを外すと上記の音が出なくなる問題が発生しなくなる気がします。

2007/07/22

IMAPメールが受信できなかった

ここ数日間IMAPサーバ(JULIE)からIMAPのメールを取得することが出来ていなかったみたいです。

以前書いたとおりGMailからでもメールを読めるようにしており、IMAPのメールは読んでいなかったのであまり気にしていませんでしたが。


今日調べてみて思い出したのですが、NFSのセキュリティのことを調べたときに/etc/hosts.allowの設定を変更しており、それが原因だったみたいです。

以前は/etc/hosts.allowには、以下のように危ない設定をしていました。
ALL : xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy: ALLOW

どうせ私しか使わないネットワークだしこれでいいだろうと思っていたのですが、やはり気持ち悪いので、許可するサービスを列挙するように変更しました。

それが原因でクライアントからimapdにアクセスできなくなっていたみたいです。


/etc/hosts.allowに以下の記述を追加したところ、IMAPのメールを読めるようになりました。
imapd: xxx.xxx.xxx.xxx/yyy.yyy.yyy.yyy


迂闊でした。