RAID な Btrfs の領域を /etc/fstab でマウント

Btrfs に付属の RAID 機能を使った領域は btrfsctl -a を実行した後でないとマウントできない。なので、/etc/fstab でマウントするには準備が必要となる。

以下のページを参考にさせてもらい、簡単な作業を行った。ありがとうございます。

作業環境は Momonga Linux trunk で、すでに dracut および initramfs への移行は済んでいる。

要するに initramfs から btrfsctl -a が行われるようにすればいいわけだ。

まず、/usr/share/dracut/modules.d/95rootfs-block/{install,mount-root.sh} を下のように書き換えた。

diff -up /usr/share/dracut/modules.d/95rootfs-block/install.orig /usr/share/dracut/modules.d/95rootfs-block/install
--- /usr/share/dracut/modules.d/95rootfs-block/install.orig
+++ /usr/share/dracut/modules.d/95rootfs-block/install
@@ -1,4 +1,5 @@
 #!/bin/sh
+inst btrfsctl
 dracut_install umount
 inst_hook cmdline 95 "$moddir/parse-block.sh"
 inst_hook pre-udev 30 "$moddir/block-genrules.sh"
diff -up /usr/share/dracut/modules.d/95rootfs-block/mount-root.sh.orig /usr/share/dracut/modules.d/95rootfs-block/mount-root.sh
--- /usr/share/dracut/modules.d/95rootfs-block/mount-root.sh.orig
+++ /usr/share/dracut/modules.d/95rootfs-block/mount-root.sh
@@ -1,5 +1,8 @@
 #!/bin/sh
 
+/sbin/modprobe btrfs
+/sbin/btrfsctl -a
+
 . /lib/dracut-lib.sh
 
 filter_rootopts() {

次に、initramfs を再作成。

% sudo dracut -f /boot/initramfs-`uname -r`.img `uname -r`

そして、再起動。無事に Btrfs RAID1 な領域がマウントできた。

しかし、Fedora 13 でもこのような dracut の変更が必要なのだろうかねぇ。