2009年11月29日日曜日

ubuntu で ext3からext4へ移行してみた

 ファイルシステムをext3からext4へ移行しました。本当はしっかりとした移行記事を書こうかと思ったんですが、普通じゃないやり方してしまって参考にもならないのでやめました(^_^;) ので、感想だけ。

 ext3からext4への移行は、ext3のマウントオプションをext4に指定してやればそのままext4として扱えるんですが、これだとext4本来の機能を利用した状態にはならず、ext4本来のパフォーマンスを発揮することは出来ません。というか意味がない。
 ですので、ext4本来の性能を体感したい、というかちゃんとext4を利用したいのなら、ext4でフォーマット仕直し、そこへファイルを書き戻すといったことが必要です。

 で、LiveCDから起動し、中身をせっせとバックアップしてext4でフォーマット仕直して、バックアップを戻すという作業をしました。もちろんUUIDが変わるので、fstabやgrubなども書き換えてね。

 そして再起動。

 いきなりびっくり。ubuntu 9.10があっというまに立ち上がるんです。デュアルブートのXPよりも速い。ext3の時はこんなものでしょうっていう起動速度だったんですが。
 そして実際にログインして使てみると、速いこと速いこと。ext4ではやっとエクステントベースになったのですが、これによってメタ情報がぐっと少なくなりました。ext3のブロックベースですと1GBのファイルに必要な管理情報は1MBも必要でした。メタ情報のやり取りだけでI/O処理がそれなりにかかっていた事を考えると・・・
 具体的にはfindやduなどのメタ情報を検索するコマンドの速度におおいに違いが表れます。
 数千個のファイルがある、GB単位のディレクトリなど、du で容量を調べるにはそれなりの時間がかかりましたが、ext4だとあっという間に合計容量が返ってきます。

 最初は保守的にシステムだけをext4にして/homeはext3でなんて考えていたんですが、あまりにも良いので全部のパーティションをext4にしてしまいましたw

 ext4は十分に問題なく使えるFSだと思います。

2009年11月22日日曜日

ubuntu 9.10 アップグレードメモ

 遅ればせながら ubuntu 9.10 にアップグレードしましたのでメモ。
 今回の目玉は起動速度がさらに速くなった? なんとなくそんな気がしないでもない。


  • アップグレードはCLIから行なった。
  • sdic-eijiro でエラーが出てアップグレードを強制終了せざるを得なくなった。
  • その後、sudo apt-get install -f をかけた。
  • synapticからいらないパッケージを削除。
  • emacs関係を入れ直した。使えるのはemacs22 emacs23 emacs-snapshot かな。
  • emacsのフォントまわりがまた変更されているみたいだ。おかげでまた再設定。
  • dmesg でみると、i801_smbus: probe of 0000:00:1f.3 failed with error -16 と出てる。
    カーネル2.6.31のリグレッション エラーらしい。おかげでCPUの温度が取得出来ない。
  • icewm は特になにもしなくても問題なし。自前でパッケージ作る必要がなくなったようだ。
  • mlterm はまた256色対応patchを当てなければorz


 暫時追加予定。
 とりあえず問題は sensors で温度やファンの回転数が取得出来ないのが問題かな。mrtg でグラフ化しているので。まあサーバーというわけでもないので単に自己満足のグラフ化なのでいいですけど・・・

 しばらく様子を見て、問題がなければ、/ をext4でフォーマットしなおしてみようかなと思います。やっぱり最大のメリットはext4ですからね。/home はext3のままでいきますw


●2009/11/24 追記:
 i801チップがエラーになるのは、カーネルオプションで acpi=off にすることで回避出来た。当座はこれでいくか。
 / をext4 にした。そのうち書く予定。

2009年10月10日土曜日

Emacsのタイトルバーにホスト名を表示させる

 Granzchesta's ぷち日常天国 さんの方で Emacs で tramp使用時にタイトルバーにホスト名を入れられないかどうか悩んでいたみたいなので試してみました。
 以下を ~/.emacs に追記。


;;; tramp でリモートホスト名をフレームに表示する。
(defun my-tramp-hostname ()
"tramp host name."
(if (buffer-file-name)
(if (string-match "\\`/\\([^[/:]+\\|[^/]+]\\):" (buffer-file-name))
(tramp-file-name-host (tramp-dissect-file-name (buffer-file-name)))
"local") nil ))
;; フレームにセット
(setq frame-title-format '("%b - " (:eval (my-tramp-hostname))))

 Emacsはテキストエディタなんですから決っして文字列操作が弱いわけではありません。テキストエディタなのに弱いとはこれいかに。

2009年9月11日金曜日

ubuntuにgoogle-earth 5.1 を入れる

google-earth Ver5.1 がリリースされたので、インストールメモ。


ポイント

  • 事前に前のバージョンを削除しておく。
  • qt4を使用しているみたい。
  • メニューのフォントはqtconfig から行なう。
  • フォントがビットマップで汚ない。
  • インストール先は自分のhomeにする。


インストール

 インストール自体はGoogleからダウンロードしてきた GoogleEarthLinux.bin ファイルに実行属性を付与してからダブルクリックで実行すればOK.

フォント

 このままだとフォントがビットマップで汚ないので、修正します。
同梱のqtライブラリを使用しないようにし、ubuntuのライブラリを利用するように変更します。以下を端末から実行。
sudo apt-get install libqtcore4 libqtgui4 libqt4-webkit qt4-qtconfig

cd ~/google-earth
mv libQtCore.so.4{,.bak}
mv libQtNetwork.so.4{,.bak}
mv libQtGui.so.4{,.bak}
mv libQtWebKit.so.4{,.bak}

cd ~/google-earth/plugins/imageformats/
mv libqgif.so{,.bak}
mv libqjpeg.so{,.bak}

ln -s /usr/lib/qt4/plugins/imageformats/libqjpeg.so .
ln -s /usr/lib/qt4/plugins/imageformats/libqgif.so .


フォントの変更は qtconfig から行ないます。フォントによってはうまく変更出来ないようです。

 これでアンチエイリアスの効いた状態になりました。



参考

GNU/Linux版Google Earth 5.0上の日本語フォントの問題とその対処

2009年9月10日木曜日

icewmの壁紙を変える

icewmの壁紙は、~/.icewm/preferences 内の、
DesktopBackgroundImage="ほげほげ.jpg"
行を書き換えてあげればいいわけですが、その後、icewmを再起動しないと反映されません。
けっこう面倒くさいので、さくっとシェルスクリプトでやっちゃいましょう。

以下のシエルスクリプトを、icewmbg-changer.sh という名前で保存し、実行属性を付けてください。


#!/bin/sh
# -*- coding: utf-8 -*-
# last updated : 2009/09/07 03:46:02 JST
#
# icewm用壁紙チェンジャー
# 使い方。
# icewmbg-changer.sh /home/foo/picture/hogehoge.jpg
# 引数がない場合はファイルセレクタが立ち上がります。
# ファイラのコンテキストメニューなどに登録して使うと便利でしょう。

# icewmの設定ファイル。フルパスで。
pref='/home/ほげほげ/.icewm/preferences'
# 壁紙のあるディレクトリ。フルパスで。
WALLPAAPERS='/home/ほげほげ/MyPictures/Wallpapers/'

if [ $# = 0 ]; then
cd $WALLPAAPERS
FILE=$(zenity --file-selection --title "Wallpaper Select")
else
FILE=$1
fi
sed --in-place=.bak -e \
's:^DesktopBackgroundImage=.*$:DesktopBackgroundImage="'"${FILE}"'":' $pref
icewmbg -r



設定

 以下二行を自分の環境に合わせて編集してください。
pref='/home/もげげ/.icewm/preferences'
WALLPAAPERS='/home/もげげ/MyPictures/Wallpapers/'


使い方

 そのまま起動すればファイル選択ダイアログが出ます。
 が、このシェルスクリプト単独ではあまりおいしくはないので、ファイラや画像管理ソフトと組み合わせて使うのがいいでしょう。
 ファイラなどのコンテクストメニューに登録しておけば、もっと便利に壁紙を変えることが出来ます。

 私はファイラに rox を利用しているので、こんな感じになります。



 ファイラと組み合わせれば、さくさく壁紙を変更出来るようになるので是非活用してみてください。

2009年8月9日日曜日

Emacsで行を右寄せをする

 昔作ったやつです。
 標準だと、M-x set-justification-right で右寄せしてくれます。がこれだとタブと空白で埋めてくれるので、空白だけで右寄せしてくれるものを作りました。

インストール

  1.  下の方のelispを right-line.el という名前で、~/.lisp などに保存します。
  2.  ~/.emacs

    (require 'right-line)
    (global-set-key "\C-cr" 'justify-right-line) ; 行を右寄せする
    と書いておきます。


使い方

 右寄せしたい行の上にカーソルを持っていき、C-c r とすれば右寄せされます。
 選択範囲内の右寄せも出来ます。
 桁数は C-u 桁数 M-x set-fill-column で。デフォルトだと C-x f かな?

right-line.el


;;; right-line.el --- 右寄せ
;; $Id: right-line.el,v 1.6 2007/10/11 09:55:17 yama Exp yama $
;; last updated : 2007/10/16 15:00:41 JST

;; Copyright (C) 2007 yama

;; Author: yama <yama@localhost>
;; Keywords:

;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; This file is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.

;;; Commentary:

;; 行を右寄せする。範囲選択していれば範囲選択部分を右寄せする。

;;; ToDo


;;; Code:

(defun yama-region-active-p ()
"リージョンアクティブならtを返す.
2007年10月06日(土曜日) 12:45:08 JST by yama"

(if (and transient-mark-mode mark-active) t nil))

(defun right-line ()
"2007年09月15日(土曜日) 14:46:17 JST
カレント行を空白で埋めて、右寄せする"

(interactive)
(save-excursion
(end-of-line)
(let ((ln(- fill-column (current-column))))
(beginning-of-line)
(insert-char ?\ ln))))


(defun right-line-region (start end)
"選択範囲内を空白で埋めて右寄せする。範囲選択されてなければカレント行を右寄せする
2007年10月06日(土曜日) 12:44:41 JST by yama"

(interactive "r")
(save-excursion
(save-restriction
(goto-char start)
(unless (bolp)
(beginning-of-line)
(setq start (point)))
(goto-char end)
(unless (bolp)
(beginning-of-line)
(setq end (point)))
(narrow-to-region start end)
(let ((max-line (count-lines start end))
(count 0))
(goto-char (point-min))
(while (< count max-line)
(right-line)
(next-line)
(setq count (1+ count)))))))

(defun justify-right-line (start end)
"カレント行を右寄せする。範囲選択されているなら範囲内を右寄せする.
2007年10月16日(火曜日) 14:08:05 JST by yama"

(interactive "r")
(if (yama-region-active-p)
(right-line-region start end)
(right-line)))

(provide 'right-line)
;;; right-line.el ends here



 報告書とか文書の末尾の署名なんかに利用すると便利です。
 自分で作って使っていなかったり・・・orz

2009年8月2日日曜日

Emacsの起動時間を調べる

Emacs23.1 がリリースされましたねー。めでたいめでたい。やんややんや。
もっともだいぶ前から使っていたんで新鮮さはないんですが、やっぱりアンチエイリアスの効いたフォントは美しい。

んで、emacs23から追加された関数を使って、Emacsの起動に掛かった時間を表示する機能など。小ネタです。


;;;====================================
;;;; boot-time
;;;====================================
;;; 起動するまでにかかった時間を表示。
(defun boot-time ()
" 起動するまでにかかった時間を表示。"
(interactive)
(message "起動時間:%s秒"
(- (cadr after-init-time) (cadr before-init-time))))


M-x boot-time で起動時間が表示されます。