gconcat しかないのか

CentOS なんか使ってると、LVM 、ボリュームマネージャみたいなのがあって
インストール時に、2つのディスクを 1つに扱ったりします。

FreeBSD だと、どうすればいいんだろうということで探してみたところ、gconcat (geom concat)というのがありました。

FreeBSDインストーラである sysinstall をつかって、gconcat を使おうとしたところ
Fixit モードに入って、gconcat をロードして、論理スライスを作成してインストールするらしいですが、
いかんせん、sysinstall でのパーティション設定に、/dev/concat 以下が出てきたりしません。

仕方がないので、普通にインストール、dump 、ftp転送、手作業(FreeSBIEを使って)パーティション作成、restore
という手順で、1 TByte のディスクを 2 つ合わせました。

シリアル ATA なので、/dev/ad4 /dev/ad6 というデバイスで進めています。


ad4 に普通にインストール(minimum)
/ /usr /var /tmp を分ける(そんときの気分)

freesbie で起動

ファイルシステムをマウント

# fdisk -BI /dev/ad6
# bsdlabel -w /dev/ad6s1
# newfs -U -O2 /dev/ad6s1a

# mount /dev/ad6s1a /mnt/ufs.1

# dump 0af - /dev/ad4s1a > /mnt/ufs.1/root.dump
# dump 0af - /dev/ad4s1d > /mnt/ufs.1/usr.dump
# dump 0af - /dev/ad4s1e > /mnt/ufs.1/var.dump

root.dump, usr.dump, var.dump を ftp で他のサーバにアップロード

# umount /mnt/ufs.1

gconcat の作成

# gconcat load -v
# gconcat label gc0 /dev/ad4 /dev/ad6

初期化

# fdisk -BI /dev/concat/gc0
# bsdlabel -w /dev/concat/gc0s1

ラベルの編集
/ 1G
/usr 8G
/var 2G
/tmp 1G
/opt 1.7T

# bsdlabel -e /dev/concat/gc0s1

中身はこんなカンジ

a: 2097152 4194304 4.2BSD 2048 16384 28552
b: 4194304 0 swap
c: 3907040067 0 unused 0 0 # "raw" part, don't edit
d: 16777216 6291456
e: 4194304 23068672
f: 2097152 27262976
g: 3877679939 29360128

それぞれを newfs

# newfs -U /dev/concat/gc0s1a
# newfs -U -O2 /dev/concat/gc0s1d
# newfs -U -O2 /dev/concat/gc0s1e
# newfs -U -O2 /dev/concat/gc0s1f
# newfs -U -O2 /dev/concat/gc0s1g

それぞれをマウント(gc0s1f は /tmp にする予定だから無視)

# mount /dev/concat/gc0s1a /mnt/ufs.1
# mount /dev/concat/gc0s1d /mnt/ufs.2
# mount /dev/concat/gc0s1e /mnt/ufs.3
# mount /dev/concat/gc0s1g /mnt/ufs.4

# cd /mnt/ufs.4

ftpサーバにアップロードした dumpファイルを持ってくる

# ls /mnt/ufs.4
root.dump usr.dump var.dump

# cd /mnt/ufs.1
# restore -rf /mnt/ufs.4/root.dump

# cd /mnt/ufs.2
# restore -rf /mnt/ufs.4/usr.dump

# cd /mnt/ufs.3
# restore -rf /mnt/ufs.4/var.dump

fstab と loader.conf の編集

# vi /mnt/ufs.1/etc/fstab

# Device Mountpoint FStype Options Dump Pass#
/dev/concat/gc0s1b none swap sw 0 0
/dev/concat/gc0s1a / ufs rw 1 1
/dev/concat/gc0s1f /tmp ufs rw 2 2
/dev/concat/gc0s1d /usr ufs rw 2 2
/dev/concat/gc0s1e /var ufs rw 2 2
/dev/concat/gc0s1g /opt ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0

# vi /mnt/ufs.1/boot/loader.conf
geom_concat_load="YES"

FreeSBIEを再起動して、CDROMを抜く