FreeBSDでext3 root (+ UFS2 boot)

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください