2008年4月8日 (火曜日)

08:00:57 # Life LVM 関連のコード。 grub の LVM 関連でバグを踏んだのですが、コードで追いかけてみると結構おもしろいですね。 grub のソースコードの disk/lvm.c, include/grub/lvm.h あたりで実装されているようです。 で、コードを読んでいて壮絶な違和感を感じるわけです。なんだか、ディスク上のファイルシステムとかのメタデータの データ形式っていうのはビットマップデータで がちがちに管理しているべきというような先入観があったんですが、 なんかコードは文字列処理をしてます。で、ディスクの中身を lv で見てみたら本当に文字列がありました。 期待していたのと違ったので新鮮な驚きを感じました。

@vgpbuilder {
id = "C5yFF6-1EEq-Wu8L-zZL1-aVXA-REg4-1cAM03"
seqno = 1
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 8192
max_lv = 0
max_pv = 0

physical_volumes {

pv0 {
id = "PP0w9u-WjpS-cPKx-d4VM-5vAR-LZKQ-MvaZ7K"
device = "/dev/sda4"

status = ["ALLOCATABLE"]
pe_start = 384
pe_count = 4524
}
}

}
# Generated by LVM2: Fri Jun  2 22:52:52 2006

contents = "Text Format Volume Group"
version = 1

description = ""

creation_host = "dancer64"      # Linux dancer64 2.6.17-rc5dancer-gba8f5bab-dirty #1 PREEMPT Thu Jun 1 19:50:07 JST 2006 x86_64
creation_time = 1149256372      # Fri Jun  2 22:52:52 2006
	
Junichi Uekawa

$Id: dancer-diary.el,v 1.92 2007/08/30 21:46:09 dancer Exp $