「ほっ」と。キャンペーン

cappuccinoのコンピタブログ

cappmac.exblog.jp
ブログトップ

カテゴリ:設定覚え書き( 62 )

myqnapcloudではまった

最近、巷を騒がせているbashの脆弱性の問題もあってか、QNAPのクラウドサービスがセキュリティを強化していた。これによってVPNセッションがはれなくなっていて悩んでいた。

解決策は結構手探り感があったが、わかれば簡単だった。

・QTSで入れられるCloudLinkが必要になった。
・myqnapcloudのDDNSサービスがにロックがかかっていた。

上記の2つをクリアしたら、ちゃんと使えるようになっていた。

もう少し、スクリーンショットを使った説明サイトがあってもいいんじゃないですかね。
[PR]
by cappuccino_mac | 2014-10-10 23:36 | 設定覚え書き | Comments(0)

apcupsdを入れた

実家メンテ計画も最終段階

雷の頻発する昨今なので、サージコンセント&無停電電源装置を導入しました。

Solaris 10にUPSを入れるケースはあまり無いのでメモとして記録。

◇ apcupsdとは
APC社の販売するUPSと連携するためのソフト。
UPSが停電を検知するとホストPCに送信する信号を受信し、停止処理を行なう。
UPSにより供給する電力ではPCは数分しか起動しないため、停止処理をしないと結局ただの電源断と同じになってしまう。このソフトがあれば、UPSからの電源供給が断たれる前に安全に電源を落としてくれる。

注意)gmakeを入れる必要あり!
■ gmakeのインストール
pkg install SUNWgmake
これだけでOK

■ apcupsdのインストール
めんどくさいので丸ごと記録

まずは、コンフィグ。

cappmac@opensolaris:‾/Desktop/src/apcupsd-3.14.9# ./configure --enable-usb
checking for true... /usr/bin/true
checking for false... /usr/bin/false
checking build system type... i386-pc-solaris2.11
checking host system type... i386-pc-solaris2.11
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking for gawk... gawk
checking for library containing strerror... none required
checking for shutdown... /usr/sbin/shutdown
checking for mail... /usr/bin/mail
checking for wall... /usr/sbin/wall
checking for sh... /usr/bin/sh
checking for GNU make... gmake
checking for ranlib... /usr/bin/ranlib
checking for rm... /usr/bin/rm
checking for cp... /usr/bin/cp
checking for echo... /usr/bin/echo
checking for ln... /usr/bin/ln
checking for sed... /usr/bin/sed
checking for ar... /usr/bin/ar
checking for mv... /usr/bin/mv
checking for rst2html.py... no
checking for rst2pdf... no
checking for abort... yes
checking for fork... yes
checking for calloc... yes
checking for getpid... yes
checking for ioctl... yes
checking for kill... yes
checking for rewind... yes
checking for select... yes
checking for setsid... yes
checking for signal... yes
checking for strerror... yes
checking for strncmp... yes
checking for strncpy... yes
checking for tcgetattr... yes
checking for vfprintf... yes
checking for setpgrp... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for library containing nanosleep... none required
checking for syslog... yes
checking for strftime... yes
checking whether setpgrp takes no argument... yes
checking for library containing socket... -lxnet
checking for library containing gethostname... none required
checking for library containing gethostbyname... none required
checking for library containing gethostbyname_r... -lnsl
checking for socklen_t... yes
checking for library containing inet_addr... none required
checking for strchr... yes
using libc's strchr
checking for strstr... yes
checking for strcasecmp... yes
checking for memmove... yes
checking for getopt_long... yes
checking for inet_pton... yes
checking for localtime_r... yes
checking for egrep... egrep
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for sys/types.h... (cached) yes
checking syslog.h usability... yes
checking syslog.h presence... yes
checking for syslog.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking arpa/nameser.h usability... yes
checking arpa/nameser.h presence... yes
checking for arpa/nameser.h... yes
checking whether stat file-mode macros are broken... no
checking whether time.h and sys/time.h may both be included... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... no
checking for tzname... yes
checking for uid_t in sys/types.h... yes
checking type of array argument to getgroups... gid_t
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking return type of signal handlers... void
checking for size_t... yes
checking for uid_t in sys/types.h... (cached) yes
checking for socklen_t... yes
checking for int32_t... yes
checking for X... no
checking whether #! works in shell scripts... yes
Will not install HAL policy file
checking for libusb-config... /usr/bin/libusb-config
Using generic libusb USB driver.
checking for pkg-config... no
checking how many arguments gethostbyname_r() takes... five
checking if libsupc++ is required... yes
checking if GCC supports -fno-exceptions... yes
checking if GCC supports -fno-rtti... yes
checking for wait... yes
checking for waitpid... yes
checking for wait3... yes
checking for union wait... no
Disabling cgi support...
gcc private include directory found.
configure: creating ./config.status
config.status: creating autoconf/variables.mak
config.status: creating platforms/apccontrol
config.status: creating platforms/etc/changeme
config.status: creating platforms/etc/commfailure
config.status: creating platforms/etc/commok
config.status: creating platforms/etc/offbattery
config.status: creating platforms/etc/onbattery
config.status: creating platforms/etc/apcupsd.conf
config.status: creating examples/safe.apccontrol
config.status: creating src/win32/Makefile
config.status: creating platforms/sun/apcupsd
config.status: creating platforms/sun/rc0.solaris
config.status: creating platforms/sun/apccontrol
config.status: creating src/drivers/usb/generic/libusb.h
config.status: creating include/config.h


Configuration on Tue Aug 16 00:08:10 JST 2011:

Host: i386-pc-solaris2.11 -- sun Solaris
Apcupsd version: 3.14.9 (22 July 2011)
Source code location: .
Install binaries: /etc/opt/apcupsd/sbin
Install config files: /etc/opt/apcupsd
Install man files: /usr/share/man
Nologin file in: /etc
PID directory: /var/run
LOG dir (events, status) /etc/opt/apcupsd
LOCK dir (for serial port) /var/spool/locks
Power Fail dir /etc
Compiler: g++ 3.4.3
Compiler flags: -I/usr/local/include -I/usr/sfw/include -g -O2 -fno-exceptions -fno-rtti -Wall
Linker: gcc
Linker flags: -L/usr/local/lib64 -L/usr/local/lib -L/usr/sfw/lib
Host and version: sun Solaris
Shutdown Program: /usr/sbin/shutdown
Port/Device: /dev/ttya
Network Info Port (CGI): 3551
UPSTYPE apcsmart
UPSCABLE smart

drivers (no-* are disabled): apcsmart dumb net generic-usb snmp no-net-snmp pcnet no-test

enable-nis: yes
with-nisip: 0.0.0.0
enable-cgi: no
with-cgi-bin: /etc/apcupsd
with-libwrap:
enable-pthreads: yes
enable-dist-install: yes
enable-gapcmon: no
enable-apcagent: no

Configuration complete: Run 'gmake' to build apcuspd.


次にmake
gmakeを使うので注意。

cappmac@opensolaris:‾/Desktop/src/apcupsd-3.14.9# gmake
src
src/lib
CXX src/lib/apcconfig.c
CXX src/lib/apcerror.c
CXX src/lib/apcevents.c
CXX src/lib/apcexec.c
CXX src/lib/apcfile.c
CXX src/lib/apclibnis.c
CXX src/lib/apclock.c
CXX src/lib/apclog.c
CXX src/lib/apcsignal.c
CXX src/lib/apcstatus.c
CXX src/lib/asys.c
CXX src/lib/newups.c
CXX src/lib/md5.c
CXX src/lib/statmgr.cpp
statmgr.cpp: In member function `bool StatMgr::Update()':
statmgr.cpp:58: warning: 'len' might be used uninitialized in this function
CXX src/lib/gethostname.c
CXX src/lib/amutex.cpp
CXX src/lib/astring.cpp
CXX src/lib/autil.cpp
CXX src/lib/atimer.cpp
CXX src/lib/athread.cpp
CXX src/lib/libsupc++fix.cpp
AR src/lib/libapc.a
src/drivers
src/drivers/apcsmart
CXX src/drivers/apcsmart/smart.c
CXX src/drivers/apcsmart/smarteeprom.c
CXX src/drivers/apcsmart/smartoper.c
CXX src/drivers/apcsmart/smartsetup.c
CXX src/drivers/apcsmart/smartsetup2.c
src/drivers/dumb
CXX src/drivers/dumb/dumboper.c
CXX src/drivers/dumb/dumbsetup.c
src/drivers/net
CXX src/drivers/net/net.c
src/drivers/pcnet
CXX src/drivers/pcnet/pcnet.c
src/drivers/usb
src/drivers/usb/generic
CXX src/drivers/usb/generic/generic-usb.c
In file included from libusb.h:9,
from generic-usb.c:28:
/usr/include/usb.h:60: warning: ignoring #pragma ident
CXX src/drivers/usb/generic/hidutils.c
In file included from libusb.h:9,
from hidutils.c:28:
/usr/include/usb.h:60: warning: ignoring #pragma ident
CXX src/drivers/usb/usb.c
src/drivers/snmplite
CXX src/drivers/snmplite/apc-mib.cpp
CXX src/drivers/snmplite/asn.cpp
CXX src/drivers/snmplite/mge-mib.cpp
CXX src/drivers/snmplite/mibs.cpp
CXX src/drivers/snmplite/rfc1628-mib.cpp
CXX src/drivers/snmplite/snmp.cpp
CXX src/drivers/snmplite/snmplite.cpp
CXX src/drivers/drivers.c
AR src/drivers/libdrivers.a
src/libusbhid
CXX src/libusbhid/parse.c
CXX src/libusbhid/data.c
CXX src/libusbhid/descr.c
AR src/libusbhid/libusbhid.a
CXX src/options.c
CXX src/device.c
CXX src/reports.c
CXX src/action.c
CXX src/apcupsd.c
CXX src/apcnis.c
LD src/apcupsd
CXX src/apcaccess.c
LD src/apcaccess
CXX src/apctest.c
LD src/apctest
CXX src/smtp.c
LD src/smtp
platforms
platforms/etc
platforms/sun
doc
MAN apcupsd.8 -> apcupsd.man.txt
MAN apcaccess.8 -> apcaccess.man.txt
MAN apctest.8 -> apctest.man.txt
MAN apccontrol.8 -> apccontrol.man.txt
MAN apcupsd.conf.5 -> apcupsd.conf.man.txt


最後にmake install
これもgmakeを使うので注意。

cappmac@opensolaris:‾/Desktop/src/apcupsd-3.14.9# gmake install
src
src/lib
src/drivers
src/drivers/apcsmart
src/drivers/dumb
src/drivers/net
src/drivers/pcnet
src/drivers/usb
src/drivers/usb/generic
src/drivers/snmplite
src/libusbhid
MKDIR /etc/opt/apcupsd/sbin
COPY apcupsd => /etc/opt/apcupsd/sbin/apcupsd
COPY apctest => /etc/opt/apcupsd/sbin/apctest
COPY apcaccess => /etc/opt/apcupsd/sbin/apcaccess
COPY smtp => /etc/opt/apcupsd/sbin/smtp
platforms
platforms/etc
COPY apcupsd.conf => /etc/opt/apcupsd/apcupsd.conf
COPY changeme => /etc/opt/apcupsd/changeme
COPY commfailure => /etc/opt/apcupsd/commfailure
COPY commok => /etc/opt/apcupsd/commok
COPY offbattery => /etc/opt/apcupsd/offbattery
COPY onbattery => /etc/opt/apcupsd/onbattery
platforms/sun
------------------------------------------------------------
Sun distribution installation
------------------------------------------------------------
COPY apcupsd => /etc/init.d/apcupsd
LN //etc/rc0.d/K21apcupsd -> ../init.d/apcupsd
LN //etc/rc1.d/S89apcupsd -> ../init.d/apcupsd
LN //etc/rc2.d/S89apcupsd -> ../init.d/apcupsd
=================================================
apcupsd script installation for Solaris Solaris complete.
You should now edit /etc/opt/apcupsd/apcupsd.conf to correspond
to your setup then start the apcupsd daemon with:

/etc/init.d/apcupsd start

Thereafter when you reboot, it will be stopped and started
automatically.
=================================================
Configuring ugen driver to match APC UPSes...

Driver (ugen) is already installed.

NOTE:
"(usbif51d,class3) already in use" and
"Driver (ugen) is already installed"
errors may be safely ignored.

=================================================
Driver configured. You must PERFORM A RECONFIGURE
BOOT "reboot -- -r" before running Apcupsd.
=================================================
COPY apccontrol => /etc/opt/apcupsd/apccontrol
doc
COPY apcupsd.8 => /usr/share/man/man8/apcupsd.8
COPY apcaccess.8 => /usr/share/man/man8/apcaccess.8
COPY apctest.8 => /usr/share/man/man8/apctest.8
COPY apccontrol.8 => /usr/share/man/man8/apccontrol.8
COPY apcupsd.conf.5 => /usr/share/man/man5/apcupsd.conf.5


使い方は他のOSと同様なので割愛。
[PR]
by cappuccino_mac | 2011-08-16 23:21 | 設定覚え書き | Comments(0)

google docsのフォーム公開設定について

google docsのフォームは公開設定にすることで、例えばgoogle appsのサイトなどに埋め込んだりすることで簡易ウェブフォーム代わりにできるので便利ですが、個人的に利用した際ハマったところがあったので覚え書き。

c0064553_23263441.jpg


3つあるチェックボックスのうち、「このフォームを表示するには・・・」と書いてある項目はデフォルトでオンですが、これが有効になっていると強制的にgoogleアカウントのログインを求められます。
これでは非常に都合が悪いのでチェックボックスを外しましょう。
こうすれば、サイトに埋め込んだりして簡易Webフォームが誰からでも書き込めるようになります。
[PR]
by cappuccino_mac | 2011-01-01 23:30 | 設定覚え書き | Comments(0)

なにかと便利な Solaris

最近、Solarisを結構気に入って使っています。
先日、自宅サーバのOSもUbuntuからSolarisに切り替えてしまいました。
メモも兼ねて、Solaris布教活動をしたいと思います。

実のところSolarisをいじるのはこれまでも何度かありました。会社でもいじっていますし。
Solarisがイケルと思ったのも会社でOpenSolaris 2008.11を入れたあたりから。それまではなんだかGUIのCDEがバタ臭いコマンドも使いづらく、ドライバも無いOSというイメージだったのですが、最近ではかなりLinuxの空気を取り入れて、これなら使っても良いかも?なんて思ってしまうほど改善されてきています。

ちなみに気に入った点はこんなところ
(Solarisの独断と偏見に満ちた利点)
1.サービスの導入・管理のしやすさ
2.安定性(性能面、GUI)
3.Windows/Mac OS Xとの親和性

1.について
Ubuntuとかも見た目には初心者に優しいんですが、インストール容量の割に意外と最初から入ってるサービスが浅いというか・・・あまり実用性が高くないんですよね。そのためサービス導入でつまづきやすいです。
その点、SSHやVNCが最初から入ってるっていうのはありがたいです。Sambaはさすがに最初から入っていたりしませんが、yumやaptに似たシステムで簡単にインストールできるので便利です。
パッケージ管理はLinuxやFreeBSDに劣っていた点を、見劣りしない程度までリカバリした感がありますが、サービス管理はLinuxのディストリやFreeBSDといった他のUNIX互換OSにない強みだと思います。
システム→システム管理→サービスの管理を実行すればなにがサービスとして稼働しているかが一目瞭然だし、チェックを入れて設定ファイルを少しいじればサービスを利用可能になる気軽さは非常にありがたい。まさにMac OS X感覚です。Fedoraとかにもserviceとかchkconfig等サービス管理のためのコマンドがありますが、GUIの被せ方が下手に思えます。

c0064553_20521748.jpg
サービスの管理

2.について
限られたCPU性能、限られたメモリ容量においてLinuxより動作が軽いように感じます。ベンチをとった訳じゃないから不用意なことはいえませんが、複数のサービスが動作し、大容量のアーカイブの展開しているような時にもGUIのレスポンスがキビキビとしている辺りはLinuxよりデキがいいのではと感じてしまう。
2008.11のころはGUIがしょっちゅう固まったりして、やはり後付けのおまけみたいなものかと思っていましたが、見違えるようです。
そもそも、先日Solaris移行に踏み切るきっかけはGUIの安定性にありました。Ubuntu 9.10(Karmic Koala)にてちょっとした設定変更をするにしても、次回起動時にログインできなくなる症状が現れました。Fail Safe Gnomeログインを選択すればログインはできますが、ちょっとバギー過ぎるのではというのが私の印象です。

3.について
この前のエントリで取り上げたように、Mac OS XのSambaはいろいろクセが強いようで、トラブルシューティングするだけでもかなりの労力をとられる。
Linux、FreeBSDがダメなら、いっそSolarisでも試してみようかとSamba接続をMacから試みたところ、問題1、2ともに解決してしまいました。
さらに今のOpenSolarisには使える目玉機能としてZFSとiSCSIがありますが、こちらもMac OS XのTimeMachineのバックアップ先として活用できれば利便性が上がります。正直ZFSは使い始めた頃勝手が分からず困ったのですが、徐々に使い方に慣れてきました。Sambaが簡単に導入できるということでもちろんWindowsとの親和性も高いです。

c0064553_20562881.jpg
シンボリックリンク先を参照している様子

残念なところ
良いところがあれば悪いところがあるもの。Solarisの欠点と思われるものを列挙してみました。
1.ext2/ext3/ext4/NTFSのサポートが無い。
2.VMwareが動かない。
3.Solaris独特のコマンドに慣れる必要がある。

1.について
広く使われているファイルシステムのサポートが無いのは痛いです。
草の根では、これらファイルシステムのサポートもされているようです。
試しましたが、動きませんでした。

2.について
VMwareの代わりにVirtualBoxがあるので何とかなりはしますが、VMwareのノウハウが活かせないので残念感が...

3.について
Solaris独自コマンドも多いですが、tarのように同じコマンドなのに違うオプション...みたいなのもあります。tarに限ってはgtarもあるので問題ないのですが。

設定メモ
[SSH]
最初から入っており、機能がオンになっている。特に何も考えることも無くログインできる。

[VNC]
最初から入っている。機能はオンになっていない。Vinoのようなログインしないと機能しないVNCではなく、inetdのサービスとしてXnvcを利用できる。
VNCは「サービスの管理」からxvnc-inetdを有効にする。また、/etc/X11/gdm/custom.confを有効にして、以下の内容を編集する。

c0064553_2058066.jpg
Xvnc有効化

[security]
DisallowTCP = false
AllowRoot = true
AllowRemoteRoot = true
[xdmcp]
Enable = true

これにより、VNCはサービスとして動作し、VNCクライアントからの接続時にログイン画面を出すようになる。
通常のログインと同じようにユーザ名・パスワードを入力すればデスクトップが表示できる。
#なお、xdmcpはMac OS X標準のVNCクライアント機能「画面共有」では利用できないようだ。
#私の場合はMacPortsで入れたvncviewerを使ってxdmcpによるログインを行った。

[Samba]
最初から入ってはいない。パッケージマネージャーを使ってSambaをインストールし、機能をオンにする必要がある。
インストール方法は「パッケージマネージャ」からsmbで検索し、SUNWsmbaをインストールする。この際、SWATも同時にインストールされる。

c0064553_20584787.jpg
Sambaインストール

「サービスの管理」でwinbinddとsmbdを有効にする。SWATもオンにしたい場合はswatにもチェックを入れる。
smb.confが無いので、/etc/sfw/smb.conf-exampleをリネームコピーして作成。ホームディレクトリ共有だけならばこれだけでOK。
smbpasswdの実行を忘れてハマったw。案外忘れやすいので注意。これを忘れるとログインができない。
ちなみにsmbpasswdは

% smbpasswd -a <ユーザ名>
で設定したいパスワードを2回打てばOK。

なお、SWATの設定にはroot権限が必要。
root権限はインストール直後の状態では有効ではない。sudoはないのでsuでrootログインして以下のコマンド。
% rolemod -K type=normal root

[ZFS]
デフォルトのフォーマットがZFS。意識せずとも使用していることがインストールしてから分かる。もっとも分かるためにはdf、zpool、zfsの各コマンドの知識が最低限必要。

c0064553_2183728.jpg
dfでzfsであることを確認している様子。

サーバをやる以上、バックアップ and RAIDは意識したいところ。ZFSは簡単にそれらを実現できる。
バックアップ
「タイムスライダ」を利用する。定期的にスナップショットを記録するため、最悪でも1日前の状態に戻すことができる。
RAID
RAID1相当を実現するために、ミラー構成にする。起動ディスクまるごとミラーリングのためには同じ容量のHDDを用意し、以下のコマンドを実行する。
・パーティションテーブルのSolaris化
ZFSにするために必須。
formatでディスクを指定。
% format
fdiskでパーティション情報を変更。
> fdisk
まずは既存のパーティション情報の削除
3→パーティション消去
1→消去したいパーティション番号選択
y→OK
次にSOLARIS2パーティション作成
1→パーティション作成
1→SOLARIS2パーティションを作成
100→作成パーティションのディスク占有率
y→OK
exitで実行される。

prtvtocでTOC情報を同期
% prtvtoc /dev/rdsk/c8d0s0 | fmthard -s - /dev/rdsk/c9d0s0
fmthard: New volume table of contents now in place.
#同一容量でないとうまくいかないっぽい。
既存HDDへのアタッチ
% zpool attach -f rpool /dev/dsk/c8d0s0 /dev/dsk/c9d0s0
-fオプションを抜かすと
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c9d0s0 overlaps with /dev/dsk/c9d0s2

といわれてうまくいかない。
成功すると以下のメッセージが出る。
Please be sure to invoke installgrub(1M) to make '/dev/dsk/c9d0s0' bootable.
いわれた通りにgrubをインストールする。grubをインストールしておくことでオリジナルのディスクが死んでも、ミラーHDDから起動できる。
% installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c9d0s0
dskで実行すると、device /dev/dsk/c9d0s2 is not a char special deviceといわれてうまく実行されなかった。
成功すると
stage1 written to partition 0 sector 0 (abs 16065)
stage2 written to partition 0, 271 sectors starting at 50 (abs 16115)

というメッセージが出る。
これで、zpool statusを実行すると、ミラー構成になっていることが分かる。
% zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h4m, 6.47% done, 1h4m to go
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c8d0s0 ONLINE 0 0 0
c9d0s0 ONLINE 0 0 0 15.5G resilvered

errors: No known data errors

ここに表示されているresilveredという情報がミラーリングされたデータ量を示している。15.5GB分が6.47%の進捗であと1時間4分でミラーが完了するということを示している。
[PR]
by cappuccino_mac | 2010-01-02 07:39 | 設定覚え書き | Comments(2)

vmware-vdiskmanager.exeをいじってみる

ひさびさに普通のコンピュータネタ

以前、自分は簡易P2Vを実施し、成功させました。

この簡易P2Vは簡単に言うと物理HDDと全く同じ仕様の仮想HDDを用意し、KnoppixなどのCDから起動するLinuxを用いてddで複製を行うものです。幸い移行元はLVMなどの面倒なパーティショニングをしていなかったので予想どおりうまく行きました。
正確にはそのままでは起動はしなかったのでmkinitrdで初期RAMディスクの再構成を実施して事なきを得ました。

問題はこの運用時に起きました。実はこのシステムを後継者に渡したんですが、後継者の話によるとこの仮想HDDを伸長したようです。伸張時に問題が発生し、ファイルサイズがZeroのファイルができたそう・・・そんなことあるのかな。

ということで、ためしにGWで時間があったので実験してみました。

なお、この仮想HDD、すこし出自が変わっているモノでして、vmwareでそのまま作成した仮想HDDではありません。このサイトを参考に、実HDDと同じスペック、すなわちサイズとCHS(クラスタ、ヘッド、シリンダ)(シリンダ、ヘッド、セクタ)が全く同じHDDを作成しました。vmwareの標準機能ではCHSまで同じHDDは作成できないのです。異なる仕様のHDDでddをおこなったものはP2Vに失敗しました。

実験は以下のような状況で行いました。使用するファイルは以下のとおりです。

vmwareファイル(vmx)
仮想HDD(ポインタ)
仮想HDD(本体)

これも説明が必要だと思います。参照先のサイトを見ればわかることですが、vmwareのvmdkファイルはひとつながりの巨大なデータである必要はなく、仕様を記述して、本体を指しているファイル(便宜的にポインタの仮想HDDと呼びます)、とVMのストレージエリアとなる本体に分けることが可能なようです。
ちなみに本体のファイルはfsutilコマンドで作成したイメージファイルです。このコマンド、たいていの場合は巨大なファイルを使って、ファイルの転送速度の測定をしたり、圧縮のテストをするのに利用するんですが、疑似vmdkとしても機能するようです。しかし、本家のvmdkとは(おそらく)仕様が異なるのでvmware-vdiskmanager.exeを用いた伸張処理がちゃんと機能するかは疑問です。もっとも、それを確認するための実験なんですが・・・。

ファイルを用意したら実際にvmwareを起動させてOSをインストールします。あまり意味はないですが、インストールしたOSも示します。

KNOPPIX日本語版5.1.1CD

余談ですが、Knoppix LinuxはHDDに入れてもなかなか使えますよ。インストールが終わるのも速いし。

OSインストールまできたら実験開始です。やりたいことは仮想HDDの伸張です。しかしvmdkファイルが2つ(ポインタと本体)あり、どちらを伸張すべきか悩みます。どちらもやってみればいいのですが、予想を立ててみます。

まず、上記サイトのままのvmdkのポインタファイルの一部を抜粋します。ポインタファイルはテキストファイルなので簡単に中身を見ることができます。
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
# Extent description
RW 33554432 FLAT "scsi-16g-flat.vmdk" 0

# The Disk Data Base
#DDB

ddb.virtualHWVersion = "4"
ddb.geometry.cylinders = "2088"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

これは16GBのHDDの仕様です。vmware-vdiskmanager.exeを使用して伸張をおこなう際はおそらくこのパラメータが書き換えられて、本体ファイルが伸長されることが予想されます。

ためしに、vmware-vdiskmanager.exeを使って、実際にvmdkファイルを伸張してみます。

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C:\Users\cappmac\Desktop\empty>"C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x 20GB scsi-16g.vmdk
Using log file C:\Users\cappmac\AppData\Local\Temp\vmware-cappmac\vdiskmanager.log
Grow: 100% done.
The old geometry C/H/S of the disk is: 2088/255/63
The new geometry C/H/S of the disk is: 2610/255/63
Disk expansion completed successfully.

WARNING: If the virtual disk is partitioned, you must use a third-party
utility in the virtual machine to expand the size of the
partitions. For more information, see:
http://www.vmware.com/support/kb/enduser/std_adp.php?p_faqid=1647
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
という感じで、成功しちゃいました。

ちなみに、本体ファイルに対して、伸張処理を実施するとこうなりました。
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
C:\Users\cappmac\Desktop\empty>"C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x 20GB scsi-16g-flat.vmdk
Using log file C:\Users\cappmac\AppData\Local\Temp\vmware-cappmac\vdiskmanager.log
Failed to open the disk 'scsi-16g-flat.vmdk' : The file specified is not a virtual disk (15).
Failed to open disk 'scsi-16g-flat.vmdk' : The file specified is not a virtual disk (15).
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

というわけで、fsutilで作成されたただのファイルの塊でもvmdkのポインタファイルさえ用意すればちゃんとvmwareネイティブのvmdkファイルと等価の動作となることが確認できました。

となると失敗した理由がナゾです。現場検証は短時間だったため、あまり深くまで原因究明できませんでしたが、スナップショットやホストOSの受け入れ容量オーバーだった可能性が考えられます。スナップショットは伸張時には切らないとなにか影響がありそうな気がします。

とりあえず、今回の実験でわかったことは、疑似vmdkでもvmdkと同じ動作をする、ということと、完全に依存しない隔絶した環境にバックアップを置いてから作業をしましょう、ということが確認できました。

もちろんこの伸張はあくまでもvmdkに対して、ですので伸張後のVM内のファイルシステム伸張処理をお忘れなく、というかこちらのほうが難しい場合も多いのですが、今回伸張をしようとした、後継者殿はその辺、どう考えていたんでしょうね。
[PR]
by cappuccino_mac | 2009-05-05 17:02 | 設定覚え書き | Comments(0)

2年ぶりによみがえるMuramasaのWindows

自宅でSharpのMURAMASA(PC-MM1-H3W)というノートパソコンを使っていました。
このノートパソコン、AC電源で動作させると正常動作するのですが、バッテリ駆動にしたとたん、5分も持たない状態になったり、HDDのスピンアップがうまくいかずOSの動作が停止するわでかなり厳しい状況でありました。殊、HDDのスピンアップ不調の問題はもしやHDDの故障ではと疑い、HDD交換を行ったほどでした。しかし、交換したHDDでも現象は改善せず。ということで重い腰を上げて、バッテリを交換することにしました。せっかくなので中容量バッテリに交換しました。

OSはFedora Coreを使用していました。なぜFedora Coreになったかというと、Windowsのシステムファイルが破損して、復旧が困難な状態になってしまったためだったと思います。MURAMASAは純正のCDドライブからリカバリを行いますが、残念ながら自分はそのドライブを所持していません。Linux系なら比較的容易にPXEBoot環境を構築でき、OSをネットワークインストールできるため、Linuxに落ち着いてしまったというわけです。

という前置きをふまえて、届いた中容量バッテリに交換したところ、非常に長時間動作することが確認できました(Linux上で4時間程度)。もともと薄型が売りのノートPCだけに性能はともかく携帯性の良さは昨今のネットブックに引けを取りません。というわけで、LinuxだけでなくWindowsもちゃんと復活させてあげたいなーと何となく思っていました。たまたま見つけたサイトでMURAMASAをリカバリディスクではなくHDDから復活させる方法が記載してあったので、試してみることにしました。

というわけで本題のMURAMASAのWindows復活法です。

必要なもの
ハード:MURAMASA、クレードル、外付けFDD
ソフト:リカバリディスクの中身、RAWRITE、flpイメージをマウントできる環境

手順
MURAMASAをクレードルにセットし、USBディスクとしてマウント。

HDDを初期化。パーティションは2個作成。
第1パーティションは10GBで切る。基本パーティションにする。
第2パーティションは残りの容量を使う。拡張パーティションにし、内部に論理パーティションを設定する。

リカバリディスク1〜3の中身をすべて論理パーティション内にコピー。

flpイメージマウント環境はMac OS Xを利用。標準でそのままflp(ISOイメージ)のマウント、マウントイメージ内のファイル編集が可能。

ファイルの変更はすべて、参照サイトに従う。

参照先サイトとの差異部分
参照サイトでは通常のリカバリと同様の手順と記載されていたが、「Cドライブのみリカバリ」では正常動作しなかった。代わりに「ハードディスク全体をフォーマット後、リカバリ」を選択したら、うまくいった。ハードディスク全体をフォーマットされたらリカバリイメージが消去されてしまいリカバリがうまくいかないんじゃないかと危惧したが、問題なくリカバリができた。ちなみにリカバリ後は初期状態のパーティション構成にされており、リカバリディスクをコピーした内容はきれいさっぱり消えていた。

Windowsのアップデート
SP1なのでSP2、SP3と段階的にアップデートした。次々と出てくるアップデータを適用したらこれだけで1日かかった。特にSP2のアップデートは3時間かかった(!)。

結果的に持ち運べるWindowsマシンが手元にできた。といってもそんなにモバイルする機会はないんだけど、まあ、いざというときには使えるマシンができるってのは悪くない。Crusoe 1GHzはatomに比べるとかなり非力だけど、Windowsでエディタと写真取り込みする程度ならばそれほど苦にはならないようだ。ちなみにLinuxを入れたディスクもそのまま取り出して保管してあるので、10分ほどの開腹作業で取り付け直してLinux環境を復活させることもできる(なれないと時間がかかるけど)。

気付けば薄型を指向するノートPCはMacBook AirとDynabookぐらいしか見当たらなくなってしまった。薄型ノートは鞄にも入れやすいし、画面がある程度大きく使いやすいのでもっと出てほしいジャンルなんだけどなぁ。
[PR]
by cappuccino_mac | 2009-03-01 23:04 | 設定覚え書き | Comments(5)

AFSとx264

自動フィールドシフトには出力プラグイン版(afs.auf)とビデオフィルタ版(afsvf.auf)がある。

これまでビデオフィルタ版を使ってきたが、これを使ったときx264gui.auoで2パスエンコーディングを選択すると確実に落ちる症状に見舞われた。そこで出力プラグイン版に乗り換えたところ、aviutlが落ちることが少なくなった。

現在は、x264guiとafsがどういう関連性でもって落ちるのかを合間をみて研究中。2パス目で落ちる理由はだいたい、1パス目とフレーム数が合わないっていうパターン。この問題は基本的には出力テンポラリファイルが異常であるせいなんだけど、なぜそうなるのかが不明。で、ソースを見てるところ。x264guiはわかりやすいソースなんだけど、__asmが絡む場所になるとさっぱりわからん。SSEはつらいね。もっともそこを見る必要はないはずだけど。
afsはそのうち見てみる予定。
[PR]
by cappuccino_mac | 2009-02-11 22:00 | 設定覚え書き | Comments(0)

sheepshaver(COIについて)

注意:今回の内容はほぼクロの内容です。


Mac OSはOS Xになってから、過去との互換性を切り捨てる歴史を歩んできました。大きく2つの断絶を生み出しています。
1つはClassic Mac OSとの決別。Mac OS 9以前のアプリケーションはMac OS Xでは動かせません。動かすためにはClassic環境というエミュレーション環境で実行する必要があります。
もう一つはIntel化。PowerPC用バイナリはIntel MacではRosettaというバイナリトランスレーションを通して実行されます。Rosettaで実行可能なPowerPCバイナリとはMac OS X用のネイティブコードでないといけないという制約があります。
つまり、Classic Mac OS用のソフトウェアはIntel版Mac OS Xでは動作しない訳です。

これを解決するのがSheepshaverです。SheepshaverはもともとBeOS由来のソフトウェアですが、現在はMac OS X(Universal)、Linux、Windowsで動作するソフトウェアとなっています。

前半はsheepshaverのインストールについて、後半はCOIについて触れたいと思います。

入手先
本家はここのようですが、こちらの方がより最新のものを手に入れられるようです。

私はMac OS X版とWindows版をダウンロードしました。Mac OS X版は過去の資産を拾うために、Windows版はVista on Core i7 940でどの程度の性能を出すことができるのかが気になったのでお試し的にという感じです。

インストール
Mac OS X版は簡単です。tbzで圧縮されてるので、解凍して適当なディレクトリに置きましょう。
Windows版は少し厄介です。SDLとGTK+ライブラリが必要です。
SDLは
SDL-1.2.13-win32.zip
GTK+は
Gtk+ 2.12.9 Runtime Environment Revision 2
を入手しました。
SDLは解凍したらSDL.dllをsheepshaverを解凍したディレクトリに置き、GTK+はインストーラに従って、インストールします。

Mac OS ROMの入手。
Mac OS ROMはここから手に入ります。ただ、このMac OS ROMはあくまでそのOSを使用するためのMacを所有している必要があります。Macを持っていたとしても、エミュレータのために使用するのは本来の想定範囲外の使用法なので、使用許諾違反となってしまう場合がある、とだけ触れておきます。
Mac OS ROMはtome viewerというツールを使って取り出します。このツールはClassic Mac OS用のソフトウェアですので必然的にMac OS 9の動作するマシンも必要となります。PowerMac G4 Titanium(500MHz)を使用しました。
なお、Mac OS ROMはROM Grabberというツールを使用して、実機から直接引っこ抜くことも可能です。詳細は後述します。

動作環境
エミュレーション可能なMac OSはMac OS 7.5.2 - 9.0.4までとなっています。実機のROMでしか動作しないOSはMac OS 7.5.2 - 8.1で、これ以降のOS(つまりMac OS 8.5)は実機のROMまたはROMイメージで動作します。実機のROMというのが先ほど紹介したROM Grabberで取り出せるもので、ROMイメージがアップデータファイルから抽出できるものです。
Mac OS 9.0.4以降のOSが動作しない理由は探してみたところあまり深いところまで突っ込んだサイトはありませんでしたが、MMUのアクセスが変更になり、エミュレーションがこれ以降のOSでうまく作動しないのが理由のようです。
手持ちのMac OSは
Mac OS 8.1 Mac OS 9.1 Mac OS 9.2しかありませんでした。つまりMac OS 8.1が動作することにかけるしか無い訳なのですが・・・。

結果
手持ちのMacはPower Mac 7600/200とPowerBook G4 Titanium(500MHz)しかありません。ROMはそのため、3種類取り出すことができました。すなわちPowerMac 7600/200の実機ROM、PowerBook G4 Titaniumの実機ROM、アップデータから取り出したROMイメージファイルです。
ためしてみたところ、全滅しました。
もっとも可能性の高いPowerMac 7600/200 ROMとMac OS 8.1の組み合わせで動作が確認できませんでした。Mac OS 8.1のCD-ROMを入れるとSheepShaverが落ちます。コンフィギュレーションをいろいろいじってみたのですが、成功する設定は得られませんでした。PowerBook G4 Titanium ROM、ROMイメージともにMac OS 8.1での起動が確認できませんでした。だめもとで9.1、9.2にトライしてみましたが、やはりすべてのROMで無理でした。こちらの方は起動まではこぎ着けますが、サポートできないハードウェアである旨のダイアログが表示されて、再起動一択の堂々巡りとなる結果となりました。

COI(Classic on Intel)
ここまでは通常のSheepShaverのチャレンジですが、明らかにクロの手段があります。それがCOIです。googleで"Classic on intel"と検索することで、BitTorrentファイルを入手することができます。
COIは安定動作が確認されたROMイメージとMac OS 9.0.4(E)を最小インストールしたパッケージです。ワンクリックで動作するClassic環境を謳っているだけに、起動は非常に簡単です。
COIをダウンロードしたらCOI.appを起動するだけです。これだけでMac OS 9.0.4が立ち上がります。その起動時間はまさに一瞬です。約2秒程度といったところです。
ところで、このCOI.app。2つ問題点があります。ひとつはディスクイメージが約100MBしか無い点。これについてはCOI自体に対処法が用意してあります。400/800/1200MBのイメージが用意してあるのでマウントしてシステムフォルダごとコピーしてねというものです。これにより容量の制限は解消できます。
もう一つの問題は日本語環境が無い、という点。こちらはMac OS 9.2のLanguage Kitsを拝借することにしました。Language KitsとはClassic Mac OSの時代にマルチランゲージ環境をサポートするソフトウェアのことで、フォント、変換プログラム、書式設定等をおさめたものです。Mac OS 9のCDを挿入し、このままInstall Language Kitsインストーラを起動させてもOSチェックではじかれてしまいますが、一旦HDDにLanguage Kitsフォルダ全体をコピーし、その中にあるLK Tomeをtome viewerで開き、中のファイルをすべて取り出して、適宜必要なフォルダにおさめればOKです。少し手間ですが、Classic Mac OSはシステムフォルダにファイルを放り込むと適切な位置に勝手に入れてくれます(といいつつ結構こけますが・・・その時はMac OS 9のフォルダ構成と見比べて入れていきましょう)。ちまちまと日本語関係と思われるファイルをシステムフォルダに移動させていけば、日本語環境が手動で構成できるわけです。あらかた入れ終わったら、再起動させて、AppearanceのFontsタブのViews FontをOsakaにしましょう。これでFinderで文字化けしていた日本語ファイルも正常に表示できるようになります。ことえり も入れられていると思うのでコマンド+スペースで日本語も入力できるはずです。

Internet接続
Mac OS Xの場合はBasilisk slirpを選択し、SheepShaver上のMac OSの設定をDHCPにすれば、Webを見ることは可能です。
WindowsでWebを見るためには、Basilisk Ethernetアダプタをインストールする必要があります。使用しているネットワークアダプタの設定を開き、プロトコルのインストールからディスク使用を選択し、B2Win2k.infを選択しインストールします。これにより、ローカルエリア接続が選択できるようになりますので、起動したらTCP/IPコントロールパネルで手動入力で利用ネットワークにあわせたIP設定を行います。これで、Internet Explorer 5などを使用してWebを閲覧できます。

速度
ベンチマーク的なソフトウェアが無いので、これだけのスピードが出たという報告ができません。
ただ起動速度でいうと日本語環境を入れた状態で
Intel Mac 4秒
Vistaマシン 3秒
さらにネットワークを有効にした状態で
Intel Mac 10秒
Vistaマシン 6秒
と行ったところでした。またすごーい古いレーシングゲームを試したところVistaマシンの方がスカスカに動きました。スカスカを通り越して、速すぎという状態です。おそらくタイマ処理がおかしくなってるんだと思います。Intel Macは音の途切れがいくらかありましたが、Vistaマシンでは皆無でした。これもIntel Core i7 940のチカラのおかげなのでしょうか。Marathonなんかも入れてみると限界が分かるかもしれませんね。
本当はCaffeine Markなどで性能を確かめたかったんですけど、Javaアプレットを動作させるとMac OSがSheepShaverごと落ちるので試すことができませんでした。
簡単なスペック
Intel Mac : iMac Intel Core 2 Duo 2.16GHz 割当メモリ1024MB
Vistaマシン : Intel Core i7 940 2.93GHz 割当メモリ1024MB

未解決事項
スクラップブックで3DMFファイルが開けない→SheepShaverが落ちる
Javaアプレットが動作しない→SheepShaverが落ちる
[PR]
by cappuccino_mac | 2009-02-08 20:43 | 設定覚え書き | Comments(0)

マカー的Windows Vista改善計画 -解決済み編-

Windows Vistaも常用するようになって1か月経ちました。あいかわらずMac使用率も高いですが、ハイビジョン動画やVMとかをいじる分にはUIはあんまり関係ないので、専用プレーヤー的感覚で使ってます。PCとしては使ってないなぁ。

とはいいつつもExcelとかWordもたまには使うわけでちゃんと使うようになるといろいろ使いづらい点が出てくるわけで、その辺を小手先の努力で改善した記録を覚書的にまとめてみました。

[UAC時の暗転をなしにする]
Windows版 sudoであるUAC。UACの機能自体は絶対に必要だし、間違った設計ではないけれど間違っているのはその見せ方。一度暗転するのは、開発者曰く、通常の操作とは違うことを明示するために必要な機能というが、GeForce 9800GTとIntel Core i7を積んだPCですら、もたつくこの暗転機能はうざい以外のなにものでもない。あとついでに言うとレガシーな画像処理をしているソフト(Friioビューアのことですw)で動画を見ていると、UAC発動の瞬間に落ちる。おそらくこの類のソフトウェアがオーバーレイでしか処理できないためだと思いますが。
なんにせよ、これを切る方法を探したところ、ありました。

ここによるとレジストリエディタを使用すれば、この設定を変更できるようです。

変更箇所は
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\Policies\System

で、この中のProntOnSecureDesktop0⇒1に変更すればOKです。

ジャンプ先の記事では心理的に快適になった、としてますが実際画面暗転はいろいろ問題を引き起こすのでないに越したことはないです。

c0064553_2125356.jpg

UACで暗転しなくなった様子。

[Flip3DをExpose'風に操作したい]
Vistaのウィンドウを一覧できる機能Flip3Dですが、いちいちWindows+Tabを押さないと機能が利用できないのが難点。私の場合Windowsキーがないキーボードを使っているのも原因の一つですが、これ以外にもアクセスできる方法がないのも考えもの。Mac OS XのExpose'の場合、デスクトップの上下左右の隅のいずれかにマウスポインタを移動させるだけでウィンドウ選択モードになります。これに似た機能がないかネットを探したところ、こんなのを発見。

Vista Flip 3D Activator
このソフトをインストールすると、こんな感じのウィンドウで設定ができて、マウスをデスクトップの隅に持っていくだけでFlip 3Dが利用可能になります。正直まだ不満ですが、使い勝手は格段に上がりました。これなら使う気になります。
c0064553_21262933.jpg

Vista Flip 3D Activator設定画面

[メディアタイプ別フォルダをオフにする]
Windowsも昔に比べておせっかい機能が減ってきましたが、まだ気が利くとおせっかいをはき違えている機能が散見されます。その代表格がメディアタイプ別フォルダ表示機能。

これはフォルダ内のメディアタイプに応じて適切な分類項目にしてくれるありがたーい(?)機能で、オーディオファイルやムービーといったマルティメディアタイプだと更新日時や種類を出さずにタグとか撮影日とか評価とかどーでもいい項目を出してくれます・・・正直うざいです。
c0064553_220796.jpg

これに関しては分類の部分で右クリックを押せば追加の分類項目が現れて無い項目も選択できるようになります。
c0064553_2203315.jpg

なのですが、この中にもない場合は詳細表示の設定を呼び出して何十項目もある分類一覧ウィンドウからがんばって探し出さないといけない羽目になります。
とにかく、最低限必要なサイズや更新日時まで消してしまうメディアタイプ別フォルダ表示はいらないので止めます。
止め方は以下に詳しいです。
@IT

こちらもレジストリエディタを使用するのですが、若干手順が多めです。
基本的な考えは余計な表示をさせるレジストリ項目をいったん除去して、まっさらな表示設定にデフォルトのファイル表示設定を追加するって感じです。
手間は多いですが、以下のように無駄な表示項目が消えて、以降もなにかの拍子にタグとか評価とかの項目が出ないようになります。
c0064553_221886.jpg

[PR]
by cappuccino_mac | 2009-01-18 20:53 | 設定覚え書き | Comments(0)

x264gui.auo設定(seraphy氏作)

結論からいうとニコニコ動画用超画質設定はすごい。

x264エンコーダをx264gui.auoのx264.1057.release01版に更新しました。
このバージョンはMicrosoft Visual C++ 2008 再頒布可能パッケージ (x86)とMicrosoft .NET Framework Client Profile Setupをダウンロードする必要があります。

インストールは簡単で、x264gui.iniとx264gui.auoをaviutlのフォルダに入れるだけです。

プラグイン出力からx264を選択すれば以下のようなダイアログが出ます。

c0064553_21233889.jpg


この中の"NicoNico : 超画質"プリセットはだいたい以下のような感じの設定なのですが

--progress --crf 23.5 --qpmin 1 --qpstep 16 --scenecut 54 --min-keyint 1 --keyint 300 --8x8dct --partitions "all" --bframes 5 --b-pyramid --weightb --b-adapt 2 --ref 8 --mixed-refs --direct "auto" --me "esa" --subme 9 --merange 32 --sar 4:3 --threads "auto" --trellis 2 --deblock -2:-2 --cqm "jvt" --no-fast-pskip --no-dct-decimate

これがかなり縮みます。1440x1080においてもcrf設定は24~25程度で十分見れる画質です(止めない限り画質破綻は感じない)。25分ソースで350MB(crf=25)-600MB(crf=23.5)程度に収まる感じです。HD制作の番組で23.5、アプコン作品で24、25くらい、と使い分けるといい感じです。

パラメータを見てみると参照距離(--ref)が8になっている点、動き補償アルゴリズム(--me)がesa(徹底サーチ)になっている点が目につきます。
これらはエンコード時間を無駄に長くさせるパラメータですが、それでも25分のソースで4時間程度で済むのはCore i7の恩恵かもしれません。
--meに関してはesa → umhにしても画質にさほど違いがないようなので、これを変更すればもう少し速くエンコードできるかもしれません。
[PR]
by cappuccino_mac | 2008-12-29 17:10 | 設定覚え書き | Comments(0)