ブートディスクを作る練習
GPT関連のコマンドまとめるとこう。
gpt create wd1 gpt add -i 1 -b 80 -s Size -t ffs wd1 dkctl wd1 addwedge DiskName 80 Size ffs newfs -O2 dk0 (mountして/からファイルをコピー) gpt biosboot -i 1 wd1 installboot /dev/rdk0 /usr/mdec/bootxx_ffsv2
wd1: <QEMU HARDDISK> wd1: drive supports 16-sector PIO transfers, LBA48 addressing wd1: 2048 MB, 4161 cyl, 16 head, 63 sec, 512 bytes/sect x 4194304 sectors
というディスク。gptで / と /usr パーティションを作ったところに システムをコピーして gpt な / から起動できるようにしよう,おー。
さいしょは空っぽ
gpt show wd1
start size index contents
0 4194304
新規にgpt
gpt create wd1 gpt show wd1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 4194237 4194271 32 Sec GPT table 4194303 1 Sec GPT header
indexの1を/に,indexの2を/usrにしてみる。/を1GBで,残りを/usrで。 まず / のぶん。
gpt add -i 1 -b 80 -s $((1*1024**3/512)) -t ffs wd1 Partition added, use: dkctl wd1 addwedge <wedgename> 80 2097152 <type> to create a wedge for it dkctl wd1 addwedge foo 80 $((1*1024**3/512)) ffs dk0 created successfully. newfs -O2 dk0 /dev/rdk0: 1024.0MB (2097152 sectors) block size 16384, fragment size 2048 using 6 cylinder groups of 170.67MB, 10923 blks, 21184 inodes. super-block backups (for fsck_ffs -b #) at: 160, 349696, 699232, 1048768, 1398304, 1747840,
次/usrは残り全部なので -s は省略。
gpt add -i 2 -b $((80+1*1024**3/512)) -t ffs wd1 Partition added, use: dkctl wd1 addwedge <wedgename> 2097232 2097039 <type> to create a wedge for it dkctl wd1 addwedge bar $((80+1*1024**3/512)) 2097039 ffs dk1 created successfully. newfs -O2 dk1 /dev/rdk1: 1023.9MB (2097036 sectors) block size 16384, fragment size 2048 using 6 cylinder groups of 170.67MB, 10923 blks, 21184 inodes. super-block backups (for fsck_ffs -b #) at: 160, 349696, 699232, 1048768, 1398304, 1747840,
ディスクが揃った。確認。
gpt show wd1 start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 46 80 2097152 1 GPT part - NetBSD FFSv1/FFSv2 2097232 2097039 2 GPT part - NetBSD FFSv1/FFSv2 4194271 32 Sec GPT table 4194303 1 Sec GPT header dkctl wd1 listwedges /dev/rwd1d: 2 wedges: dk0: ef11eeb6-9f69-11e3-9678-525400123456, 2097152 blocks at 80, type: ffs dk1: ef11f2cc-9f69-11e3-9678-525400123456, 2097039 blocks at 2097232, type: ffs
mountしてファイルをコピー
cd / mount -o async,noatime /dev/dk0 /mnt mkdir /mnt/usr mount -o async,noatime /dev/dk1 /mnt/usr tar lcf - .|tar xpfC - /mnt
fstabを変更
vi /mnt/etc/fstab
→ / を /dev/dk0, /usr を /dev/dk1 に。
bootcode書き込み
gpt biosboot -i 1 wd1 installboot -v /dev/rdk0 /usr/mdec/bootxx_ffsv2
wd0を外してブート
qemu -hdb wd1.img
確認
df -htffs
Filesystem Size Used Avail %Cap Mounted on
/dev/dk0 993M 158M 785M 16% /
/dev/dk1 993M 745M 198M 78% /usr
でも,gptはraidframeにするとブートできない問題が。