今回は、まっさらな SSD を使って、sda1 にインストールしました。インストーラからパーティションを切っても問題ないと思いますが、事前に 10G ほど sda1 を確保してからインストールしました。10G とは小さめですが、btrfs の透過圧縮機能をあてにしたサイズです。わたしの場合、これまでは Fedora を ext4 に入れるとしたら 20G くらいは割り当てていましたが、圧縮機能があれば半分の 10G くらいでも、わたしの用途では十分かなと。
ソフトウェアの選択を Development and Creative Workstation にして、ext4 にインストールした直後だと、約6G ほど消費した状態でした。
btrfs 化は、ライブメディア Fedora-Live-Desktop-x86_64-19-1.iso を利用して、次のように行いました。
※まずは、ライブメディアを起動して、ターミナルを開く ※root 権限を得る # sudo bash ※ext4 のバックアップツールとして dump をインストール # yum install dump ※別の HDD 等にバックアップを行う。わたしの場合は別の ext4 領域を使いました。 # mkdir /mnt_sdb1 # mount /dev/sdb1 /mnt_sdb1 # dump -y -0uf /mnt_sdb1/dump.sda1 /dev/sda1 ※ここで -y は LZO 圧縮するオプションです ※btrfs ファイルシステム作成 # mkfs.btrfs -f /dev/sda1 ※バックアップデータを書き戻す # mkdir /mnt_sda1 # mount -t btrfs -o compress-force=lzo /dev/sda1 /mnt_sda1 # cd /mnt_sda1 # restore -rf /mnt_sdb1/dump.sda1 ※/etc/fstab に書かれている UUID とファイルシステム種別等を書き換える # cd /mnt_sda1 # blkid /dev/sda1 /dev/sda1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" UUID_SUB="yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" TYPE="btrfs" # vi etc/fstab UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / btrfs defaults,compress-force=lzo 1 1 ※initramfs の再作成と GRUB2 の再インストールのため環境設定 # mount -t devtmpfs devtmpfs /mnt_sda1/dev # mount -t devpts devpts /mnt_sda1/dev/pts # mount -t sysfs sysfs /mnt_sda1/sys # mount -t proc proc /mnt_sda1/proc ※initramfs の再作成 # chroot /mnt_sda1 /bin/bash # ls /boot/initramfs-3* /boot/initramfs-3.9.5-301.fc19.x86_64.img ※カーネルバージョン確認 # dracut -f /boot/initramfs-3.9.5-301.fc19.x86_64.img 3.9.5-301.fc19.x86_64 ※GRUB2 の再インストール # grub2-mkconfig > /boot/grub2/grub.cfg # grub2-install /dev/sda # exit ※chroot を抜ける #ライブ DVD を抜けて、sda から起動できれば成功です。 現在の私の環境での、ディスク空き状況は次の通りです。
# cat /etc/redhat-release Fedora release 19 (Schrödinger’s Cat) # df -kT / Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda1 btrfs 10240000 3888960 5950044 40% /
2013-07-08追記
btrfs は swapfile には対応していないそうなので、ご注意を。
https://btrfs.wiki.kernel.org/index.php/FAQ#Does_btrfs_support_swap_files.3F
実際、fallocate , mkswap までは出来ますが、swapon でエラー(invalid argument)になるようです。わたしのマシンはメモリを 8G 積んでおり、swap の必要性を感じませんので、swap レスでいいやと思いましたが、用途によっては zram を使ってもいいかもしれません。
もちろん、別途swapパーティションを作ってもいいわけですが。
2013-10-12追記
まだアルファ版ですが、Fedora 20 でもインストール時には btrfs は指定できず、上記の手順でいけました。
2013-12-07追記
CentOS 6.5 でも、同様の手順で出来ました。Btrfs は RHEL 6.5 においても、まだ Technology Preview 扱いとなっており、安定性がクエスチョンですが、SSD の節約に compress-force=lzo が役立ちます。
2014-04-27追記
RHEL7 beta をインストールしたのですが、やはりインストーラからは btrfs を指定できず。Fedora 19/20 と同様に、いったん ext4 でインストールしたあとに btrfs 化しました。
ただし、今回は試しに btrfs-convert を使ってみました。使い方はいたって簡単で、レスキューモードで起動後に、ext4 としてインストールしたパーティションを指定して実行するだけです。あっという間に変換が完了します。変換すると UUID が変わってしまうので、この記事の手順の fstab の変更の箇所から同様に操作して、btrfs 化に成功しました。
compress-force=lzo を活用したければ、やはりバックアップからリストアしないといけませんが、透過圧縮を使わないなら btrfs-convert のほうが手っ取り早いかと思います。btrfs-convert の仕組みは、次の URL に解説があります。すごい、賢いです。
https://btrfs.wiki.kernel.org/index.php/Conversion_from_Ext3
このように、変換前のイメージが、サブボリューム ext2_saved に保持される方式になっているので、btrfs-convert を利用した場合には、ext2_saved の削除をお忘れなく。
0 件のコメント:
コメントを投稿