This page is archived.
Current active BBS is FuguIta/BBS.

Mouting FFS from CD-ROM

kaw? (2009-09-12 (土) 19:38:45)

今まで、CD-ROMの内容は /fuguita にマウントされていましたが、この方法を変更しました。
CD-ROMあるいはUSBメモリに格納された河豚板のファイルツリーが /fuguita下に見えるのは今までどおりですが、現バージョンでは物理メディアが提供するファイルシステムにはFFS形式のディスクイメージを単一のファイルとして格納し、そのイメージをvnconfigを使ってディスクデバイスにマッピングしたうえでマウントを行います。
わかりにくいので、実物を見てみます。

$ df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/rd0a      1.6M    1.4M    167K    89%    /
/dev/cd0a      655M    655M      0B   100%    /bootmedia
/dev/svnd3a    626M    579M   46.4M    93%    /fuguita
mfs:22096      498M   21.2M    452M     4%    /mfs

$ ls -l /bootmedia
total 1340808
-rw-r--r--  1 root  1001       43092 Sep 10 21:10 boot
-r--r--r--  1 root  wheel       2048 Sep 12 15:56 boot.catalog
-rw-r--r--  1 root  1001     4012779 Sep 10 21:39 bsd
-rw-r--r--  1 root  1001     4022694 Sep 10 21:39 bsd.mp
-rw-r--r--  1 root  1001       44724 Sep 10 21:39 cdboot
-rw-r--r--  1 root  1001        2048 Sep 10 21:39 cdbr
drwxr-xr-x  2 root  1001        2048 Sep 10 01:44 etc
-rw-r--r--  1 root  1001   678363136 Sep 12 15:33 fuguita.ffsimg
drwxr-xr-x  2 root  1001        2048 Sep 10 02:12 sbin

$ sudo vnconfig -l svnd3
vnd3: covering /bootmedia/fuguita.ffsimg on cd0a, inode 50208

$ ls -l /fuguita
total 63
drwxr-xr-x   2 root  wheel    512 Apr 12 03:09 altroot
drwxr-xr-x   2 root  wheel   1024 Apr 12 03:10 bin
drwxr-xr-x   3 root  wheel  23552 Apr 12 11:27 dev
drwxr-xr-x  25 root  wheel   2048 Apr 26 20:15 etc
drwxr-xr-x   2 root  wheel    512 Apr 12 03:09 home
drwxr-xr-x   2 root  wheel    512 Apr 12 03:09 mnt
drwx------   5 root  wheel    512 May  1 13:50 root
drwxr-xr-x   2 root  wheel   1536 Apr 17 18:04 sbin
drwxr-xr-x   2 root  wheel    512 Apr 12 03:09 stand
lrwxr-xr-x   1 root  wheel     11 Sep 10 05:09 sys -> usr/src/sys
drwxrwxrwt   4 root  wheel    512 May  1 13:50 tmp
drwxr-xr-x  18 root  wheel    512 Apr 29 16:47 usr
drwxr-xr-x  23 root  wheel    512 Apr 12 08:20 var

このような感じです。
勿論このようにしたのは利点があったからです;

  • システムのファイルツリーを格納する場所をffsにすることで、ブロックサイズやiノード密度などを調整でき、ファイルの格納効率が上る -> 現在のファイル総量600MBに対し、約40MBの容量増となった。
  • 格納量の上限管理がしやすい(650MBを超えないように、等)
  • 同一のファイルからCD-ROM版とUSBメモリ版が作成できるようになった。単一の開発用ディレクトリに対し、CD-ROMの場合は mkisofs、USBメモリの場合はUSBメモリ版配布用ファイルにパーティション作成 -> 開発ディレクトリをコピー -> installboot すればよい。
  • isofs上に多数のファイルを書き込むことで発生していたと思われるこのような問題を回避できる可能性がある。
  • CD-ROM版の実環境では、若干アクセス速度が向上した。現在のところ理由は不明だが、考えられるものとしては;
    • isofsに比べffsではブロックサイズが大きいため。
    • 同一のディレクトリ下のファイルがデバイス上の近い位置に並ぶことにより、ヘッドシークが減少した。
    • isofsのRockRidge拡張では、8層以上のディレクトリ下のアクセスはrr_movedという変換ファイルによりアクセスが間接的に行われるが、ffsを使うことにより、このオーバーヘッドがなくなったため。
    • etc...

そろそろ河豚板4.6に取り組もうかと思いますが、河豚板4.6ではこの機能をベースにする予定です。
なお、CD-ROMの内容を /fuguita に直接マウントする従来どおりの方法も、引続きサポートしています。どちらを使用しているかは、システム起動時に自動判別して対応するようになっています。

Re: MFS tuning

kaw? (2009-09-07 (月) 07:51:01)

...というわけで、MFS作成時にiノードの密度を計算するようにしてみました。

inode密度=MFSのサイズ / 河豚板システム自体が必要とするiノード数 / 2
if 16384<inode密度 then
    inode密度=16384
elsif inode密度<512 then
    inode密度=512
endif

こんな感じです。
現在 test/に置いて検証中。

MFS tuning

kaw? (2009-09-05 (土) 22:52:42)

新しい起動モードを追加して気になったのが、MFSを作成するときのパラメータ。
現在は、

設定値デフォルト値
ブロックサイズ409616384
フラグメントサイズ5122048
iノード密度10248192

となってる。つまり、

  • I/O時間よりスペースファクタ重視 -> MFSなので、速度は何もしなくてもそこそこ出るはず。
  • iノード密度を高く設定 -> デフォルトのモード0では、ほとんどのファイルがシンボリックリンクで、ファイルサイズの平均値が小さいため。

というような要求を満すための設定だ。

ただ、今回の Everything on MFSモードだとこのような状況はあてはまらないため、作成されるファイルシステムに無駄が生じる。
極端に多数のファイルを作成できるかわり、その領域がかなりの部分を占めるようになる。

試してみたところ、Everything on MFSモードで運用するには、800MB位のMFSサイズを指定しないと動作しないが、ファイルシステムのパラメータを適切に設定すれば、650MB程度の指定でも同様の動作が見込めるようだ。

...ということで、今後はこのあたり対応を開発目標にしていきたいと思います。

FuguIta 4.5 200909046 released

kaw? (2009-09-05 (土) 12:57:46)

FuguIta-4.5-200909046をリリースしました。
一つ前の書き込みで説明した「Everything on MFS」機能が組み込まれています。

Everything on MFS

kaw? (2009-09-04 (金) 16:08:45)

5/30の投稿に書いた「all on memory mode」を実装しました。
メインメモリが有り余っている人向けの機能です。

= Welcome to FuguIta - OpenBSD LiveCD!
=         http://kaw.ath.cx/openbsd/?en/LiveCD
==============================================

disks: *cd0a fd0 fd1 rd0
Disk to boot FuguIta? [cd0a] -> 

  user memory: 1048068096 bytes
mfs available: 12MB to 999MB
[default: 499MB] -> 800
set mfs size to 800MB

Select boot mode;
  0: fresh boot (normal)
  1: fresh boot (lower memory, faster boot than mode 0)
  2: fresh boot (everything on mfs)
  3: retrieve user data from USB flash memory
  4: retrieve user data from floppy disk
  5: interactive shell for debugging
->


ここで、2の「fresh boot (everything on mfs)」を選択すると、CD-ROMまたは
USBメモリ上のシステム全体をメモリファイルシステム(MFS)に転送してから起
動します。

ですので、MFSのサイズはそれなりの大きさが必要です。800MB位〜1023MB の間
でサイズを指定してみて下さい。

ブートが完了すると、全くメインメモリだけを使用して起動しますので、起動
に使用したCD-ROMやUSBメモリは取り外してしまうことができます。

現在、この機能を含んだバージョンは検証中です。test/ ディレクトリ下にある、
FuguIta-4.[56]-200909046*.gz がその圧縮イメージです。

検証が終了したら、正式版としてリリース致します。
検証版を使用して不具合等ありましたら、お知らせ下さい。

togo to iedo

Alexander2110? (2009-08-29 (土) 13:22:17)

inna ima trata verba

FuguIta 4.5 200908132 released

kaw? (2009-08-16 (日) 18:59:51)

一つ前の書き込み、「Revised」で書いた修正点を反映してリリースしました。

公開用バイナリはリリース名からおわかりのように3日程前に作っていたのですが、動作チェックをしていたので...

今、お盆休みで実家に帰ってきています。
親のPC (WindowsXPがインストールされています) で河豚板を動作させてそこから自宅のサーバにログインし、これを書いています。

通常の運用環境と変りなく使えているので、なかなか快適です。

話は変りますが、OpenBSD 4.6は10月1日にリリースされる模様です。
丁度10月までは、仕事で色々忙しくなりそうなので、河豚板 4.6もそれに合せてリリースできるかちょっと微妙です...

Revised

kaw? (2009-08-12 (水) 08:12:44)

ちょっとだけバージョンアップ

LiveCD/4.5/BTS/8LiveCD/4.5/BTS/9、あとちょっとした不具合を修正しました。

最近、あまり低スペックマシンで動かしてなかったので、メモリが少ない機械で動作させる場合の挙動についてあまり検証していませんでした。

エミュレータを使って調べてみると、ブート完了->ログインまでエラーなしで行くのは大体メモリ34MB以上くらいからでした。
それ以下では、ブート中にコマンドがメモリ不足でseg faultしたりして、正常に立ち上がりません。
河豚板は、古いマシンでもそれなりに使えることも目標の一つですので、少ないメモリでも動作することは重要です。
私の職場での場合ですが、長年にわたり特定の業務で使用してきたマシンで河豚板を立ち上げて、 そのマシンが接続されているネットワークの状況を調べる、などのケースがありました。

メモリが64MB程度以下ですと、標準のboot mode 0ではなく、boot mode 1で起動した方がよいです。
mode 1は、mode 0に比べ必要なメモリ量が格段に少なくてすみますし、ブートも早いです。
ただし、/usr以下が全てread onlyになり、pkg_addなどはできなくなるので、この点は注意が必要です。

USBメモリ上のFFSへの書込み速度

kaw? (2009-08-09 (日) 16:34:26)

USBメモリは読み出しは早いが、書込み速度はHDDに比べ遅い。
また、FFSでフォーマットして使用するとマウントオプションによりかなり差が出る。

これはいままでも経験的に感じていて、LiveUSBのスクリプトを作成するときにも
意識して使用していたのだが、今回定量的な測定をやってみた。

今回テストに使ったのは、東芝製の1GB USBメモリ


uhub4 at uhub0 port 5 "NEC product 0x005a" rev 2.00/1.00 addr 2
umass0 at uhub4 port 1 configuration 1 interface 0 "TOSHIBA TransMemory" rev 2.00/1.10 addr 3
umass0: using SCSI over Bulk-Only
scsibus2 at umass0: 2 targets, initiator 0
sd0 at scsibus2 targ 1 lun 0: <TOSHIBA, TransMemory, PMAP> SCSI0 0/direct removable
sd0: 961MB, 512 bytes/sec, 1968128 sec total


これにmfsからおよそ100MBの内容のファイルツリーを書込み、 その後に消去を行い、マウントオプションを変えた時に所要時間がどうなるかを測定した。

mount /dev/sd0d /mntcd /mfs &&
time pax -rwpe . /mnt/tmp/.
cd /mnt/tmp &&
time rm -rf *
mount optionrealusersystemrealusersystem
none24m18.37s0m1.15s0m16.58s14m54.99s0m0.26s0m5.70s
noatime23m56.60s0m1.03s0m16.95s14m32.22s0m0.42s0m5.59s
async07m28.74s0m0.79s0m14.29s00m06.91s0m0.24s0m1.90s
async,noatime07m29.09s0m0.87s0m14.97s00m07.02s0m0.19s0m2.06s
softdep09m55.40s0m0.73s0m15.59s04m23.48s0m0.24s0m2.17s
softdep,noatime09m54.15s0m0.90s0m15.05s04m27.81s0m0.21s0m1.99s

結果

  • 書込みにかかる時間は、async < softpdep << オプションなし、の順。
    • オプションなし(sync)は、非常に遅い。最速のasyncと比べ、3倍ほどの速度差がある。
    • noatimeはつけても、つけなくてもそれほど変りなし(今回は読み取りだけのアクセスは殆どなく、 書込み/消去時ともにctimeなどの他のメタデータの変更も伴うからだろう)。
  • 消去にかかる時間も、async << softpdep << オプションなし、の順。
    • オプションによる差はもっと開いた。特に、asyncオプションが異様とも言えるほど早い。 書込み時はasyncとsoftdepで速度に30%程の差があるが、消去の場合はもっと開いて40倍弱。 オプションなしと比べると、130倍程も差が出た。

テストに使用したスクリプトは、以下のとおり;

#!/bin/sh

for opt in none noatime async noatime,async softdep softdep,async
do
    if [ X$opt = Xnone ]
    then
        opt=""
    else
        opt="-o $opt"
    fi

    echo ==== opt: $opt ====

    if mount $opt /dev/sd0d /mnt
    then
        cd /mfs/ && time pax -rwpe . /mnt/tmp/.
        umount /mnt
        sleep 60
    fi

    if mount $opt /dev/sd0d /mnt
    then
        cd /mnt/tmp && time rm -rf *
        cd
        umount /mnt
        sleep 60
    fi
done

USBメモリ版河豚板のパーティションサイズ変更
Changing partision size of FuguIta LiveUSB

kaw? (2009-08-07 (金) 02:17:23)

河豚板LiveUSB(通称 河豚刺し)の配布イメージですが、USBメモリの容量を1ギガバイト決め打ちで作ってあります。

勿論、1ギガバイト以上の容量のUSBメモリであれば配布イメージを書き込むことでちゃんと動作するんだけど、そのままでは1ギガバイトを超える部分は使われず勿体ないです。

なので、河豚刺しのパーティションサイズを変更する方法を載っけておきます(いずれちゃんと河豚板のページに整理して掲載したいと思いますが備忘録としてとりあえずこの場に記録しときます)。


サンプルで使うブツは、4GBのUSBメモリです。

umass0 at uhub4 port 1 configuration 1 interface 0 "SanDisk Cruzer Colors+"
rev 2.00/1.10 addr 3
umass0: using SCSI over Bulk-Only
scsibus2 at umass0: 2 targets, initiator 0
sd0 at scsibus2 targ 1 lun 0: <SanDisk, Cruzer Colors+, 5.00> SCSI0 0/direct
removable
sd0: 3935MB, 512 bytes/sec, 8059904 sec total


USBイメージをダウンロードしてUSBメモリに書きこみます。ここまでの操作で、LiveUSBとして普通に使えるようになります。

# ftp http://livecd-mirror.ebug.jp/LiveCD/FuguIta-4.5-200907312.usbimg.gz
Trying 210.229.61.162...
Requesting http://livecd-mirror.ebug.jp/LiveCD/FuguIta-4.5-200907312.usbimg.gz
100% |*****************************************************|   252 MB    16:22
Successfully retrieved file.
# ls -l
total 518344
-rw-r--r-- 1 root wheel 264922591 Aug 7 01:08 FuguIta-4.5-200907312.usbimg.gz
# gzip -dc FuguIta-4.5-200907312.usbimg.gz | dd of=/dev/rsd0c bs=32m
0+61504 records in
0+61504 records out
1007681536 bytes transferred in 1042.160 secs (966916 bytes/sec)


FDISKパーティションを見てみると;

# fdisk -e sd0
Enter 'help' for information
fdisk: 1> p m
Disk: sd0       geometry: 501/255/63 [3936 Megabytes]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 00      0   0   0 -      0   0   0 [           0:           0M] unused
 1: 00      0   0   0 -      0   0   0 [           0:           0M] unused
 2: 00      0   0   0 -      0   0   0 [           0:           0M] unused
*3: A6      0   1   1 -    121 254  63 [          63:         957M] OpenBSD


当然ですが、1ギガバイトしか確保されていません。

これを、メディア全体まで拡張します。
ついでにWindowsでも使えるようにWindows用パーティションも確保してみます。
サイズが4ギガバイトなので、OpenBSD用とWindows用とでそれぞれ約2ギガバイトに設定してみます。

まず、BSD用を2ギガバイトに変更します;

fdisk: 1> e 3
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
*3: A6      0   1   1 -    121 254  63 [          63:     1959867 ] OpenBSD
Partition id ('0' to disable)  [0 - FF]: [A6] (? for help) A6
Do you wish to edit in CHS mode? [n] n
offset: [63] 
size: [1959867] 2g
fdisk: 1> p m
Disk: sd0       geometry: 501/255/63 [3936 Megabytes]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 00      0   0   0 -      0   0   0 [           0:           0M] unused
 1: 00      0   0   0 -      0   0   0 [           0:           0M] unused
 2: 00      0   0   0 -      0   0   0 [           0:           0M] unused
*3: A6      0   1   1 -    261  22  16 [          63:        2048M] OpenBSD


次に、Windows用パーティションを新規に作成します;

fdisk: 1> e 0
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
Partition id ('0' to disable)  [0 - FF]: [0] (? for help) ?
Choose from the following Partition id values:
00 unused         20 Willowsoft     67 Novell         AB MacOS X boot
01 DOS FAT-12     24 NEC DOS        68 Novell         AF MacOS X HFS+
02 XENIX /        38 Theos          69 Novell         B7 BSDI filesy*
03 XENIX /usr     39 Plan 9         70 DiskSecure     B8 BSDI swap   
04 DOS FAT-16     40 VENIX 286      75 PCIX           BF Solaris     
05 Extended DOS   41 Lin/Minux DR   80 Minix (old)    C0 CTOS        
06 DOS > 32MB     42 LinuxSwap DR   81 Minix (new)    C1 DRDOSs FAT12
07 HPFS/QNX/AUX   43 Linux DR       82 Linux swap     C4 DRDOSs < 32M
08 AIX fs         4D QNX 4.2 Pri    83 Linux files*   C6 DRDOSs >=32M
09 AIX/Coherent   4E QNX 4.2 Sec    84 OS/2 hidden    C7 HPFS Disbled
0A OS/2 Bootmgr   4F QNX 4.2 Ter    85 Linux ext.     DB CPM/C.DOS/C*
0B Win95 FAT-32   50 DM             86 NT FAT VS      DE Dell Maint  
0C Win95 FAT32L   51 DM             87 NTFS VS        E1 SpeedStor   
0E DOS FAT-16     52 CP/M or SysV   8E Linux LVM      E3 SpeedStor   
0F Extended LBA   53 DM             93 Amoeba FS      E4 SpeedStor   
10 OPUS           54 Ontrack        94 Amoeba BBT     EB BeOS/i386   
11 OS/2 hidden    55 EZ-Drive       99 Mylex          EE EFI GPT     
12 Compaq Diag.   56 Golden Bow     9F BSDI           EF EFI Sys     
14 OS/2 hidden    5C Priam          A0 NotebookSave   F1 SpeedStor   
16 OS/2 hidden    61 SpeedStor      A5 FreeBSD        F2 DOS 3.3+ Sec
17 OS/2 hidden    63 ISC, HURD, *   A6 OpenBSD        F4 SpeedStor   
18 AST swap       64 NetWare 2.xx   A7 NEXTSTEP       FF Xenix BBT   
19 Willowtech     65 NetWare 3.xx   A8 MacOS X     
1C ThinkPad Rec   66 NetWare 386    A9 NetBSD      
Partition id ('0' to disable)  [0 - FF]: [0] (? for help) 6
Do you wish to edit in CHS mode? [n] y
BIOS Starting cylinder [0 - 500]: [262] 261
BIOS Starting head [0 - 254]: [0] 22
BIOS Starting sector [1 - 63]: [1] 17
BIOS Ending cylinder [0 - 500]: [500] 
BIOS Ending head [0 - 254]: [254] 
BIOS Ending sector [1 - 63]: [63] 
fdisk:*1> p
Disk: sd0       geometry: 501/255/63 [8059904 Sectors]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 06    261  22  17 -    500 254  63 [     4194367:     3854198 ] DOS > 32MB  
 1: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
 2: 00      0   0   0 -      0   0   0 [           0:           0 ] unused      
*3: A6      0   1   1 -    261  22  16 [          63:     4194304 ] OpenBSD     
fdisk:*1> p m
Disk: sd0       geometry: 501/255/63 [3936 Megabytes]
Offset: 0       Signature: 0xAA55
            Starting         Ending         LBA Info:
 #: id      C   H   S -      C   H   S [       start:        size ]
-------------------------------------------------------------------------------
 0: 06    261  22  17 -    500 254  63 [     4194367:        1882M] DOS > 32MB  
 1: 00      0   0   0 -      0   0   0 [           0:           0M] unused      
 2: 00      0   0   0 -      0   0   0 [           0:           0M] unused      
*3: A6      0   1   1 -    261  22  16 [          63:        2048M] OpenBSD     


これを、実デバイスに書き込んで終了

fdisk:*1> write
Writing MBR at offset 0.
fdisk: 1> quit


次に、BSD disklabelをいじります;

# disklabel -E sd0
# Inside MBR partition 3: type A6 start 63 size 4194304
Treating sectors 63-4194367 as the OpenBSD portion of the disk.
You can use the 'b' command to change this.

Initial label editor (enter '?' for help at any prompt)
> p
OpenBSD area: 63-4194367; size: 4194304; free: 2234437
#                size           offset  fstype [fsize bsize  cpg]
  a:          1317267               63  4.2BSD   2048 16384    1 
  c:          8059904                0  unused                   
  d:           642600          1317330  4.2BSD    512  4096    1 


BSD用のFDISKパーテションを2ギガバイトに拡張したので、disklabelでBSDのdパーテション(河豚板で、ユーザのデータ保存用パーティション)のサイズを拡張します。

> c d
Partition d is currently 642600 sectors in size, and can have a maximum
size of 2877037 sectors.
size: [642600] 2877037
> p
OpenBSD area: 63-4194367; size: 4194304; free: 0
#                size           offset  fstype [fsize bsize  cpg]
  a:          1317267               63  4.2BSD   2048 16384    1 
  c:          8059904                0  unused                   
  d:          2877037          1317330  4.2BSD    512  4096    1 
> p m
OpenBSD area: 0.0M-2048.0M; size: 2048.0M; free: 0.0M
#                size           offset  fstype [fsize bsize  cpg]
  a:           643.2M             0.0M  4.2BSD   2048 16384    1 
  c:          3935.5M             0.0M  unused                   
  d:          1404.8M           643.2M  4.2BSD    512  4096    1 


あと、通常Windows用のパーティションを作成するとOpenBSDではiパーティションとして認識されるのですが、現状では認識されていないようですので、設定してみます。

> a i
No space left, you need to shrink a partition


OpenBSD用のディスクバウンダリが、FDISKで設定したサイズのままなので、新しいパーティションを作成できません。
なので、バウンダリをディスク最後部までに変更します。

> b
Starting sector: [63] 
Size ('*' for entire disk): [4194304] *


で、通常Windows用のパーティションを作成。
offsetおよびsizeは、FDISKで設定したWindows用パーテションの値とキッチリ同じに合せなければなりません。

> a i
offset: [4194367] 4194367
size: [3865537] 3854198
FS type: [4.2BSD] MSDOS
> p
OpenBSD area: 63-8059904; size: 8059841; free: 11339
#                size           offset  fstype [fsize bsize  cpg]
  a:          1317267               63  4.2BSD   2048 16384    1 
  c:          8059904                0  unused                   
  d:          2877037          1317330  4.2BSD    512  4096    1 
  i:          3854198          4194367   MSDOS


設定値を実メディアに書き込んでdisklabelを終了します。

> w
> q
No label changes.
#


ユーザのデータ保存用であるdパーティションはパーティションテーブル上の領域は確保されましたが、実際のファイルシステムとしては最初のサイズのままです。ffsのファイルシステムを拡張するには、growfsというユティリティを使用します。

念のため、growfsの前後でfsckを実施します
(特にgrowfs実施後にfsckを行わずマウントしようとすると、ファイルシステムがクリーンではないと言われ、マウントできません)。

# fsck -fy /dev/rsd0d
** /dev/rsd0d
** File system is already clean
** Last Mounted on /mnt
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
3 files, 3 used, 560724 free (20 frags, 70088 blocks, 0.0% fragmentation)
# growfs /dev/rsd0d
We strongly recommend you to make a backup before growing the Filesystem

 Did you backup your data (Yes/No) ? Yes
new file systemsize is: 2877037 frags
Warning: 16477 sector(s) cannot be allocated.
growfs: 1396.8MB (2860560 sectors) block size 4096, fragment size 512
        using 137 cylinder groups of 10.20MB, 2610 blks, 10464 inodes.
super-block backups (for fsck -b #) at:
 647312, 668192, 689072, 709952, 730832, 751712, 772592, 793472,
 814352, 835232, 856112, 876992, 897872, 918752, 939632, 960512,
 981392, 1002272, 1023152, 1044032, 1064912, 1085792, 1106672,
 1127552, 1148432, 1169312, 1190192, 1211072, 1231952, 1252832,
 1273712, 1294592, 1315472, 1336352, 1357232, 1378112, 1398992,
 1419872, 1440752, 1461632, 1482512, 1503392, 1524272, 1545152,
 1566032, 1586912, 1607792, 1628672, 1649552, 1670432, 1691312,
 1712192, 1733072, 1753952, 1774832, 1795712, 1816592, 1837472,
 1858352, 1879232, 1900112, 1920992, 1941872, 1962752, 1983632,
 2004512, 2025392, 2046272, 2067152, 2088032, 2108912, 2129792,
 2150672, 2171552, 2192432, 2213312, 2234192, 2255072, 2275952,
 2296832, 2317712, 2338592, 2359472, 2380352, 2401232, 2422112,
 2442992, 2463872, 2484752, 2505632, 2526512, 2547392, 2568272,
 2589152, 2610032, 2630912, 2651792, 2672672, 2693552, 2714432,
 2735312, 2756192, 2777072, 2797952, 2818832, 2839712
# fsck -fy /dev/rsd0d 
** /dev/rsd0d
** Last Mounted on /mnt
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
3 files, 3 used, 2498840 free (24 frags, 312352 blocks, 0.0% fragmentation)

MARK FILE SYSTEM CLEAN? yes

***** FILE SYSTEM WAS MODIFIED *****

コマンド実行時に警告も出てますが、growfsを行うパーティションにデータがある場合は、あらかじめバックアップを取っておきましょう。

あと、Windows用パーテションも確保できたので、これをフォーマットしてみます。

# newfs_msdos /dev/rsd0i
/dev/rsd0i: 3846648 sectors in 480831 FAT32 clusters (4096 bytes/cluster)
bps=512 spc=8 res=32 nft=2 mid=0xf8 spt=63 hds=255 hid=4194367
bsec=3854198 bspf=3757 rdcl=2 infs=1 bkbs=2


最後に、確認して終了です。

# mount /dev/sd0d /mnt
# df -h /mnt
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0d      1.2G    1.5K    1.1G     0%    /mnt
# umount /mnt
# mount /dev/sd0i /mnt
# df -h /mnt
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0i      1.8G    4.0K    1.8G     0%    /mnt

New ISO/USB image released (Re: OpenBSD errata - Patch 007)

kaw? (2009-08-01 (土) 23:57:15)

FuguIta-4.5-200907312をリリースしました。

Re: OpenBSD errata - Patch 007

kaw? (2009-07-31 (金) 23:12:26)

CVSのOPENBSD_4_5タグにもcommitされたようなので、4.5用のbinary patchを作成。

あと、河豚板もこれを適用した FuguIta-4.5-200907312 を作成。
こっちはまだtestに置いてありますが、動作テスト問題なければ、リリースします。

#さすがにOSC2009 Niigataでの配布には間に合いませんでした...。

OpenBSD errata - Patch 007

kaw? (2009-07-31 (金) 08:06:36)

007: RELIABILITY FIX: July 29, 2009 All architectures
A vulnerability has been found in BIND's named server (CVE-2009-0696). An attacker could crash a server with a specially crafted dynamic update message to a zone for which the server is master.

4.5以前はパッチ出てるけど、CVSWebみてるとまだcommitされてないように見える。なんで?

flashrd

kaw? (2009-07-22 (水) 16:45:30)

OpenBSD Misc MLにて発見

flashrd is an OpenBSD installer with an eye towards larger flash devices. The primary targets are USB key, Flash disk module, Compact Flash adapter, or hard disk.

... http://www.nmedia.net/flashrd/

FuguIta 4.5 revised

kaw? (2009-07-06 (月) 17:34:31)

OpenBSD 4.5 Patch 006 〜 An off-by-one error in the inflate function in
Zlib.xs in the Compress::Raw::Zlib perl module before 2.017
(CVE-2009-1391) 〜 に対応した FuguIta 4.5 200907061 を作成しました。

現在 test/ に置いてあります。しばらく使ってみて問題なければ正式にリリー
スしたいと思います。

  • 起動スクリプトに若干の不具合(実害はありませんが)を見つけたので修正し、FuguIta 4.5 200907071としてアップしました。 -- kaw? 2009-07-07 (火) 07:21:08

-current

kaw? (2009-06-25 (木) 22:11:31)

某所でbuildしているOpenBSD-current

# uname -a
OpenBSD XXXXXXXXX 4.6 GENERIC#51 i386
# sysctl kern.version
kern.version=OpenBSD 4.6-beta (GENERIC) #51: Wed Jun 24 11:35:15 JST 2009
    root@XXXXXXXXXX:/usr/src/sys/arch/i386/compile/GENERIC

4.6になりました。

あと、CVSの更新履歴みてたらtmuxっていう見慣れないコマンドが、

# man tmux
NAME
     tmux - terminal multiplexer

SYNOPSIS
     tmux [-28dqUuv] [-f file] [-L socket-name] [-S socket-path]
          [command [flags]]

DESCRIPTION
     tmux is a terminal multiplexer: it enables a number of terminals to be
     accessed and controlled from a single terminal.

GNU screenと同様の働きをするコマンドのようですね。

Re: 構想

kaw? (2009-06-10 (水) 01:28:40)

先日書いた構想のうちのnon interactive boot機能を実装してみました。

概要は、LiveCD/4.5/BTS/6に書いたとおりなのですが、要はユーザデータを保
存するUSBデバイスにnoasksというファイルを置いて、そこにパラメータを書い
ておくと、起動時にはそれが勝手に設定されて、わざわざ聞いてこないという
動作になっています。

実物は、http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD/test/ に置いてあります。

このイメージのUSB版の方にはdパーティション内にnoasksファイルがパラメー
タ設定をコメントアウトした形で書いてあるので、このファイルを編集してパ
ラメータ設定をアンコメントすれば機能が有効になります。

しばらく使用してみて特に問題なければ、リリースしたいと思います。

構想

kaw? (2009-05-30 (土) 10:55:50)

先日、EBUG (Echigo BSD Users Group)の会合に参加しました。そのときに実感
したのが、NetBook PCの普及率の高さです。
OpenBSDは、フリーOSの中では比較的無線LANデバイスのサポートが良いので、
NetBookには向いているかも。

幾つかのもので河豚板を試させて頂いて、動作実績を得ることができました。
その結果不具合を幾つか発見でき、それだけでも有益だったのですが、
その時思いついたのが、次のような機能の追加です;


・ブートモードの追加 - all on memory mode

立ち上げ時に河豚板の内容をすべてmfsに転送し、その後はすべてmfsだけを使っ
て動作するモード。当然メモリを大量に消費しますが、CD-ROMなどにくらべ格
段に軽快な動作が期待できます。
最近の機械は2GB以上のメモリを積んでいたりするので、こういうモードがあっ
ても良いかもしれません。

・non interactive boot機能の追加

現バージョンの河豚板は、立ち上げ時に運用デバイス、mfsのサイズ、ブートモー
ドを必ず手で入力する必要がありますが、これもユーザ領域に格納してしまっ
て、立ち上げ時にこれらの情報が検出できたら人手を介さずブートする機能。

リモートで運用する場合は、こういう機能は必須ですね。


これらの機能を実際に実装するかどうかはわかりませんが、もうちょっと詰め
て考えてみたいと思います。

ちょっと手直し

kaw? (2009-05-10 (日) 17:43:42)

昨日・今日と、ちょっと /boottmp/rc 廻りを手直し。
LiveCD/4.5/BTS/4409LiveCD/4.5/BTS/4410をFIXして、
FuguIta-4.5-200905101 を作成。

ただいま動作チェック中。特に不具合はないみたいですが、USB版含め
動作チェックできたらリリースします。
一応 test/ に放り込んであるので、興味のある人はいじってみて下さい。

  • コードがうまくなくて動作が不完全だったので、さらに修正してテスト中。 -- kaw? 2009-05-11 (月) 23:59:36

Re: Call for test

kaw? (2009-05-03 (日) 10:47:27)

昨日書いた不具合、ほぼ解決。

USBメモリに作ったルートパーテションをnewfsするときに、

newfs -b 4096 -f 512 -i 1024 /dev/rsd0a

などとやって、デフォルトじゃないパラメータでファイルシステムを作成して
たのが原因っぽい。

というわけで、河豚板4.5をリリースしました

Call for test.

kaw? (2009-05-02 (土) 14:36:23)

どなたか河豚刺し (LiveUSB) の動作テストにご協力いただけませんか?
現在、手元にUSBブートできるマシンがなく、エミュレータでテストしてるのですがどうも
biosboot廻りの調子が悪く、実機でブートできるかどうかを見ていただきたいのです。

http://kaw.ath.cx/dl/pub/OpenBSD/LiveCD/test/FuguIta-4.5-200905021.usbimg.gz
ダウンロード、解凍後、ddとかでUSBメモリに書き込んで、そこから起動できるかどうか、
ダメならどんなエラーがでたか教えてもらえると助かります。

よろしくお願いします。

USB Image

kaw? (2009-05-02 (土) 10:09:36)

svndにinstallbootしてmake usbemuすると、「LBA64ダメダメ、bootデキナーイ」みたいなこと言われる。
なんで?

  • よくわからんが、fdisk -> disklabel -> installboot やりなおしてOKに。
    これやってて気がついたんだけど、ISOイメージ作ると、今628MBくらい、で小さいファイルが一杯ある用にパラメータを調整したffs上にコピーすると、580MBくらいになる。ISOイメージ内ではハードリンクって、単に同じファイルをハードリンクの数だけ作ってるような気が。
    だとしたら、ハードリンク -> シンボリックリンクへの置き換えができれば、容量をさらに稼げるかも。 -- kaw? 2009-05-02 (土) 10:28:29
  • やっぱだめだなぁ。
    FATAL: int13_harddisk: function 42. Can't use 64bts lba
    って言われる。QEMUが出してるみたいなんだけど、何なんだろう。 -- kaw? 2009-05-02 (土) 14:35:32

バグ出し more

kaw? (2009-05-01 (金) 06:58:09)

ttyrecを新たに追加。
追加ものは、大体こんなものかな。

ktermが例によって文字化けするんで、terminfo作り直さないと。
(infocmp -> enacs属性を削除 -> tic)

riece-ja.info

kaw? (2009-04-30 (木) 22:53:19)

非ports, 独自ビルドのソフトウェアを /usr/nora 以下に設置したなかで、幾つか
Infoファイルがうまく読めないものがあるので、修正。

入れた中でIRCクライアントのInfoファイル riece-ja.info がEmacsのinfoモードで
読むと文字化けする。ソースファイルをnkfでEUCに変換したりなどしても、やはりNG。

ためしに、Linux でやってみると、全然OK。
しょうがない、これをOpenBSDに持ってくかと思いかけ、ふと、makeじゃなくて、
gmakeでやってみるとどうだろうと思いたち、OpenBSDでgmake使ってやってみたらOK。

疲れたっす。

beta version

kaw? (2009-04-29 (水) 22:54:16)

ベータバージョンの FuguIta 4.5 200904291 を test ディレクトリにアップしました。
現在それを焼いたやつから起動してこれ書いてます(withバグ出し)。

独自ビルドの /usr/nora 以下を追加したら、ISOイメージは正常に作成されたものの、
bootすると、二次ローダが正常に読み込まれないっぽいらしく、bootが途中で止まる。

以前から時々でてた現象なんだけど、原因不明。
とりあえず、/usr/local/share/doc以下をtarballにしたら正常にbootするイメージが
作られるようになった。どうも書き込むファイルの総数が関係してるっぽい。

OpenBSD nativeのmkhybridはこの不具合以前に、ISOイメージ作成中、「not enough memory」
とかいってエラー終了するんでNG。cdrtools付属のmkisofs使ってます。

他のOpenBSD LiveCDの人達はどうやってるか、調べてみたほうがいいかも。
他にISOイメージ作成ツールってあんのかな。

さらにダイエット

kaw? (2009-04-29 (水) 08:40:38)

ドットファイルをFuguIta 4.4からコピー。
4.4と4.5の差分はほとんどないので、4.4のがほぼそのまま使えた。

あと、ダイエットをさらに実施。
/usr/local以下の

  • lib*.aを削除
  • lib*so をstrip
  • /usr/local/share/doc以下のファイルをgzip
  • emacsの*.elcをgzip (てか、.elがあれば、.elc消してもいいかもs%)
    これで、ISO imageで 593MB
  • あと、あんまり使わなそうだけど、でかい実行ファイルは gzexeしてみようかな。 -- kaw? 2009-04-29 (水) 09:42:02
  • vq実行時に展開したイメージを/tmpに作るので、多数のプロセスが起動されるような状況だとかえって無駄かも。
    ...というわけで、最後の手段に取っておこう。 -- kaw? 2009-04-29 (水) 10:00:08

dot files

kaw? (2009-04-27 (月) 22:59:49)

portsを入れました。いきなりサイズが650Mぎりぎりに。
あと、/root と /etc/skel にドットファイルを入れて、動作確認と調整をしていきます。

LiveCD/4.5/BTS

kaw? (2009-04-25 (土) 13:47:43)

河豚板 4.5用のBTSを作成しました。
とりあえず、持ち越しの案件をcopy。

ダイエット

kaw? (2009-04-22 (水) 02:05:00)

一つ前に書いた OpenBSDをLiveCD化した場合のダイエット方法;

  • lib*.so.*とlib*.aが両方ある場合は、lib*.aを消す。
  • lib*_p.a, lib*_pic.aは全部消す。
  • 残ったlib*.aで使わなそうなやつでサイズ大きいのは消す。
  • lib*.so.*と実行バイナリは、基本的に全てstripする。
  • 実行バイナリで *これはまず使わないだろう* 、かつサイズの大きい奴は消すことがある。今回消したのは;
    • /usr/X11R6/bin/Xvfb ... Xクライアントのデバッグ用途が主のようなので。
    • /usr/X11R6/bin/Xnest ... /usr/X11R6/bin/Xephyrと機能が被っているので。

他のOpenBSD LiveCDでは、compXX.tgz自体(GCCなどのコンパイラ関連)を入れないことで空きスペースを 稼いでいるものが多いけど、河豚板はなるべく素のOpenBSDに近い状態を提供するという方針(OpenBSDの 布教用に使いたいからs&amp;amp; :-)なので、compXX.tgzも含む配布系か可能な限り全て入れることにしています。

そんなこんなで、そろそろ追加アプリも入れ始めましょうかね。

そろそろ FuguIta 4.5

kaw? (2009-04-20 (月) 01:12:27)

河豚板4.5にむけて、作業環境の準備を行っています。

  • 河豚板4.3までの開発作業用ディレクトリをアーカイブ
  • 河豚板4.4の開発作業用ディレクトリを通常はRead Onlyに
  • 河豚板4.3で使っていたファイルツリー全体(当然OpenBSD 4.3)をOpenBSD 4.5に移行

追加アプリケーションなしのOpenBSD 4.5のみ入ったLiveCDを試作するところまで
行っています。
インストール直後の状態のままのOpenBSDをLiveCD化すると、それだけで600MB近くなり、
CD-ROMの空きはほとんどなくなるので、ダイエットをしなければなりません。

いま、その作業中です。

IRC

kaw? (2009-04-19 (日) 18:20:44)

I'm joining in the IRC channel #fuguita on irc.freenode.net.
Feel free to join.

Freenode.netが運営するIRCサーバ irc.freenode.netに #fuguita という
チャンネルを作り、そこにjoinしています。
お気軽にご参加ください。


Former articles are at BBS/2.


Return to FrontPage


Reload  New Edit Freeze Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS
Last-modified: 2009-11-16 (Mon) 06:31:30 (3137d)