コマンドラインによるFreeBSD起動パーティションの作成など
fdisk, disklabel, はもう古いので、知識のアップデートを兼ねて。
MBR時代は fdisk コマンドでスライス切って、disklabel でパーティション分けていたが、GPTが主流になり、パーティションが128個つくれるようになったので、gpartで必要な数のパーティションにわけるのが主流になっているようだ。
新規のドライブなら必要ないが、以前に使用していたのを再利用するなら、以前に使用していたのを再利用するなら、残っているパーティション情報などを削除するために destroy する。
本来であれば、残っているパーティションを1個ずつ delete コマンドで削除して、最後に destroy しないと消すことができないが、destroy に -F オプションで強制削除もできる。
# gpart show ada1 # gpart delete -i 1 ada1 # gpart destroy -F ada1
パーティションを削除したら、新しくGPTでパーティションを作成してく。
# gpart create -s GTP ada1
ブートコードの書き込み
# gpart add -t freebsd-boot -b 40 -s 512 ada1 -t パーティションタイプ -b スタートブロック -s サイズ # gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1 -b ディスクのブートコード -p パーティションのブートコード -i パーティション番号
自分は gmirror にするので、gptboot をインストールしたが、zfsにしたければ、gptzfsboot をインストールする。 以前は freebsd-boot の領域は64kでもまにあっていたのだが、11-RELEASE になってから、gptzfsboot のファイルサイズが増えたりしているので、多めにしておくのがいいらしいが、最大サイズは 545Kまでという制限もある。
EFIブートコードのインストール
# gpart add -t efi -b 1m -s 100m ada1 # dd if=/boot/boot1.efifat of=/dev/ada1p2
EFI用のパーティションを作成して、EFI Application をインストールする。これをしておかないとEFIを使用して起動できない。
EFI Application の本体は /boot/boot1.efi で、EFI パーティションはFAT32にしておけば直接コピーすることも可能
# gpart add -t efi -b 1m -s 100m ada1 # newfs_msdos /dev/ada1p2 # mount -t msdosfs /dev/ada1p2 /mnt # mkdir -p /mnt/EFI/BOOT # copy /boot/boot1.efi /mnt/EFI/BOOT/BOOTx64.EFI
SWAP、UFSパーティションの作成
ここまでできれば後は普通にswapパーティションや、ufsパーティションを作成していく
# gpart add -t freebsd-swap -s 16G ada1 # gpart add -t freebsd-ufs ada1
- s で良を指定しなければ、取れる最大の領域で作成してくれる。