zfs rootがあるんならextfsでできるかな?と
ふとなんとなくやってみた。
bootだけUFSで残りはext3。
不完全ではあるが、成功した模様。
まずFreeBSDマシンを用意。
10-RC1 amd64で実行。
ext2fsのカーネルモジュールを読み込み
e2fsprogsをインストール
kldload ext2fs pkg install e2fsprogs
インストール先のディスクの用意&ファイルシステム作成
インストール先はada1とする
gpart destroy -F ada1
gpart create -s gpt ada1
gpart add -t freebsd-boot -s 128 ada1
gpart add -t freebsd-ufs -s 1G -l BOOT ada1
gpart add -t freebsd-swap -s 4G -l SWAP ada1
gpart add -t linux-data -l ROOT ada1
dd if=/dev/zero of=/dev/ada1p2 bs=512 count=560
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1
newfs /dev/gpt/BOOT
mkfs.ext3 /dev/gpt/ROOT
マウント
mount -t ext2fs /dev/gpt/ROOT /mnt
mkdir /mnt/bootfs
mount -t ufs /dev/gpt/BOOT /mnt/bootfs
インストール
cd /tmp
fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RC1/base.txz
fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RC1/kernel.txz
fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RC1/lib32.txz
cd /mnt
tar xvJf /tmp/base.txz
tar xvJf /tmp/kernel.txz
tar xvJf /tmp/lib32.txz
mv boot bootfs/
ln -s bootfs/boot boot
/mnt/etc/rc.conf 編集
hostname="test"
keymap="jp.106.kbd"
ifconfig_em0="DHCP"
sshd_enable="YES"
dumpdev="NO"
fsck_y_enable="YES"
/mnt/etc/fstabの設定
/dev/gpt/ROOT / ext2fs rw 0 0
/dev/gpt/BOOT /bootfs ufs rw 1 1
/dev/gpt/SWAP none swap sw 0 0
/mnt/boot/loader.confの編集
ext2fs_load="YES"
vfs.root.mountfrom="ext2fs:/dev/gpt/ROOT"
/mnt/etc/resolv.confの編集
nameserver 8.8.8.8
chrootしてe2fsprogsをインストール
chroot /mnt /bin/sh
pkg install e2fsprogs exit
アンマウント
umount /mnt/bootfs
umount /mnt
再起動。
とりあえず起動できる。
問題点はシャットダウン時に正常にアンマウントされずに必ずdirtyになってしまうので、毎回起動時にfsckをして再起動しなくてはいけない。
fstabのfsckを1にしてfsckしてもなぜかマウント出来ないので結局毎度1回再起動しなくてはいけないので正直使い物にはならない。
ext2でもext3でも同じ模様
# df -Th Filesystem Type Size Used Avail Capacity Mounted on /dev/gpt/ROOT ext2fs 113G 598M 107G 1% / devfs devfs 1.0K 1.0K 0B 100% /dev /dev/gpt/BOOT ufs 992M 418M 494M 46% /bootfs