term タグ別の記事一覧

Sambaで共有したディレクトリ内のパーミッション問題

 Sambaで共有したLinuxマシン上のディレクトリにWindowsからアクセスした際、作成したファイルのパーミッションが755とかになってしまう問題がある。この場合、smb.confで「map archive = no」を指定すると解決する。副作用などについてはググれ。

fdiskでパーティションのリサイズを行う

 パーティションのリサイズをするにはGNU partedを使うのが一般的なようです。partedはファイルシステムのリサイズも同時にやってくれる便利なツールですが、CentOS 6.3のインストールメディアに含まれているpartedはext4には対応していないようで、ext4ファイルシステムのリサイズはできません。ext4ファイルシステムのリサイズ自体はresize2fsを使って簡単に実行できるわけですが、どっちにしろパーティションのリサイズは必要になります。

 ということで、パーティションのリサイズをするためのツールを探したわけですが、なかなか見つからない。パーティション操作の定番といえばfdiskですが、リサイズというコマンドはない。そこではっと気付いたのですが、fdiskはよく考えればパーティションテーブルの操作のみを行うのであって、ファイルシステムには影響を与えません。と言うことで、リサイズしたいパーティションを削除して、そのうえで新たなパーティションを作成すればリサイズと同様の処理になるわけです。これには気付かなかった。ただ、このときパーティションのサイズがファイルシステムのサイズよりも大きくなるように気を付けなければなりません。パーティションを拡大する場合はあまり問題にはなりませんが、縮小する場合はサイズを間違えるとちょっとまずいことになる可能性があります(ただし、ext4の場合はマウント時にチェックが行われてファイルシステムのサイズよりもパーティションサイズが小さい場合はエラーが発生する)。

 ただ、fdiskでのサイズ計算はバイト単位ではなく、ブロック単位でサイズを指定する関係上ちょっと面倒臭い。これについてはまた後日(覚えていれば)。

NICのデバイス名を変更する

 CentOSにおいて、複数のNICを搭載しているマシンでNICに対応しているデバイス名を変更したい場合、次のような手順をとれば良い。

 まず、ネットワークを停止させる。

# service network stop

 次に、NICのモジュールをいったんアンロードする。たとえば「e1000e」モジュールを使っている場合、次のようにする。

# rmmod e1000e

 udevの設定ファイルを編集する。ネットワークデバイスについてのMACアドレスとデバイス名の対応付けは、「/etc/udev/rules.d/70-persistent-net.rules」というファイルに記述されている。

 このファイルを適当に編集したら、「/etc/sysconfig/network-scripts/ifcfg-eth?」ファイルの「HWADDR」行を削除する。

 以上で設定完了。この状態で次のようにネットワークを再起動させると、デバイスファイル名とNICの対応が変更されているはず。

# service network start

x86_64版CentOS 5.5で64ビット版FirefoxでJavaプラグインを使う

 x86_64版CentOS 5.5のFirefoxでのJavaプラグイン導入に軽くハマったのでメモ。

 x86_64版のCentOS 5でFirefoxにJavaプラグインを導入したい場合、ググると「32ビット版Firefox+32ビット版Javaランタイムを使え」という話がぼちぼちとヒットするわけですが、とりあえずJavaプラグインだけを使いたい場合は64ビット版でも可能なようです。ていうか自分の場合、32ビット版を導入しようとしたらうまくいきませんでした……。

 ということで、手順。まず64ビット版Firefoxをインストール。

$ sudo yum install firefox  # 64ビット版Firefoxをインストール

 続いてjava.comのダウンロードページから「Linux x64 RPM」をダウンロード。

「Linux x86 RPM」をダウンロードする

「Linux x86 RPM」をダウンロードする

 RPMと書いてあるが、ダウンロードしたファイルはRPMではなくインストーラなので、root権限で実行してインストール。自動的にRPMがインストールされる。

$ chmod +x jre-6u21-linux-x64-rpm.bin
$ sudo ./jre-6u21-linux-x64-rpm.bin

 続いて設定。インストールしたjreを利用するようalternativesコマンドで指定。

$ sudo /usr/sbin/alternatives --install /usr/bin/java java /usr/java/jre1.6.0_21/bin/java 2
$ sudo /usr/sbin/alternatives --config java

 最後にmozilla用プラグインフォルダにプラグインのシンボリックリンクを張って完了。

$ cd /usr/lib64/mozilla/plugins/
$ sudo ln -sf usr/java/jre1.6.0_21/lib/amd64/libnpjp2.so .

 あとはFirefoxでabout:pluginsを開きプラグインが正しくインストールされているか確認したり、java.comにアクセスして動作を確認するなり適当にどうぞ。

Gitでローカルファイルのバックアップ

 Gitでローカルファイルの差分バックアップをやってみるテスト。

前提:

  • ミラーリングされているファイルサーバーがある
  • いままでは作業用PCがクラッシュしても大丈夫なように、作業後にいちいちファイルをファイルサーバー中のディレクトリに上書きコピーしていた
  • ファイル数が多くなる/容量が大きくなると面倒
  • これだと履歴管理ができない(Emacsの~.1のようなバックアップファイルに頼ることに)

 ということで、下記の手順でGitで差分バックアップをやってみる。

  1. 作業ディレクトリをgitリポジトリ化する。

    $ git init
    $ git add <対象ファイル>
    $ git commit -m “<コメント>”
    

  2. ファイルサーバーにgitのbareリポジトリを作る

    $ cd <バックアップディレクトリ>
    $ mkdir <適当なディレクトリ名>.git
    $ cd <ディレクトリ名>.git
    $ git init –bare
    

  3. ファイルサーバー内のbareリポジトリにコミット

    $ cd <作業ディレクトリ>
    $ git remote add origin <ファイルサーバー上のbareリポジトリのパス>
    $ git push master:master
    

 あとは作業が一段落したタイミングごとにコミット+pushをしていけばいいだけのはず。しかしこういう目的で使い出すとWindows上で動く、使いやすいGUIフロントエンドがほしくなるところではある。