In this page, we will explain the simple usage of FuguIta.
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.
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.gzNote 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
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=1mThe /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 on) 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 make a LiveUSB version FuguIta that fits the size of the USB memory, refer to Expanding a partition for data storage.
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.
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 ->0
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:
Entering the Host Name
Enter the host name with domain (FQDN: Fully Qualified Domain Name). You can omit the domain part if you do not need it, for example, when using it in a closed network.
Hostname with domain part (FQDN): only host name without domain part is also OK. -> fugu-demo.localnet
which IP protocol version to enable
The default is "64" (enable both IPv6 and IPv4, but give priority to IPv6 for name resolution).
IP protocol version(s) to be enabled: 4, 6, 46, 64 or "none" 4: enable only IPv4 6: enable only IPv6 46: give priority to IPv4 name resolution 64: give priority to IPv6 name resolution none: operate as standalone [64] ->
If "none" is specified, the device will operate as a standalone device that does not use the network, and the configuration by gennetconfs will be completed.
Specifying the network interface
Next, a list of network devices will be displayed, and you need to specify only one device that you want to configure.
Network Interfaces: Choose one NIC type Name -------- ----- ------------ bge1 ether Broadcom BCM57766 ure0 ether Realtek USB 10/100/1000 LAN run0 wifi Ralink 802.11 n WLAN [bge1] ->
The device that appears at the top of the list will be the default. If you specify a Wi-Fi device, you will be prompted to enter the SSID and encryption key.
[bge1] -> run0 Wi-Fi settings: SSID -> OUR-WIFI-NETWORK WPA Key -> OUR-WIFI-SECRET
If you press only ENTER with the WPA key, you will be prompted to enter WEP.
WPA Key -> WEP Key -> OUR-WEP-SECRET
If you press only ENTER with the WEP key, it means that you specify the connection without encryption.
IPv6 Settings
If you have enabled IPv6, the following configuration input will appear. Set the address to "auto" or manually, as described in the description. In most cases, "auto" will work. If "/prefixlen" is omitted, it is assumed that "/64" is specified.
IPv6 - address and routing: Enter "auto" or "IPv6_address[/prefixlen] [default_gateway]" "auto" is an automatic setting by SLAAC. The "/prefixlen" part can be an integer between 0 and 128. If there is no default gateway, set the second field to "none" or leave it blank. [auto] ->
5. IPv4 Settings
If you have enabled IPv4, you will be prompted to enter the following settings: "auto" for DHCP, as described in the description; otherwise, set the address manually.
If you omit "/mask", a netmask that seems appropriate will be assumed.
IPv4 - address and routing: Enter "auto" or "IPv4_address[/mask] [default_gateway]" "auto" is an automatic setting by DHCP. The "/mask" part can be specified in either format, such as "/255.255.255.0" or "/24". If there is no default gateway, set the second field to "none" or leave it blank. [auto] -> 192.168.1.147/24 192.168.1.254
6. DNS Server Settings
If you have configured IPv4 or IPv6 addresses manually, you will be prompted to enter DNS server settings. If you want to communicate directly by specifying IP addresses, you do not need to use DNS servers, so enter only ENTER.
DNS servers: up to 3 IP addresses, separated by spaces -> 192.168.1.253
Finally, configuration files reflecting the configuration values you have entered will be written to the directory "/etc/netconfs/config_name".
writing configured values: /etc/netconfs/default/myname /etc/netconfs/default/mygate /etc/netconfs/default/hosts /etc/netconfs/default/hostname.bge1 /etc/netconfs/default/resolv.conf
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) 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:
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 https://ftp.jaist.ac.jp/pub/OpenBSD/6.7/packages-stable/amd64/ quirks-3.325 signed on 2020-08-11T12:56:29Z https://ftp.jaist.ac.jp/pub/OpenBSD/6.7/packages-stable/amd64/quirks-3.325.tgz ... snip ... https://ftp.jaist.ac.jp/pub/OpenBSD/6.7/packages/amd64/icewm-1.6.4.tgz *** 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:
#!/bin/sh . $HOME/.profile if [ -x /usr/local/bin/dbus-launch -a -z "${DBUS_SESSION_BUS_ADDRESS}" ]; then eval `dbus-launch --sh-syntax --exit-with-x11` fi dt="no" wm="fvwm" ← replace this with your WM case "$dt" in no) xsetroot -solid gray12 xclock -geometry 115x115-0+0 -analog -update 1 -fg white -bg '#000020' -hd gray25 -hl white & xterm -geometry +0+0 -rv & $wm ;; rox-filer)
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.
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
If you wish add application softwares more, ports/packages system can be used as usual.
Please refer OpenBSD's FAQ for detailed info.
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 [default]: 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 [default]: 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 Goodbye! #
Next, login as an ordnary user "yoshi" to check such account enabled
# exit OpenBSD/amd64 (fugu-demo.local) (tty00) login: yoshi Password: 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 /ram/home/yoshi fugu-demo$ exit
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.
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 scanning... 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 -rThe 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 ...snip... # save session periodically 0 */4 * * * PATH=$PATH:/usr/local/bin /usr/fuguita/sbin/usbfadm -rqThis will do usbfadm's sync every 4 hours. -q is the option for quiet.
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 ->3 scanning partitions: sd0a sd0d sd0i cd0a Device(s) found: loadable from: sd0d Which is FuguIta's storage device? [default: sd0d] -> /dev/sd0d : available data; fugu-demo 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) login:
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.
FuguIta prompts the user to enter the following 5 items at boot time:
You can automate those inputs by editing the noasks files in the d partition of your LiveUSB system (in case of OpenBSD/amd64).
# mount /dev/sd0d /mnt # vi /mnt/livecd-config/7.0/amd64/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 noask_rdev=sd0a # # tmpfs size in MB noask_umem=0 # # boot mode noask_setup_rw_mode=3 # # storage device noask_confdev=sd0d # # data set name in USB flash drive noask_confdir=fugu-demo
# umount /mnt
Since noasks edited, following line will appear at boot time:
# reboot ...snip... ============================================ = ______ __ _ = / ____/ | |_| |__ = / /____ ______ __ _| /_ _/_____ = / ___/ / / / __ \/ / / | | | | / _ | = / / / /_/ / /_/ / /_/ /| | | |_| (_) |__ =/_/ \____/\__ /\____/ |__| \___/____/__/ = __/ / = /___/ = = 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.
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.
As explained in "Creating LiveUSB", you can create a Fuguita LiveUSB by downloading the image file from the download site, extracting it, and writing to it.
However, regardless of the size of the USB flash drive, the LiveUSB version of the FuguIta can only use 2GB of space. Of this, the FuguIta system occupies about 1GB, so the usbfadm can only store about 1GB of data.
The usbfadm utility that comes with the FuguIta has a function called expand that allows you to expand the size of a specified partition. An example of using expand is shown below.
fugu-demo# usbfadm Welcome to usbfadm. USB flash drive administration tool for FuguIta Version/Arch: 7.0/i386 (FuguIta-7.0-i386-202112291) Boot mode: manual Target device: not set Data saved as: not set readline capability available TAB to complete the reserved words Type ? for help. ? : ? ->target Searching storage device Please make sure the device inserted. Then press ENTER -> sd0i sd0j sd0k sd1a +sd1d vnd5a <= target device ->sd1d sd1d : ? ->info Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/sd1d 1.1G 2.5K 1.1G 0% 5 1287065 0% /mnt <= scanning... 512B 7.0/i386/noasks sd1d : ? ->expand Select the expansion method for sd1d: 1: growfs - expands the partition while retaining its contents 2: newfs - expand and format the partition 3: [exit without expansion] ->2
There are two ways to expand a partition: "growfs" and "newfs". In growfs, the area is expanded while retaining the data stored in the partition. With newfs, the partition is reformatted after the space has been expanded. Please note that all files and directories stored in the partition will be lost with newfs. On the other hand, it is recommended that you make a backup of your data before running growfs as well.
This makes sd1d as large as possible. Note that all contents in sd1d will be removed Do you proceed? [y/N] -> y /dev/rsd1d: 3136.5MB in 6423488 sectors of 512 bytes 257 cylinder groups of 12.24MB, 3134 blocks, 6272 inodes each super-block backups (for fsck -b #) at: 144, 25216, 50288, 75360, 100432, 125504, 150576, 175648, 200720, 225792, : 6368432, 6393504, 6418576, ** /dev/rsd1d ** File system is already clean ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 1 files, 1 used, 5611214 free (14 frags, 701400 blocks, 0.0% fragmentation) sd1d : ? ->info <= Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/sd1d 2.7G 2.5K 2.7G 0% 5 1611897 0% /mnt scanning... 512B 7.0/i386/noasks sd1d : ? ->quit Bye bye... fugu-demo#
Note: The parameters of the file system (format format, block size, fragment size, i-node density, etc.) are used as they were before the expansion in growfs, whereas in newfs, the parameters appropriate for the expanded size are set and the formatting is executed.
FuguIta can be used in various ways by combining boot modes and media. See the 河豚板ガイド(FuguIta Gaido) for such applications. The FuguIta Guide is the comprehensive document written in Japanese. If you can't read Japanese, please refer to English version which was translated by Alfredo Vogel.
Here's the translated table of contents for Japanese version of FuguIta Guide: