FuguIta Start Guide

In this page, we will explain the simple usage of FuguIta.

Creating FuguIta Media (on OpenBSD)

FuguIta provides ISO images for LiveDVD and raw disk image files for LiveUSB etc. for i386 and amd64 platforms respectively.

Download the apropriate file of FuguIta from the site described in FuguIta/Download.

Creating LiveDVD

The ISO image file of FuguIta is about 950MB in size. Therefore, use DVD media instead of CD media to burn this file.

OpenBSD itself does not include software for burning DVDs. So install dvd+rw-tools to burn DVD from packages.

  • Install DVD writing tool
    # pkg_add dvd+rw-tools
  • Download the ISO image of FuguIta from the site described in FuguIta/Download. In following example, MIRROR means the name of appropriate download site which you will download.
    # ftp http://MIRROR.dl.fuguita.org/FuguIta-X.X-ARCH-YYYYMMDDN.iso.gz
    Note that the part YYYYMMDDN must be replaced with the version string of real ISO image.
    and ARCH is one of i386 and amd64.
  • After decompression completed, burn that image into DVD-R or DVD-RW.
    # gzip -d FuguIta-X.X-ARCH-YYYYMMDDN.iso.gz
    # dvd-format /dev/rcd0c    (format media, if you will be burn it first)
    # growisofs --dvd-compat -Z /dev/rcd0c=FuguIta-X.X-ARCH-YYYYMMDDN.iso

Creating LiveUSB

To make a LiveUSB version of FuguIta, prepare a USB memory with a size of 2 gigabytes or more, and write the downloaded and expanded IMG format file. The following is an example of writing using OpenBSD.

  • Download the image for USB flash drive
    # ftp http://MIRROR.dl.fuguita.org/FuguIta-X.X-ARCH-YYYYMMDDN.img.gz
  • Decompressing that image, and write it into USB storage device.
    # gzip -dc FuguIta-X.X-ARCH-YYYYMMDDN.img.gz | dd of=/dev/rsd?c bs=1m
    The /dev/rsd?c part in the above example is the designation of the write destination device. This depends on the connection status of the peripherals of your PC. If you execute this command, all the data recorded in the specified device will be erased, so be sure to check in advance if the write destination is correct.

    If you are not sure what device to write, run the following command to check the name of the device before writing.
    # tail -f /var/log/messages    # Insert USB flashdrive after this command
    Jun 12 09:59:30 fugu-demo /bsd: inteldrm0: 1280x800, 32bpp
    Jun 12 09:59:30 fugu-demo /bsd: wsdisplay0 at inteldrm0 mux 1: console (std, vt1
    00 emulation), using wskbd0
    Jun 12 09:59:30 fugu-demo /bsd: wskbd1: connecting to wsdisplay0
    Jun 12 09:59:30 fugu-demo /bsd: wsdisplay0: screen 1-5 added (std, vt100 emulati
    Jun 12 09:59:30 fugu-demo slaacd[37947]: sendmsg: Can't assign requested address
    Jun 12 09:59:30 fugu-demo ntpd[67052]: creating new /var/db/ntpd.drift
    Jun 12 09:59:31 fugu-demo savecore: can't find device 17/1
    Jun 12 10:00:02 fugu-demo syslogd[50034]: restart
    Jun 12 10:00:50 fugu-demo /bsd: umass1 at uhub4 port 3 configuration 1 interface    # Following lines will
    0 "UFD 3.0 Silicon-Power32G" rev 2.10/0.0c addr 9                                   # appear after tail
    Jun 12 10:00:50 fugu-demo /bsd: umass1: using SCSI over Bulk-Only                   # command was executed.
    Jun 12 10:00:51 fugu-demo /bsd: scsibus5 at umass1: 2 targets, initiator 0
    Jun 12 10:00:51 fugu-demo /bsd: sd2 at scsibus5 targ 1 lun 0: <UFD 3.0, Silicon-
    Power32G, 1.00> removable serial.1f750916IP0001003248
    Jun 12 10:00:51 fugu-demo /bsd: sd2: 29624MB, 512 bytes/sector, 60669952 sectors
    ^C    # type Control+C to quit tail command
    In the above example, the detected device is sd2, so you should specify /dev/rsd2c as the device name to be written. The "r" in the device name means "raw device" and the "c" represents the entire device.

Even if you use a USB memory of 2 GB or more, the portion exceeding 2 GB will not be used. If you want to create a LiveUSB version FuguIta that matches the size of the USB memory, refer to Remastering LiveUSB on running FuguIta.

Creating media for Raspberry Pi 3

Files for Raspberry Pi 3 are provided in tar archive format. For how to create the media, please unpack the archive and refer to the README file included in it.

Booting FuguIta

After displaying FuguIta's logo, selection of FuguIta's operational device will appear.

Unless you attached multiple FuguIta devices, simply press ENTER key (accepting default value) is OK.

=     ______               __   _
=    / ____/              |  |_| |__
=   / /____  ______  __  _|  /_   _/_____
=  / ___/ / / / __ \/ / / |  | | | /  _  |
= / /  / /_/ / /_/ / /_/ /|  | | |_| (_) |__
=/_/   \____/\__  /\____/ |__| \___/____/__/
=            __/ /
=           /___/
=  Welcome to FuguIta  -  OpenBSD Live System
=                         http://fuguita.org/

scanning partitions: wd0i wd0j cd0a
FuguIta's operating device(s): cd0a.
Which is FuguIta's operating device? [default: cd0a] ->

Next, enter capacity of TMPFS.
Unless you have the reason that you wish to fix the size of TMPFS, simply press ENTER key (accepting default value) is OK.

  user memory: 495 MB
Enter tmpfs size in MB. (0 is auto)
[default: 0] ->

Select boot mode.
At first boot, we recommend mode 0.

Boot modes:
  0: fresh boot - standard mode as a live system
  1: fresh boot - less memory, faster boot (/usr is non-writable, can't pkg_add)
  2: fresh boot - works using only RAM (about 1GB or more of RAM required)
  3: boot with retrieving saved files from storage device
     or enter passphrase for an encrypted volume
  4: boot with retrieving saved files from floppy disk
  5: interactive shell for debugging

Set keyboard layout, then set root password

Enter keyboard type.

pc-xt/pc-at keyboard:
us de de.nodead fr fr.dvorak dk dk.nodead it uk jp sv sv.nodead no no.nodead us.declk
us.dvorak us.colemak us.swapctrlcaps us.iopener uk.swapctrlcaps jp.swapctrlcaps
fr.swapctrlcaps fr.swapctrlcaps.dvorak be.swapctrlcaps us.swapctrlcaps.dvorak
us.swapctrlcaps.colemak us.swapctrlcaps.iopener es be ru ua sg sg.nodead sf sf.nodead
pt lt la br tr tr.nodead pl hu si cf cf.nodead lv nl nl.nodead is is.nodead ee ee.nodead
keyboard type -> us
kbd: keyboard mapping set to us
Changing password for root.
New password:
Retype new password:

Network Settings:
Enter host name (short name, i.e. no domain part).
Next, settings for IP protocols and their name resolution order

host name (without domain) -> fugu-demo
IP version(s) to use: 4, 6, 46, 64 or n
  46: IPv4 preferred over IPv6 in address resolution
  64: reversed to 46
   n: stand alone operation
'46' selected as default

Selecting network interface for setting

==[ifconfig -a]=========================
lo0: flags=8008<LOOPBACK,MULTICAST> mtu 32768
        index 3 priority 0 llprio 3
        groups: lo
em0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
        lladdr 52:54:00:12:34:56
        index 1 priority 0 llprio 3
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
enc0: flags=0<>
        index 2 priority 0 llprio 3
        groups: enc
        status: active
Available network interface(s): em0
network interface to setup [em0] ->

Enter domain names after the host name

FQDN of this host -> fugu-demo.localnet

After this, the following settings will appear only if you have selected a WiFi device as the network interface.


If you enter the WPA key only in ENTER and do not set it, you will be asked for the WEP key.
We strongly recommend that you use WPA instead of WEP because WEP is now easily decrypted.

If you press only ENTER for WEP Key prompt, it attempts to connect without any encryption key.

   WPA Key ->

Name resolution method
When you select "Manual", IP address/Subnetmask/Default gateway will be prompted.

DNS setup;
  Manual : Enter up to three IPv4/IPv6 addresses, separated by spaces
  DHCP   : Just press ENTER .
  no DNS : Enter "none".

If you wish to use X Window System, type X.

Do you login with C)onsole or X) Window System?
[default: C] ->
           /      Setup for FuguIta ends.         /
          / OpenBSD's boot sequence will follow. /
Automatic boot in progress: starting file system checks.
kbd: keyboard mapping set to us
... snip ...
starting local daemons: cron.
fuguita: disabled KARL because of read-only media

Wed Aug 19 05:28:08 UTC 2020

OpenBSD/amd64 (fugu-demo.localnet) (tty00)


Initial settings after first root login

FuguIta will make the minimum settings necessary for the operation of the OS at boot time. In addition, you should configure the environment for running applications after root login as shown in the example below:

desktop environment setup

FuguIta provides an utility command dtjsetup that allows you to easily install a X11 desktop environment.

# dtjsetup

# Welcome to dtjsetup
#     Desktop (and Japanese) setup utility
# for FuguIta-6.7-amd64-202008261

Which desktop software will you install?
  1:  no desktop (wm only)
  2: [rox-filer]
  3:  xfce
  4:  mate
  5:  lumina
  6:  lxqt
->           Pressing just ENTER means selecting an item
               enclosed in braces ("rox-filer" in this case).
Which window manager will you install?
  1:  cwm
  2:  fvwm
  3:  twm
  4: [icewm]
  5:  fluxbox
  6:  jwm

Will you setup Japanese language environment? [y/N] ->

*** You selected icewm as desktop software.
*** Installing Japanese environment is NO.
*** No Japanese input method choosen.

*** Checking your root authorization...
*** OK.

*** Checking network accessibility...
*** OK.

*** Installing packages: rox-filer icewm
Will you continue? [y/N] -> y
quirks-3.325 signed on 2020-08-11T12:56:29Z
   ... snip ...

*** Rewrite .xsession configuration file.
Will you continue? [y/N] -> y

Copy this .xsession file to /etc/skel ? [y/N] -> y

*** all installation and configuration completed.
*** Check your /root/.xsession and login to X if OK.

*** Note: You can save this configuration and addtionally installed softwares
***	  by using usbfadm utility.
***	  And can reload them at next boot time by selecting boot mode 3.

If you want to install a WM not listed, set the environment variable DTJ_WMS to the WM you want to add to the list and run dtjsetup.

DTJ_WMS='dwm enlightenment' dtjsetup

On the other hand, you can add a WM which has been already installed by edit manually the .xsesson file generated by dtjsetup.

~/.xsession file:

. $HOME/.profile
if [ -x /usr/local/bin/dbus-launch -a -z "${DBUS_SESSION_BUS_ADDRESS}" ]; then
        eval `dbus-launch --sh-syntax --exit-with-x11`

wm="fvwm"         replace this with your WM
case "$dt" in
        xsetroot -solid gray12
        xclock -geometry 115x115-0+0 -analog -update 1 -fg white -bg '#000020' -hd gray25 -hl white &
        xterm -geometry +0+0 -rv &

set clock to time zone

To set the OS clock to your timezone, link from /etc/localtime to a zone file under the /usr/share/zoneinfo directory.

# cd /etc
# ln -sf /usr/share/zoneinfo/Asia/Tokyo localtime

If you said YES at setup of Japanese Environment of dtjsetup, you should not do this.

doas utility configuration

In OpenBSD, the command doas is used to temporarily perform work as a system administrator.

By setting the contents of the doas configuration file /etc/doas.conf as follows, users belonging to the wheel group can perform system management tasks.

# echo permit persist :wheel > /etc/doas.conf

adding software packages

If you wish add application softwares more, ports/packages system can be used as usual.
Please refer OpenBSD's FAQ for detailed info.

adding an normal user

To create an normal user, use adduser utility as follows:

# adduser
Couldn't find /etc/adduser.conf: creating a new adduser configuration file
Reading /etc/shells
Enter your default shell: csh ksh nologin sh [ksh]:
Your default shell is: ksh -> /bin/ksh
Default login class: authpf bgpd daemon default pbuild staff unbound
Enter your default HOME partition: [/home]:
Copy dotfiles from: /etc/skel no [/etc/skel]:
Send welcome message?: /path/file default no [no]:
Do not send message(s)
Prompt for passwords by default (y/n) [y]:
Default encryption method for passwords: auto blowfish [auto]:
Use option ``-silent'' if you don't want to see all warnings and questions.

Reading /etc/shells
Check /etc/master.passwd
Check /etc/group

Ok, let's go.
Don't worry about mistakes. There will be a chance later to correct any input.
Enter username []: yoshi
Enter full name []: Yoshihiro Kawamata
Enter shell csh ksh nologin sh [ksh]:
Uid [1000]:
Login group yoshi [yoshi]:
Login group is ``yoshi''. Invite yoshi into other groups: guest no
[no]: wheel                add wheel group to enable system administration from yoshi user
Login class authpf bgpd daemon default pbuild staff unbound
Enter password []:
Enter password again []:

Name:	     yoshi
Password:    ****
Fullname:    Yoshihiro Kawamata
Uid:	     1000
Gid:	     1000 (yoshi)
Groups:	     yoshi wheel
Login Class: default
HOME:	     /home/yoshi
Shell:	     /bin/ksh
OK? (y/n) [y]: y
Added user ``yoshi''
Copy files from /etc/skel to /home/yoshi
Add another user? (y/n) [y]: n

Next, login as an ordnary user "yoshi" to check such account enabled

# exit

OpenBSD/amd64 (fugu-demo.local) (tty00)

login: yoshi
OpenBSD 6.7-stable (RDROOT.MP) #5: Wed Jul 22 12:57:54 JST 2020

Welcome to OpenBSD: The proactively secure Unix-like operating system.

Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code.  With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.

fugu-demo$ pwd
fugu-demo$ exit

FuguIta LiveUSB - save and load your data

All the settings you have made up to this point exist on the file system in memory, so if you shut down this way all of them will be lost.

FuguIta can save the settings you have made and the data files you have created in the LiveUSB partition and load them back on next boot.

saving files and directories when FuguIta is running

A utility called usbfadm is used to save settings and data.

# usbfadm

Welcome to usbfadm.
USB flash drive administration tool for FuguIta

  Version/Arch: 6.7/amd64  (FuguIta-6.7-amd64-202008261)
     Boot mode: manual
Data stored in: not set
 Data Saved as: not set

Type ? for help.

? : ? ->target             Use "target" to specify the partition to save to

Searching storage device
Please make sure the device inserted.
Then press ENTER ->
sd0a +sd0d                 the partition for saving data is marked as '+'
target device->sd0d

sd0d : ? ->saveas          Use "saveas" to name the set of saved data
Name of saved data->fugu-demo

Your data will be saved as ``fugu-demo''.

sd0d : fugu-demo ->sync    "sync" saves data actually

Sync current tmpfs as ``fugu-demo'' , OK? [y/N] -> y

copying /ram to /mnt/livecd-config/6.7/amd64/fugu-demo (30720KB approx.):
pax: ./tmp/sndio/sock0 skipped. Sockets cannot be copied or extracted
pax: ./var/run/ntpd.sock skipped. Sockets cannot be copied or extracted
pax: ./var/run/smtpd.sock skipped. Sockets cannot be copied or extracted
pax: ./var/run/cron.sock skipped. Sockets cannot be copied or extracted
25.0MiB 0:00:02 [10.6MiB/s] [===========================>      ] 83% ETA 0:00:00
waiting for pax to finish ... syncing ... done.

sd0d : fugu-demo ->info    confirm the status of the target disk partition

Filesystem     Size    Used   Avail Capacity iused   ifree  %iused  Mounted on
/dev/sd0d      961M   22.8M    939M	2%   20423 1116663     2%   /mnt


22.8M	6.7/amd64/fugu-demo

sd0d : fugu-demo ->quit

Bye bye...

Since the second and subsequent syncs perform differential transfer using rsync, it will finish in a shorter time than the first sync.

Note: You can do usbfadm's sync on a command line of shell as follows:

# usbfadm -r

The option '-r' will redo usbfadm's sync on a command line.
And also you can do it background by cron:

# crontab file
#minute hour    mday    month   wday    command
# save session periodically
0       */4     *       *       *       PATH=$PATH:/usr/local/bin /usr/fuguita/sbin/usbfadm -rq

This will do usbfadm's sync every 4 hours. -q is the option for quiet.

loading files and directories at subsequent boot

To restore the data saved by usbfadm at startup, specify startup mode 3.

Boot modes:
  0: fresh boot - standard mode as a live system
  1: fresh boot - less memory, faster boot (/usr is non-writable, can't pkg_add)
  2: fresh boot - works using only RAM (about 1GB or more of RAM required)
  3: boot with retrieving saved files from storage device
     or enter passphrase for an encrypted volume
  4: boot with retrieving saved files from floppy disk
  5: interactive shell for debugging
scanning partitions: sd0a sd0d sd0i cd0a
Device(s) found:
  loadable from: sd0d
Which is FuguIta's storage device? [default: sd0d] ->
/dev/sd0d : available data;


config name -> fugu-demo
Copying files from flash to ram ...
   ... snip ...
starting local daemons: cron.
fuguita: disabled KARL because of read-only media

Thu Sep	 3 15:13:36 JST 2020

OpenBSD/amd64 (fugu-demo.localnet) (tty00)


Note: Even if you are using FuguIta Live DVD, it is possible to save the data and load them at the next boot if LiveUSB is also attached.

automate load/save operation

automated load

FuguIta prompts the user to enter the following 5 items at boot time:

  • Name of FuguIta's system partition
  • Maximum capacity of TMPFS (RAM file system)
  • Boot mode
  • Name of data storage device
  • Name of data you saved as

You can automate those inputs by editing the noasks files in the d partition of your LiveUSB system.

# mount /dev/sd0d /mnt                                          
# vi /mnt/noasks

Edit noasks file to fill item values and to uncomment them

# noasks - parameter settings for non-interactive boot
# Make statements uncommented
# to activate settings
# FuguIta system device
# tmpfs size in MB
# boot mode
# storage device
# data set name in USB flash drive
# umount /mnt

Since noasks edited, following line will appear at boot time:

# reboot
=     ______               __   _
=    / ____/              |  |_| |__
=   / /____  ______  __  _|  /_   _/_____
=  / ___/ / / / __ \/ / / |  | | | /  _  |
= / /  / /_/ / /_/ / /_/ /|  | | |_| (_) |__
=/_/   \____/\__  /\____/ |__| \___/____/__/
=            __/ /
=           /___/
= Welcome to FuguIta!  -  OpenBSD Live System
=                 http://fuguita.org/?FuguIta
scanning partitions: wd0i wd0j sd0a sd0d sd0i
FuguIta's operating device(s): sd0a.
Press ^C to cancel non-interactive boot

Wait 5 seconds after this message is displayed, and the boot will be continued without any user interaction. If you enter <Control>-C within 5 seconds, the automatic boot by the noasks file will be stopped and the normal manual operation will be restored.

automated save

In the previous section, we explained the automation at the start of FuguIta, and you can also automate the process of saving data at the shutdown.

In OpenBSD, the script /etc/rc.shutdown is executed when the system shuts down, so append following lines to this file.

export PATH=$PATH:/usr/local/bin
/usr/fuguita/sbin/usbfadm -r

Note: This process does not perform error recovery during the save process, so the system will continue to shutdown even if the save fails.
If you perform important processing during operation, we recommend that you manually save the data separately.

Create another FuguIta LiveUSB that fits the size of your USB stick.

As mentioned earlier, the FuguIta raw disk image we distribute only uses 2GB of space regardless the size of target media.

To create a FuguIta with a partition that fits your USB memory, use a utility called usbfadm on the running FuguIta.

  • First, create FuguIta LiveDVD or LiveUSB from download file, then run it.
  • Login as root, then execute newdrive subcommand on the USB management tool usbfadm.
    # usbfadm
    Welcome to usbfadm.
    USB flash drive administration tool for FuguIta
      Version/Arch: 6.7/amd64  (FuguIta-6.7-amd64-202008111)
         Boot mode: manual
    Data stored in: not set
     Data Saved as: not set
    Type ? for help.
    ? : ? ->newdrive
    Scanning USB devices after pressing ENTER.
    Please make sure the device inserted.
    Then press ENTER ->
    Enter the device name of USB flash drive.
    Contents of system log entries are displayed for your information;
    ==== disk(s) and vnode devices ============================
    sd0 at scsibus1 targ 0 lun 0: <VirtIO, Block Device, >
    sd0: 1024MB, 512 bytes/sector, 2097152 sectors
    sd1 at scsibus2 targ 0 lun 0: <VirtIO, Block Device, >
    sd1: 4096MB, 512 bytes/sector, 8388608 sectors
    vnd0: not in use
    vnd1: not in use
    vnd2: not in use
    vnd3: not in use
    vnd4: not in use
    vnd5: covering /sysmedia/fuguita-6.7-amd64.ffsimg on cd0a, inode 48172
    Select the disk you will install FuguIta to
    Enter the name of device which FuguIta will be installed->sd1
    There are several ways of boot. Choose one.
    "Hybrid" enables boot with either Legacy BIOS or UEFI, but it's very difficult to change fdisk/GPT partition later.
    Select boot method:
      1: [Legacy BIOS]
      2:  UEFI
      3:  none (only for save data)
      4:  Hybrid
    Entering partition sizes.
    If you answer "Y" for data encryption, input for passphrase will be prompted.
    Enter sizes for swap, user data and extra FAT.
      You can add suffix K, M, G or T (otherwise considered 'bytes').
      '*' implies 'all'
      '0' doesn't make this partition.
    If you input any size of swap greater than 0, the maximum size of tmpfs can be expanded.
    3GB (3149MB) (6451136sectors) free
    3GB (3149MB) (6451136sectors) free
    user data->2560m
    user data encryption? [y/N] ->
    Create an extra FAT partition? [y/n] -> y
    target disk: sd1
      partition type=MBR
           boot type=Legacy
    -------------------- : ------
               partition :   size
    -------------------- : ------
              whole disk :    4GB
        partition tables :   32KB
             UEFI system :     0B
          FuguIta system : 9 46MB
            FuguIta swap :     0B
       FuguIta user data :    2GB
               MSDOS FAT :  589MB
    -------------------- : ------
    If you type 'Y' now, all the data on sd1 will be lost.
    Are you sure to modify disk sd1? [y/N] -> y
    = Clearing MBR, GPT and BSD disklabel
    1+0 records in
    1+0 records out
    1048576 bytes transferred in 0.040 secs (25613268 bytes/sec)
    /dev/rsd1d: 2560.0MB in 5242880 sectors of 512 bytes
    13 cylinder groups of 202.47MB, 12958 blocks, 25984 inodes each
    super-block backups (for fsck -b #) at:
     32, 414688, 829344, 1244000, 1658656, 2073312, 2487968, 2902624, 3317280,
     3731936, 4146592, 4561248, 4975904,
    ** /dev/rsd1d
    ** 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, 1289388 free (20 frags, 161171 blocks, 0.0% fragmentation)
    ? : ? ->quit
    Bye bye...
    If you specify an unused vnd device when executing newdrive, a FuguIta LiveUSB image file will be created in the current directory.

More further infomations

FuguIta can be used in various ways by combining boot modes and media. See the 蚕期饶ガイド(FuguIta Guide) for such applications. The FuguIta Guide is the comprehensive document written in Japanese. If you can't read Japanese, please consider using auto-translation service such as Google Translation.

Here's the translated table of contents for FuguIta Guide:

Top / FuguIta / StartGuide

Reload  New Edit Freeze Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS
Last-modified: 2020-09-16 (Wed) 15:26:02 (368d)