2012.06.27
いまさらなメモ

* tcpdump できない

/Library/Application Support/VMware Fusion/vmnet-sniffer を使う。

例: /Library/Application Support/VMware Fusion/vmnet-sniffer vmnet8

* vmnet を増やす

念のため VMware Fusion を止める。
  1. /Library/Application Support/VMware Fusion/networking を編集 (NAT するなら VMNET_8 を、しないなら VMNET_1 をコピーして、適宜番号とアドレスを変更)
  2. (例えばNATする場合) cd /Library/Application Support/VMware Fusion && cp -rp vmnet8 vmnet7 などとしてコピーする
  3. vmnet7/dhcpd.conf はアドレスと "host" を変更、vmnet7/nat.conf はアドレスとインタフェース名を変更、vmnet7/nat.mac は MAC アドレスを変更する。もちろんアドレスなどは networking で指定したものと合わせる。
  4. sudo ./boot.sh --restart
でサーバー側の変更は終了。VM 側は、(VMの名前).vmx の内容を書き換え、

ethernet0.connectionType = "custom"
ethernet0.vnet = "vmnet7"

などとする。("ethernet0.vnet" は存在しないはずなので追加)

ちなみに、VMware Fusion 4 だと、VNeditorUBER Network Fuser などが使える。
2012.06.26
When is Backblaze backup deleted?
[Internal Drive]

|<- 60 days ->|
+-------------------------+
^ ^
| |
PC goes offline backup for internal drive is delete
(backup for external drive is deleted too)
[External Drive]

*If PC keeps online:

|<- 30 days ->|
+-------------+
^ ^
| |
Drive goes offline backup for external drive is deleted
(detached)

+-- external drive keeps offline (detached)
*If PC goes offline: |
v
|<- less than 60 days ->|<- 30 days ->|
+-----------------------+-------------+
^ ^ ^
| | |
PC goes offline PC goes back online backup for external drive is deleted
(Edit)

https://help.backblaze.com/entries/20202057-best-practices
"if your computer does not contact the Backblaze datacenter for six months then your account will be cancelled and the mirrored copy deleted from the Backblaze datacenter."

http://www.backblaze.com/edrive.html#unplugged
"re-attach the hard drive at least once every 30 days. [...] You can then leave your computer off and unplug your external drive for six months"
2012.06.24
古いサーバ

CPU: AMD Athlon XP 2000+
MEM: 1GB

Primary MasterHGSTHDT725032VLA305GB
Primary SlaveSamsungSP1604N152GB
Primary MasterSeagateST3120022A114GB
Primary SlaveHGSTIC35L120AVV207-0117GB
Secondary MasterMaxstor6Y120L0117GB
Secondary SlaveMaxstor6Y160L0156GB

2012.06.20
HGST Touro Desk 2TB USB 3.0 Black External Hard Drive HTOLDX3NB20001ABBは USB 3.0 ってなってるけど本当に USB 3.0 相当なのか?

型番 HTOLDX3NB20001ABB で検索すると、HGSTのページが引っかかる。日本版も見つかった。
DESCRIPTIONMODEL NUMBERSKUUPC
Touro Desk DX3 Black 2000GB NAHTOLDX3NB20001ABB0S03394705487189216
Touro Desk DX3 Black 2000GB JPHTOLDX3JB20001ABB0S03410705487189377

そこで、日本版の型番 0S03410 で検索したところ、同じくHGSTのページが引っかかった。
製品製品番号UPC
Touro Desk DX3 Black 2000GB JP0S03410705487189377

名前は違うが同じもののようだ。さて、このPDFファイルは、このHGSTのページからリンクされている。

そこで、同ページの左上にある「主な仕様:概略仕様」を読んでみると、なんと「データ転送速度(最大) 480Mb/s」と書かれている。(USB2.0 の理論値)

また、同じく左上にある「関連情報:よくある質問」を読むと、「Q1 システム要件について教えてください。」に対して「Touro シリーズ」の要件は「USB 2.0 ポート搭載」となっている。(Touro Pro シリーズでは「USB 3.0 または USB 2.0 ポート搭載」となっている)

さらに、Touroのページにある、製品仕様 (USB 3.0)は、上記のHGSTのページと同じ(和訳)のようだが、このページの技術仕様にもしっかり「データ転送レート: USB 2.0: 最大 480 Mbit/秒」と書かれていた。

というわけで、USB3.0 対応はあくまでマーケティング的なもので、実際には USB2.0 相当の速度しか出ないようだ。(嘘は書かれていないけど、あんまり誠実ではないように感じる。) USB3.0 相当の速度が欲しければ Touro Pro を使えってことだね。
2012.06.20
POSTのメッセージが速すぎるのでメモ。
Press DEL to run Setup (F4 on Remote Keyboard)
Press F12 if you want to boot from the network
Press F8 for BBS POPUP (F3 on Remote Keyboard)

2012.06.15
/Users/user - Library/Application Support/{Evernote,MobileSync} and Music/iTunes/Mobile\ Applications
2012.06.14
他のオンラインバックアップサービスと違い、CrashPlan は「ローカルバックアップ」と呼ばれる、同じPC内のフォルダや外付けハードディスク、またはネットワーク経由で別のPCへのバックアップができる。

初めに思いついたのは、アカウントを2つ作り、自分のサーバ上に VirtualBox で Windows を走らせネットワーク経由でバックアップをとることだった。そこで調べてみたところ、
  1. アカウントは1つでよかった。複数のPCから同じアカウントでログインすると、お互いがバックアップ先として選択できるようになった。
  2. Windows 以外にも Mac、Linux、Solaris をサポートしてる。しかも "headless" モードをサポートしてるのでバックアップ先としてサーバ上で運用するのに最適。
ということが分かった。残念ながら FreeBSD はサポートされてないようだが、少しググってみると Linux emulation で動かしてる例が複数(ここここここ)見つかったので、大丈夫そうだ。ついでに、謎のバイナリ(と言っても Java で書かれてるようだが)を動かすならやっぱり Jail の中で動かしたいでしょう、ということでさくっと試してみた。

まずは、適当なPCに CrashPlan をダウンロード・インストールして起動、アカウントを作成しておく。(複数のPCにインストールして、お互いがバックアップ先として見えるか確認しておくとよいかも)

次にサーバ側の準備をする。初めに Jail の準備。
# setenv d /home/jails/jail
# mkdir -p $d
# cd /usr/src
# make buildworld
# make installworld DESTDIR=$d
# make distribution DESTDIR=$d
# cp -p /etc/resolv.conf $d/etc
# cp $d/etc/crontab $d/etc/crontab.orig
# cat $d/etc/crontab.orig | sed -e 's/^1,31/#1,31/' > $d/etc/crontab # adjkerntz を止める
# cp $d/etc/syslog.conf $d/etc/syslog.conf.orig
# cat $d/etc/syslog.conf.orig | sed -e 's/^\*.err;kern.warning;/#*.err;kern.warning;/' > $d/etc/syslog.conf # console への出力を止める
# mkdir -p /home/jails/crashplan/compat/linux/proc
# cat << EOF >> /etc/fstab.jail # Jail 内で Linux procfs が必要になる
linproc /home/jails/crashplan/compat/linux/proc linprocfs rw 0 0
EOF
# cat << EOF >> /etc/pf.conf # prisoner へのネットワークは pf の NAT で提供する。
ext_if="em0"
jail_subnet="192.168.0.0/24"
crashplan="192.168.0.1/32"

nat on $ext_if from $jail_subnet to ! $jail_subnet -> ($ext_if)
rdr on $ext_if proto tcp from any to ($ext_if) port 4242 -> $crashplan port 4242
rdr on $ext_if proto tcp from any to ($ext_if) port 4243 -> $crashplan port 4243 # こっちはあとで削除する
# cat << EOF >> /etc/rc.conf # Jail と pf の設定。
# pf
pf_enable="YES"
pf_rules="/etc/pf.conf"

# Jail
jail_enable="YES"
jail_list="jail"
jail_jail_rootdir="/home/jails/jail"
jail_jail_hostname="jail.local"
jail_jail_ip="lo0|192.168.0.1/24" # こういう書き方だと、Jail 起動時に自動的に lo0 にアドレスがつく
jail_jail_devfs_enable="YES"
jail_jail_mount_enable="YES"
EOF
Jail を起動。
# /etc/rc.d/jail start jail
# jls # Jail ID を確認する
# jexec X /bin/tcsh # Jail 内に入る
Jail 内で準備をする。(なお、linprocfs を mount することで、linux.ko と linprocfs.ko が自動的に load される)
jail# cat << EOF >> /etc/make.conf
OVERRIDE_LINUX_BASE_PORT=f10
OVERRIDE_LINUX_NONBASE_PORTS=f10
EOF
jail# cat << EOF >> /etc/rc.conf
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
syslogd_flags="-ss"
crashplan_enable="YES" # 後で rc ファイルを作成する
EOF
jail# portsnap fetch extract
jail# cd /usr/ports/ports-mgmt/portmaster
jail# make install distclean
jail# portmaster emulators/linux_base-f10
jail# portmaster sysutils/linux-procps
jail# portmaster java/linux-sun-jre16
ここまでで Jail 内での Linux emulation の環境が整った。CrashPlan 本体のインストールは 'crashplan' という一般ユーザーを作って行なうことにする。
jail# adduser
(... add user 'crashplan' ...)
jail# su - crashplan
jail$ cd $HOME
jail$ setenv PATH /usr/local/linux-sun-jre1.6.0/bin/:$PATH
jail$ rehash
jail$ fetch http://download.crashplan.com/installs/linux/install/CrashPlan/CrashPlan_3.2.1_Linux.tgz
jail$ tar zxf CrashPlan_3.2.1_Linux.tgz
jail$ cd CrashPlan-install
jail$ /compat/linux/bin/bash install.sh

Welcome to the CrashPlan Installer.

Press enter to continue with installation.

Validating environment...

NOTE: You are apparently not installing as root. While it is recommended to
install as root it is not required. If you continue to install as crashplan
then CrashPlan will only be able to back up files readable by crashplan.

Would you like to switch users and install as root? (y/n) [y] n
installing as current user
44127 blocks

You must review and agree to the EULA before installation.

Press enter to read the EULA.
(...)

Do you accept and agree to be bound by the EULA? (yes/no) yes

What directory do you wish to install CrashPlan to? [/home/crashplan/crashplan]
/home/crashplan/crashplan does not exist. Create /home/crashplan/crashplan? (y/n) [y] y

What directory do you wish to store backups in? [/home/crashplan/crashplan/manifest]
/home/crashplan/crashplan/manifest does not exist. Create /home/crashplan/crashplan/manifest? (y/n) [y]

Your selections:
CrashPlan will install to: /home/crashplan/crashplan
And store datas in: /home/crashplan/crashplan/manifest

Is this correct? (y/n) [y]

Unpacking /./CrashPlan_3.2.1.cpi ...
44127 blocks
sed: 1: "/home/crashplan/crashpl ...": command c expects \ followed by text
cat: /proc/sys/fs/inotify/max_user_watches: No such file or directory # 単なるチェックなので無視する

Your Linux system is currently configured to watch files in real time.
We recommend using a larger value; see the CrashPlan support site for details

Starting CrashPlan Engine ... Using standard startup
OK

CrashPlan has been installed and the Service has been started automatically.

Press Enter to complete installation.

Important directories:
Installation:
/home/crashplan/crashplan
Logs:
/home/crashplan/crashplan/log
Default archive location:
/home/crashplan/crashplan/manifest

Start Scripts:
/home/crashplan/crashplan/bin/CrashPlanEngine start|stop
/home/crashplan/crashplan/bin/CrashPlanDesktop

You can run the CrashPlan Desktop UI locally as your own user or connect
a remote Desktop UI to this Service via port-forwarding and manage it
remotely. Instructions for remote management are in the readme files
placed in your installation directory:
/home/crashplan/crashplan/doc


To start the Desktop UI:
/home/crashplan/crashplan/bin/CrashPlanDesktop

Installation is complete. Thank you for installing CrashPlan for Linux.

jail$ cp crashplan/bin/run.conf crashplan/bin/run.conf.orig
jail$ sed -e 's/ttl=0"/ttl=0 -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider"/' < crashplan/bin/run.conf.orig > crashplan/bin/run.conf # http://wiki.freebsd.org/linux-kernel#Workarounds を参照
jail$ su -
jail# cat << EOF >> /usr/local/etc/rc.d/crashplan # rc ファイルを作る。'crashplan' ユーザで動かすため、少し変な書き方になってる。
#!/bin/sh
#

# PROVIDE: crashplan
# REQUIRE: NETWORKING
# KEYWORD: shutdown

. /etc/rc.subr

home="/home/crashplan/crashplan"
name="crashplan"
rcvar=`set_rcvar`
command="/usr/bin/su"
command_args="/compat/linux/bin/bash ${home}/bin/CrashPlanEngine"
pidfile="${home}/CrashPlanEngine.pid"
start_cmd="${command} -l ${name} -c \"${command_args} start\""
stop_cmd="${command} -l ${name} -c \"${command_args} stop\""
restart_cmd="${command} -l ${name} -c \"${command_args} restart\""
status_cmd="${command} -l ${name} -c \"${command_args} status\""

load_rc_config $name
run_rc_command "$1"
EOF
jail# chmod 755 /usr/local/etc/rc.d/crashplan
jail# exit
jail$ /usr/local/etc/rc.d/crashplan start
Starting CrashPlan Engine ... Using standard startup
OK
jail$ /usr/local/etc/rc.d/crashplan status
CrashPlan Engine (pid 57761
57760
57759
57758
57757
57756
57755
57754
57753
57752
57751
57750
57749
57748
57747
57746
57745
57744
57743
57742
57741
57740
57739
57738
57737
57736
57735
57734
57733
57732
57731
57730
57729
57728
57727
57726
57725
57724
57723
57722) is running.
jail$
ここまで来たらあと一息。CrashPlan のクライアントからこのサーバへつないで設定をする。(といっても、アカウントと紐付けるだけだけど) つなぎ方は CrashPlan のオフィシャルのページに Connect to a Headless CrashPlan Desktop として載ってる。

ただ Jail 内で動かすと(なのかどうかはよく分かってないけど)上記のページの説明とは違い CrashPlan Engine は(127.0.0.1:4243 ではなく) 192.168.0.1:4243 (192.168.0.1 は Jail に割り当てたIPアドレス)で Listen する。なので、わざわざ SSH tunnel を作る必要はなく、代わりに ui.properties の「#serviceHost=127.0.0.1」を「serviceHost=x.x.x.x」(サーバのグローバルIPアドレス)に変更してクライアントを立ち上げる。(なお、この時点では 4242 では Listen してないと思われるが気にしなくてよい) クライアントが立ち上がったら、他のPCで使ってるアカウントを使ってログインする。特に変更することがなければ、そのままクライアントは閉じてよい。これで準備完了。

4243 は認証がまったくないので pf.conf から「rdr on $ext_if proto tcp from any to ($ext_if) port 4243 -> $crashplan port 4243」の行を削除するかコメントアウトし、"pfctl -F all -f /etc/pf.conf" で再読み込み。(pfctl -s nat で確認)

最後に、他のPCのクライアントを起動して、サーバがバックアップ先として表示されるか確認する。されなかったら、Jail 内で netstat し 4242 で Listen してるかや、クライアントから telnet x.x.x.x 4242 などとして接続できるか確認する。うまくバックアップがとれれば crashplan/backupArchives の下にファイルが作られていく。
2012.06.12
security/denyhost を使ってると TCP Wrapper のせいで、
May 18 09:05:44 foo sshd[66363]: warning: /etc/hosts.allow, line 19: can't verify hostname: getaddrinfo(host.example.net, AF_INET) failed
みたいなメッセージがよく出てた。けど、正引きと逆引きの確認をする必要性を感じなかったので、しないようにした。
# diff -u /usr/src/contrib/tcp_wrappers/socket.c{.orig,}
--- /usr/src/contrib/tcp_wrappers/socket.c.orig 2012-05-31 11:24:00.000000000 -0400
+++ /usr/src/contrib/tcp_wrappers/socket.c 2012-05-31 11:24:13.000000000 -0400
@@ -176,6 +176,7 @@
int salen, alen, err = 1;
char *ap = NULL, *rap, hname[NI_MAXHOST];

+ sin = NULL; /* XXX disable forward/reverse name lookup */
if (sin != NULL) {
if (sin->sa_family == AF_INET6) {
struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sin;

2012.06.01
/usr/ports/japanese/mozc-server を 1.5.1090.102 へアップデートしようとしたら失敗したので少し調べてみたら、1.5.1090.102 から mozc_renderer という新しい変換候補ウィンドウをデフォルトにした(e.g. http://tomcat.nyanta.jp/sb2/sb.cgi?eid=421 )らしい。そのために、GTK+ が必要になったけど、GTK+ が入ってないから失敗した、というわけ。

mozc のリポジトリを確認したら、ちゃんと回避方法が書いてあったので、その通りにしたら今度はうまくいった。

--- /usr/ports/japanese/mozc-server/Makefile.orig       2012-05-31 14:33:59.000000000 -0400
+++ /usr/ports/japanese/mozc-server/Makefile 2012-05-31 14:25:46.000000000 -0400
@@ -76,7 +76,7 @@
BUILD_MOZC_CMD= cd ${BUILD_WRKSRC} && \
${SETENV} BUILD_COMMAND="${WRKSRC}/mozcmake" \
PYTHONPATH=${WRKSRC}/third_party/gyp/local/lib/python${PYTHON_VER}/site-packages \
- GYP_DEFINES="use_libprotobuf=1" \
+ GYP_DEFINES="use_libprotobuf=1 enable_gtk_renderer=0" \
${PYTHON_CMD} build_mozc.py
BUILD_GYP_CMD= cd ${WRKSRC}/third_party/gyp && ${SETENV} ${MAKE_ENV} ${PYTHON_CMD} ${PYSETUP}

Rebuild at 2017/07/21 07:41
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。