11月 262011
 

・LVM2 のモジュールをロードし VG を活性化する

# modprobe dm-mod
# vgchange -ay

・LV, VG から PV(HDD) を取り除く

ext3, ext4 ではオンラインでファイルシステムの縮小はできません.
いったん umount してからファイルシステムを縮小する必要があります.
感覚としては FS → LV → VG の順番で小さくする.

# umount /dev/mapper/VolG00-lvroot
# e2fsck -f /dev/mapper/VolG00-lvroot
# resize2fs /dev/mapper/VolG00-lvroot 500G
# lvreduce -L 501G /dev/mapper/VolG00-lvroot
# pvmove /dev/sdb1
# vgreduce VolG00 /dev/sdb1
# pvremove /dev/sdb1
# lvextend -l +100%FREE /dev/mapper/VolG00-lvroot
# resize2fs /dev/mapper/VolG00-lvroot

以上で /dev/sdb1 は自由の身です(fdisk で好きなように).
resize2fs はオプションを指定しなければ空き領域いっぱいにファイルシステムを広げてくれます.

・すでに存在する LV, VG へ PV(HDD)を追加する

こちらは ext3, ext4 でもオンラインでできます.
が,やはり umount してからのほうが安全.
fdisk を使って /dev/sdb1 に LVM(8e)のパーティションを作っておきます.
感覚としては VG → LV → FS の順番で大きくする.

# umount /dev/mapper/VolG00-lvroot
# fdisk /dev/sdb
# pvcreate /dev/sdb1
# vgextend VolG00 /dev/sdb1
# lvextend -l +100%FREE /dev/mapper/VolG00-lvroot
# e2fsck -f /dev/mapper/VolG00-lvroot
# resize2fs /dev/mapper/VolG00-lvroot

resize2fs はオプションを指定しなければ空き領域いっぱいにファイルシステムを広げてくれます.
LVM は デバイス名(/dev/sd?)でなく UUID でディスクを認識しているみたい.
ディスクを追加して既存のディスクのデバイス名が変わってしまっても問題はない(人間は混乱する).

11月 182011
 

一度はやってみたい rm -rf /

さくらのクラウド を使って試してみた.

[root@sacloud ~]# rm -rf /
rm: it is dangerous to operate recursively on `/'
rm: use --no-preserve-root to override this failsafe

むっちゃ親切.

[root@sacloud ~]# rm -rf --no-preserve-root /
[root@sacloud ~]# ls
bash: /bin/ls: No such file or directory

reboot も shutdown ももう何もできない.

11月 072011
 

Git リポジトリを Web 上で閲覧したい時は gitweb を用いているのですが,ベタに表示されるコードほど見づらいものはない,ということで,gitweb でソースコードを syntax highlight させます.

gitweb は highlight というアプリケーションと組み合わせることでコードを自動的にハイライト表示することが可能となっています.

まずは highlight をインストール.

$ sudo yum install highlight

次に gitweb の設定を変更.

# vi /etc/gitweb.conf

gitweb.conf 中の projectroot の設定よりも前に以下を記述する.

$feature{'highlight'}{'default'} =[1];

これだけでハイライト表示してくれるようになったはず.
テーマ(色)を変えたいときは theme_examples から選んで

$ echo "" | highlight -s テーマ名 > /dev/null

としてやれば highlight.css が生成されるのでこの内容を gitweb.css の最後の方にあるスタイルと入れ替えてやればいい.

参考ページ:
day one: gitwebでsyntax highlight
Gitで遊ぶ | ももーい鯖覚書

11月 072011
 

複数人で共有したい Git リポジトリを作成したいときは,まず新しくグループを作成し,ユーザを追加する.

# groupadd project1
# usermod -G project1 user1
# usermod -G project1 user2

次に Git リポジトリを作成する.

$ mkdir project1.git
$ chgrp -R project1 project1.git
$ cd project1.git
$ git init --bare --shared=group

–shared オプションのデフォルトは group になる.
group と all はほぼ同じだが,all にすると全員が read できるようになる.

あとはクライアントから

$ git pull user1@server:/home/git/repos/share/project1.git
$ cd project1
ごちゃごちゃ作業して
$ git commit -a -m "comment"
$ git push origin master
11月 072011
 

新しい環境で Git を使おうとするときは最低限以下の設定を行うようにしている.

$ git config --global user.name "Taro Kobe"
$ git config --global user.email taro.kobe@example.com
$ git config --global color.ui auto