河豚板ガイド/4-開発編
をテンプレートにして作成
Start:
#navi(河豚板ガイド)
この章では河豚板の内部を理解したり、河豚板をベースに自分...
#contents
*河豚板の技術情報
河豚板はOpenBSDをベースにしているので、その構成物のほとん...
公式のOpenBSDとは異なる河豚板特有の部分については、このサ...
(過去の資料の中には、現状の河豚板と異っている部分もあり...
河豚板のソースコードは https://github.com/ykaw/FuguIta に...
*河豚板を専用マシンにする [#u1400b56]
河豚板は書込み可能なファイルをすべてメモリ上に持っている...
また稼動中にusbfadmによるファイルの保存を行わない限りは、...
このような特徴を利用して、河豚板をベースにして特定のアプ...
このようなシステムを構築するためには、今までに説明してき...
-まず運用環境を整える。~
起動モード0で立ち上げて、各種設定やアプリケーションのイ...
-[[構築した環境をusbfadmにてUSBメモリなどに保存する>fg2:u...
-[[モード3で起動し、保存した環境で立ち上がるようにnoasks...
-ログイン操作なしでアプリケーションが立ち上がるように [[/...
これらの詳細な手順は、このサイトにある [[河豚板でルータを...
#aname(build_fuguita)
*河豚板の構築 [#t980ad46]
河豚板は不定期ではありますが、ライブシステム構築のために...
この構築ツールを使用することで河豚板の配布物と同じものを...
この節では、その河豚板の構築手順を説明します。以下の説明...
-リリース: OpenBSD 7.5
-プラットフォーム: amd64
それ以外の場合は、説明を適宜読み替えて下さい。
>''【メモ】''~
''⇒''この構築ツールでは、i386とamd64プラットフォームでは...
**作業手順 [#ld734943]
作業はすべてroot権限で行います。
***構築環境の準備 [#w7c036c1]
-OpenBSDのオンラインマニュアル[[release(8)>man:release.8]...
-また、[[ports(7)>man:ports.7]]を使用して、rsync, rlwrap,...
河豚板の構築ツールtools-7.5.tar.gzを[[ダウンロード>FuguIt...
# tar xvzpf tools-7.5.tar.gz
構築ツールのトップディレクトリに移ります。
# cd tools-7.5
arm64プラットフォームの場合は、tools-7.5.tar.gzと同時に供...
以下のコマンドを実行し、構築ツールの初期化を行います。
# make init
これにより、構築に必要なディレクトリなどが作成されます。
***河豚板の構築 [#a9ad6923]
OpenBSDの構築で生成したインストールセット (*75.tgz) を河...
# cp RELDIR/*75.tgz install_sets
RELDIRは、[[release(8)>man:release.8]]の中で説明されてい...
>''【メモ】''~
''⇒''install_setsの下にsite75.tgzというファイルを置くと、...
install.siteがsite75.tgzに含まれている場合、その内容が/et...
site75.tgzを加えて河豚板を構築した結果、sysmedia/fuguita-...
portsツリーから作成したrsync, rlwrap, pv(とその依存物であ...
また、rsyncとpvは構築環境自体にもインストールします。
# cp /usr/ports/packages/amd64/all/rsync-*.tgz install_p...
# cp /usr/ports/packages/amd64/all/rlwrap-*.tgz install_...
# cp /usr/ports/packages/amd64/all/pv-*.tgz install_pkgs
# cp /usr/ports/packages/amd64/all/gettext-runtime-*.tgz...
# cp /usr/ports/packages/amd64/all/libiconv-*.tgz instal...
# pkg_add -D unsigned /usr/ports/packages/amd64/all/rsyn...
# pkg_add -D unsigned /usr/ports/packages/amd64/all/pv-*...
>''【メモ】''~
''⇒''インストールセット*75.tgzやパッケージファイルrsync-*...
ただしこの場合、作成される河豚板はそのリリースが公開され...
また、この方法で河豚板を作成する場合でも、/usr/srcや/usr/...
次に、以下のコマンドを実行し、構築環境をセットアップしま...
# make setup
最後に、河豚板LiveDVDを構築します。
# make
***構築後の調整 [#wfda33a7]
''mode0symlinks.cpio.gzの作成''
このファイルは、LiveDVDをモード0で起動した場合の時間短縮...
mode0symlinks.cpio.gzを作成するには、完成したLiveDVDをモ...
このファイルをmode0symlinks.cpio.gz.amd64というファイル名...
''fuguita_sys_mbの調整''
河豚板には、/etc/fuguita/global.confというファイルがあり...
fuguita_sys_mb=1122 # size of sysmedia.img
newdrive_defswap=16M # default swap size at usbfadm newd...
memfstype=mfs # 'mfs' or 'tmpfs'
mfs_max_mb=30720 # mfs hard limit - 30GB
このうち、fuguita_sys_mbは河豚板のシステムを格納するパー...
fuguita_sys_mbの設定値は、LiveDVD構築時に生成されるlivecd...
# echo $(( $(wc -c < livecd.iso)/1024/1024+10 ))
このコマンドで表示された値をlib/global.conf.amd64ファイル...
#aname(livedvd_remaster)
*LiveDVDのリマスタリング [#q529c858]
[[USBメモリの容量に合わせてLiveUSBを作成する>fg3:liveusb_...
>''【メモ】''~
''⇒''この作業は大きなサイズのファイルを扱うので、mfsのサ...
mfsでは足りない場合、他の記録デバイスをマウントしてそちら...
このmaster_dvd.shは、動作中のFuguIta LiveDVD、あるいはFug...
以下にremaster_dvd.shの使用例を示します。
まず、作業用ディレクトリを作成し、sysmedia以下にあるLiveD...
# mkdir work
# cd work
# cp -av /sysmedia .
/sysmedia -> ./sysmedia
/sysmedia/boot -> ./sysmedia/boot
/sysmedia/bsd-fi -> ./sysmedia/bsd-fi
/sysmedia/bsd-fi.mp -> ./sysmedia/bsd-fi.mp
/sysmedia/boot.catalog -> ./sysmedia/boot.catalog
/sysmedia/cdboot -> ./sysmedia/cdboot
/sysmedia/cdbr -> ./sysmedia/cdbr
/sysmedia/etc -> ./sysmedia/etc
/sysmedia/etc/boot.conf -> ./sysmedia/etc/boot.conf
/sysmedia/etc/random.seed -> ./sysmedia/etc/random.seed
/sysmedia/fuguita-6.9-amd64.ffsimg -> ./sysmedia/fuguita...
# ls -l
total 8
drwxr-xr-x 3 root wheel 432 May 11 09:21 sysmedia
コピーされたsysmediaディレクトリ内でremaster_dvd.shを実行...
基本的にはこれだけです。
# cd sysmedia
# ls -l
total 2008728
-rw-r--r-- 1 root wheel 90496 May 10 20:57 boot
-rwxr--r-- 1 root wheel 2048 May 9 12:31 boot.catalog
-rw-r--r-- 1 root wheel 10273019 May 10 21:04 bsd-fi
-rw-r--r-- 1 root wheel 10302063 May 10 21:04 bsd-f...
-rw-r--r-- 1 root bin 91668 May 10 01:31 cdboot
-rw-r--r-- 1 root bin 2048 May 10 01:31 cdbr
drwxr-xr-x 2 root wheel 96 Apr 17 2014 etc
-rw-r--r-- 1 root wheel 1007681536 May 10 21:08 fugui...
# remaster_dvd.sh
mkhybrid 1.12b5.1
Scanning .
Scanning ./etc
Size of boot image is 4 sectors -> No-emulation CD boot ...
Total translation table size: 0
Total rockridge attributes bytes: 1111
Total directory bytes: 2048
Path table size(bytes): 22
502200 extents written (980 Mb)
remaster_dvd.shの実行が完了すると、作業用ディレクトリにIS...
# ls -l ..
total 2008808
-rw-r--r-- 1 root wheel 1028505600 May 14 02:34 FuguI...
drwxr-xr-x 3 root wheel 384 May 14 02:34 sysmedia
# ls -l
total 2008720
-rw-r--r-- 1 root wheel 90496 May 10 20:57 boot
-rwxr--r-- 1 root wheel 2048 May 14 02:34 boot.catalog
-rw-r--r-- 1 root wheel 10273019 May 10 21:04 bsd-fi
-rw-r--r-- 1 root wheel 10302063 May 10 21:04 bsd-f...
-rw-r--r-- 1 root bin 91668 May 10 01:31 cdboot
-rw-r--r-- 1 root bin 2048 May 10 01:31 cdbr
drwxr-xr-x 2 root wheel 96 Apr 17 2014 etc
-rw-r--r-- 1 root wheel 1007681536 May 10 21:08 fugui...
sysmedia中にfuguita-6.9-amd64.ffsimgというファイルがあり...
このファイルツリー内のファイルを修正することで、LiveDVDを...
# vnconfig vnd0 fuguita-6.9-amd64.ffsimg
# mount /dev/vnd0a /mnt
# ls -l /mnt
total 52
-rw-r--r-- 1 root wheel 578 May 7 17:43 .cshrc
-rw-r--r-- 1 root wheel 468 May 7 17:43 .profile
drwxr-xr-x 2 root wheel 512 May 7 17:43 altroot
drwxr-xr-x 2 root wheel 1024 May 7 17:46 bin
drwxr-xr-x 2 root wheel 512 May 8 04:16 dev
drwxr-xr-x 23 root wheel 1536 May 8 04:35 etc
drwxr-xr-x 2 root wheel 512 May 7 17:43 home
drwxr-xr-x 2 root wheel 512 May 7 17:43 mnt
drwx------ 3 root wheel 512 May 8 04:35 root
drwxr-xr-x 2 root wheel 1536 May 7 17:46 sbin
lrwxrwx--- 1 root wheel 11 May 7 17:43 sys -> usr...
drwxrwxrwt 2 root wheel 512 May 8 04:19 tmp
drwxr-xr-x 14 root wheel 512 May 8 04:09 usr
drwxr-xr-x 23 root wheel 512 May 7 17:43 var
.... (カスタマイズ作業) ...
カスタマイズが完了したら、ファイルシステムイメージを閉じ...
# umount /mnt
# vnconfig -u vnd0
# remaster_dvd.sh
mkhybrid 1.12b5.1
Scanning .
Scanning ./etc
:
:
*LiveUSBディスクイメージのリマスタリング [#obdef877]
この節では、LiveUSBのディスクイメージファイルを作成する方...
usbfadm の newdrive を実行します;
? : ? ->newdrive
Please make sure the device inserted.
Then press ENTER ->
==== disk(s) and vnode devices =========================...
sd0 at scsibus1 targ 0 lun 0: <ATA, Hitachi HTS72757, JF...
sd0: 715404MB, 512 bytes/sector, 1465149168 sectors
sd1 at scsibus2 targ 1 lun 0: <UFD 3.0, Silicon-Power32G...
sd1: 29624MB, 512 bytes/sector, 60669952 sectors
sd2 at scsibus5 targ 1 lun 0: <BUFFALO, USB Flash Disk, ...
sd2: 7788MB, 512 bytes/sector, 15950592 sectors
img: create FuguIta raw disk image on current directory
========================================================...
Enter the name of device which FuguIta will be installed...
Enter size of a vnode device file.
You can add suffix K, M, G or T (otherwise considered 'b...
->2g ...
...
2048+0 records in
2048+0 records out
2147483648 bytes transferred in 3.076 secs (698129518 by...
Disk: vnd0 geometry: 41943/1/100 [4194304 Sectors]
Offset: 0 Signature: 0x0
Starting Ending LBA Info:
#: id C H S - C H S [ start: s...
--------------------------------------------------------...
0: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
Select partition type:
1: [MBR]
2: GPT
3: Hybrid (not recommended if you wish modify partiti...
->
~ 略 ~
** Phase 5 - Check Cyl groups
3 files, 3 used, 386996 free (20 frags, 48372 blocks, 0....
? : ? ->bye
Bye bye...
$
以上の操作でカレントディレクトリ上にディスクイメージファ...
#navi(河豚板ガイド)
End:
#navi(河豚板ガイド)
この章では河豚板の内部を理解したり、河豚板をベースに自分...
#contents
*河豚板の技術情報
河豚板はOpenBSDをベースにしているので、その構成物のほとん...
公式のOpenBSDとは異なる河豚板特有の部分については、このサ...
(過去の資料の中には、現状の河豚板と異っている部分もあり...
河豚板のソースコードは https://github.com/ykaw/FuguIta に...
*河豚板を専用マシンにする [#u1400b56]
河豚板は書込み可能なファイルをすべてメモリ上に持っている...
また稼動中にusbfadmによるファイルの保存を行わない限りは、...
このような特徴を利用して、河豚板をベースにして特定のアプ...
このようなシステムを構築するためには、今までに説明してき...
-まず運用環境を整える。~
起動モード0で立ち上げて、各種設定やアプリケーションのイ...
-[[構築した環境をusbfadmにてUSBメモリなどに保存する>fg2:u...
-[[モード3で起動し、保存した環境で立ち上がるようにnoasks...
-ログイン操作なしでアプリケーションが立ち上がるように [[/...
これらの詳細な手順は、このサイトにある [[河豚板でルータを...
#aname(build_fuguita)
*河豚板の構築 [#t980ad46]
河豚板は不定期ではありますが、ライブシステム構築のために...
この構築ツールを使用することで河豚板の配布物と同じものを...
この節では、その河豚板の構築手順を説明します。以下の説明...
-リリース: OpenBSD 7.5
-プラットフォーム: amd64
それ以外の場合は、説明を適宜読み替えて下さい。
>''【メモ】''~
''⇒''この構築ツールでは、i386とamd64プラットフォームでは...
**作業手順 [#ld734943]
作業はすべてroot権限で行います。
***構築環境の準備 [#w7c036c1]
-OpenBSDのオンラインマニュアル[[release(8)>man:release.8]...
-また、[[ports(7)>man:ports.7]]を使用して、rsync, rlwrap,...
河豚板の構築ツールtools-7.5.tar.gzを[[ダウンロード>FuguIt...
# tar xvzpf tools-7.5.tar.gz
構築ツールのトップディレクトリに移ります。
# cd tools-7.5
arm64プラットフォームの場合は、tools-7.5.tar.gzと同時に供...
以下のコマンドを実行し、構築ツールの初期化を行います。
# make init
これにより、構築に必要なディレクトリなどが作成されます。
***河豚板の構築 [#a9ad6923]
OpenBSDの構築で生成したインストールセット (*75.tgz) を河...
# cp RELDIR/*75.tgz install_sets
RELDIRは、[[release(8)>man:release.8]]の中で説明されてい...
>''【メモ】''~
''⇒''install_setsの下にsite75.tgzというファイルを置くと、...
install.siteがsite75.tgzに含まれている場合、その内容が/et...
site75.tgzを加えて河豚板を構築した結果、sysmedia/fuguita-...
portsツリーから作成したrsync, rlwrap, pv(とその依存物であ...
また、rsyncとpvは構築環境自体にもインストールします。
# cp /usr/ports/packages/amd64/all/rsync-*.tgz install_p...
# cp /usr/ports/packages/amd64/all/rlwrap-*.tgz install_...
# cp /usr/ports/packages/amd64/all/pv-*.tgz install_pkgs
# cp /usr/ports/packages/amd64/all/gettext-runtime-*.tgz...
# cp /usr/ports/packages/amd64/all/libiconv-*.tgz instal...
# pkg_add -D unsigned /usr/ports/packages/amd64/all/rsyn...
# pkg_add -D unsigned /usr/ports/packages/amd64/all/pv-*...
>''【メモ】''~
''⇒''インストールセット*75.tgzやパッケージファイルrsync-*...
ただしこの場合、作成される河豚板はそのリリースが公開され...
また、この方法で河豚板を作成する場合でも、/usr/srcや/usr/...
次に、以下のコマンドを実行し、構築環境をセットアップしま...
# make setup
最後に、河豚板LiveDVDを構築します。
# make
***構築後の調整 [#wfda33a7]
''mode0symlinks.cpio.gzの作成''
このファイルは、LiveDVDをモード0で起動した場合の時間短縮...
mode0symlinks.cpio.gzを作成するには、完成したLiveDVDをモ...
このファイルをmode0symlinks.cpio.gz.amd64というファイル名...
''fuguita_sys_mbの調整''
河豚板には、/etc/fuguita/global.confというファイルがあり...
fuguita_sys_mb=1122 # size of sysmedia.img
newdrive_defswap=16M # default swap size at usbfadm newd...
memfstype=mfs # 'mfs' or 'tmpfs'
mfs_max_mb=30720 # mfs hard limit - 30GB
このうち、fuguita_sys_mbは河豚板のシステムを格納するパー...
fuguita_sys_mbの設定値は、LiveDVD構築時に生成されるlivecd...
# echo $(( $(wc -c < livecd.iso)/1024/1024+10 ))
このコマンドで表示された値をlib/global.conf.amd64ファイル...
#aname(livedvd_remaster)
*LiveDVDのリマスタリング [#q529c858]
[[USBメモリの容量に合わせてLiveUSBを作成する>fg3:liveusb_...
>''【メモ】''~
''⇒''この作業は大きなサイズのファイルを扱うので、mfsのサ...
mfsでは足りない場合、他の記録デバイスをマウントしてそちら...
このmaster_dvd.shは、動作中のFuguIta LiveDVD、あるいはFug...
以下にremaster_dvd.shの使用例を示します。
まず、作業用ディレクトリを作成し、sysmedia以下にあるLiveD...
# mkdir work
# cd work
# cp -av /sysmedia .
/sysmedia -> ./sysmedia
/sysmedia/boot -> ./sysmedia/boot
/sysmedia/bsd-fi -> ./sysmedia/bsd-fi
/sysmedia/bsd-fi.mp -> ./sysmedia/bsd-fi.mp
/sysmedia/boot.catalog -> ./sysmedia/boot.catalog
/sysmedia/cdboot -> ./sysmedia/cdboot
/sysmedia/cdbr -> ./sysmedia/cdbr
/sysmedia/etc -> ./sysmedia/etc
/sysmedia/etc/boot.conf -> ./sysmedia/etc/boot.conf
/sysmedia/etc/random.seed -> ./sysmedia/etc/random.seed
/sysmedia/fuguita-6.9-amd64.ffsimg -> ./sysmedia/fuguita...
# ls -l
total 8
drwxr-xr-x 3 root wheel 432 May 11 09:21 sysmedia
コピーされたsysmediaディレクトリ内でremaster_dvd.shを実行...
基本的にはこれだけです。
# cd sysmedia
# ls -l
total 2008728
-rw-r--r-- 1 root wheel 90496 May 10 20:57 boot
-rwxr--r-- 1 root wheel 2048 May 9 12:31 boot.catalog
-rw-r--r-- 1 root wheel 10273019 May 10 21:04 bsd-fi
-rw-r--r-- 1 root wheel 10302063 May 10 21:04 bsd-f...
-rw-r--r-- 1 root bin 91668 May 10 01:31 cdboot
-rw-r--r-- 1 root bin 2048 May 10 01:31 cdbr
drwxr-xr-x 2 root wheel 96 Apr 17 2014 etc
-rw-r--r-- 1 root wheel 1007681536 May 10 21:08 fugui...
# remaster_dvd.sh
mkhybrid 1.12b5.1
Scanning .
Scanning ./etc
Size of boot image is 4 sectors -> No-emulation CD boot ...
Total translation table size: 0
Total rockridge attributes bytes: 1111
Total directory bytes: 2048
Path table size(bytes): 22
502200 extents written (980 Mb)
remaster_dvd.shの実行が完了すると、作業用ディレクトリにIS...
# ls -l ..
total 2008808
-rw-r--r-- 1 root wheel 1028505600 May 14 02:34 FuguI...
drwxr-xr-x 3 root wheel 384 May 14 02:34 sysmedia
# ls -l
total 2008720
-rw-r--r-- 1 root wheel 90496 May 10 20:57 boot
-rwxr--r-- 1 root wheel 2048 May 14 02:34 boot.catalog
-rw-r--r-- 1 root wheel 10273019 May 10 21:04 bsd-fi
-rw-r--r-- 1 root wheel 10302063 May 10 21:04 bsd-f...
-rw-r--r-- 1 root bin 91668 May 10 01:31 cdboot
-rw-r--r-- 1 root bin 2048 May 10 01:31 cdbr
drwxr-xr-x 2 root wheel 96 Apr 17 2014 etc
-rw-r--r-- 1 root wheel 1007681536 May 10 21:08 fugui...
sysmedia中にfuguita-6.9-amd64.ffsimgというファイルがあり...
このファイルツリー内のファイルを修正することで、LiveDVDを...
# vnconfig vnd0 fuguita-6.9-amd64.ffsimg
# mount /dev/vnd0a /mnt
# ls -l /mnt
total 52
-rw-r--r-- 1 root wheel 578 May 7 17:43 .cshrc
-rw-r--r-- 1 root wheel 468 May 7 17:43 .profile
drwxr-xr-x 2 root wheel 512 May 7 17:43 altroot
drwxr-xr-x 2 root wheel 1024 May 7 17:46 bin
drwxr-xr-x 2 root wheel 512 May 8 04:16 dev
drwxr-xr-x 23 root wheel 1536 May 8 04:35 etc
drwxr-xr-x 2 root wheel 512 May 7 17:43 home
drwxr-xr-x 2 root wheel 512 May 7 17:43 mnt
drwx------ 3 root wheel 512 May 8 04:35 root
drwxr-xr-x 2 root wheel 1536 May 7 17:46 sbin
lrwxrwx--- 1 root wheel 11 May 7 17:43 sys -> usr...
drwxrwxrwt 2 root wheel 512 May 8 04:19 tmp
drwxr-xr-x 14 root wheel 512 May 8 04:09 usr
drwxr-xr-x 23 root wheel 512 May 7 17:43 var
.... (カスタマイズ作業) ...
カスタマイズが完了したら、ファイルシステムイメージを閉じ...
# umount /mnt
# vnconfig -u vnd0
# remaster_dvd.sh
mkhybrid 1.12b5.1
Scanning .
Scanning ./etc
:
:
*LiveUSBディスクイメージのリマスタリング [#obdef877]
この節では、LiveUSBのディスクイメージファイルを作成する方...
usbfadm の newdrive を実行します;
? : ? ->newdrive
Please make sure the device inserted.
Then press ENTER ->
==== disk(s) and vnode devices =========================...
sd0 at scsibus1 targ 0 lun 0: <ATA, Hitachi HTS72757, JF...
sd0: 715404MB, 512 bytes/sector, 1465149168 sectors
sd1 at scsibus2 targ 1 lun 0: <UFD 3.0, Silicon-Power32G...
sd1: 29624MB, 512 bytes/sector, 60669952 sectors
sd2 at scsibus5 targ 1 lun 0: <BUFFALO, USB Flash Disk, ...
sd2: 7788MB, 512 bytes/sector, 15950592 sectors
img: create FuguIta raw disk image on current directory
========================================================...
Enter the name of device which FuguIta will be installed...
Enter size of a vnode device file.
You can add suffix K, M, G or T (otherwise considered 'b...
->2g ...
...
2048+0 records in
2048+0 records out
2147483648 bytes transferred in 3.076 secs (698129518 by...
Disk: vnd0 geometry: 41943/1/100 [4194304 Sectors]
Offset: 0 Signature: 0x0
Starting Ending LBA Info:
#: id C H S - C H S [ start: s...
--------------------------------------------------------...
0: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
1: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
2: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
3: 00 0 0 0 - 0 0 0 [ 0: 0 ] unused
Select partition type:
1: [MBR]
2: GPT
3: Hybrid (not recommended if you wish modify partiti...
->
~ 略 ~
** Phase 5 - Check Cyl groups
3 files, 3 used, 386996 free (20 frags, 48372 blocks, 0....
? : ? ->bye
Bye bye...
$
以上の操作でカレントディレクトリ上にディスクイメージファ...
#navi(河豚板ガイド)
Page: