ultradefrag for linux

Linux 関連のコミュニティで defragmentation に関する質問をすると、脊髄反射としか思えない程のスピードで「Linux では defrag なんて不要なんですが何か?」という答が返ってくるものだった。しかしこれは嘘である。たとえ ext4 であっても、巨大なファイルを頻繁に読み書きしていたり、ディスクスペースが逼迫してきたりすれば、当然 fragmentation が生ずる。これは Microsoft が Windows NT 4 で defrag を外していたのが、Windows 2000 以降で復活させていたり、Mac OS X でもバックグラウンドで低負荷時に defragmentation を行っていたりすることからも容易に推測できることである。

少なくとも Debian GNU/Linux においては、distro はそんな脊髄反射的な思想に汚染されてはいない。最近は ext4 を defragmentate できる e4defrag というソフトがちゃんと /usr/sbin に入っている(もっとも、僕はこれを診断モード以外で使ったことがない……ディスクスペースに余裕がある限りにおいて、Linux と ext4 の組み合わせでは defrag が問題になることがないのは事実である)。僕のように Windows・Mac OS X・Linux の間を行ったり来たりしながら日常を過ごしている者としては、NTFS の defragmentation を Linux 上でできると便利なのだが、一時期出ると噂のあった ntfsck も話を聞かなくなったしなあ……と思っていたところに、興味深い記述を発見したのだった。

Advanced NTFS-3G Features というページを見ていたら……:

UltraDefrag for Linux

UltraDefrag is a powerful Open Source Defragmentation tool for the Windows Platform. It can defragment any system files including registry hives and paging file. Also one of the main goals of UltraDefrag is doing the job as fast and reliable as possible.

It is being ported to Linux and NTFS-3G for defragmenting NTFS partitions. Currently only a test version in console mode is available. Please read the included file README.linux for compiling and testing.

そしてページの下の方には、ultradefrag-5.0.0AB.7.zip……beta 版だが、Linux 版 ultradefrag のソースへのリンクがあるではないか!

ultradefrag は、フリーの defrag ツールとしては Piriform Defraggler と並んでよく知られている。sourceforge で開発・公開がなされているというのもあるだろうけれど、この二つのツールはどちらも、パーティション全体だけでなく、ファイル単位での defrag にも対応していることが、その原因かもしれない。

とりあえず、上のリンクからソースの archive を取得してみる。展開して中の document を読むと……はぁはぁ、まだ configure とか使える段階ではないので、自分で Makefile を書き直してくれ、と。当たりをつけるために、ある程度書き換えてから make を走らせ、エラーメッセージを読みながら直して……を行うことにする。

まず、このソースをコンパイルするためには、ntfs-3g と ntfs-3g-dev をインストールしておく必要がある。僕の場合は既に入れてあるので、archive を展開してできる "ultradefrag-5.0.0AB.7" 内のディレクトリ src に入って、Makefile を書き換える。Makefile の修正箇所だけを抜き書きすると:

GCC=gcc
LD=ld
AR=ar
INCL=-I/usr/include/ntfs-3g -Iinclude
COPT=-DPPGC=1 -O2
GCCOPT=-DPPGC=1 -O2
LIB1=/usr/lib/x86_64-linux-gnu
LIB2=/usr/lib/gcc/x86_64-linux-gnu/4.7.1
NTFSLIB=/lib/x86_64-linux-gnu/libntfs-3g.so.*.0.0

……と、こんなところか。distro の違う人は適宜読み換えていただければよろしいだろう。このように Makefile を修正すると、make 一発で、udefrag というバイナリが生成される。このバイナリを /usr/local/sbin に移してから、/usr/local/man/man8 というディレクトリを切って、ultradefrag-5.0.0AB.7/src/man/udefrag.man を /usr/local/man/man8/udefrag.8 という名前でコピーしておけばよろしい。詳細は udefrag に何もオプション・引数を付けずに実行するか、man udefrag で参照していただきたい。

最後に強調しておくけれど、現時点ではこの Linux 版 ultradefrag はあくまでも beta version である。使用にはくれぐれも注意していただき、壊すわけにはいかないパーティションに適用するのは控えられることをお薦めしておく。

2012/08/06(Mon) 19:38:46 | コンピュータ&インターネット
Tittle: Name:

Profile

T.T.Ueda
Tamotsu Thomas UEDA

茨城県水戸市生まれ。

横山大観がかつて学んだ小学校から、旧水戸城址にある中学、高校と進学。この頃から音楽を趣味とするようになる。大学は、学部→修士→博士の各課程に在籍し、某省傘下の研究所に就職、その2ヵ月後に学位を授与される(こういう経緯ですが最終学歴は博士課程「修了」です)。職場の隣の小学校で起こった惨劇は未だに心に深く傷を残している。

その後某自動車関連会社の研究法人で国の研究プロジェクトに参画、プロジェクト終了後は数年の彷徨を経て、某所で教育関連業務に従事。

New Entries

Comment

Categories

Archives(902)

Link

Search

Free

e-mail address:
e-mail address