In this guide, we will install Plan 9 4th edition with some patches for vmd.
Thanks to adi for helping us prepare the ISO:
http://adi.host.planetofnix.com/plan9.iso
The ISO is also mirrored at https://ircnow.org/software/plan9.iso
On the OpenBSD host, we first get serial console into the virtual machine:
host vmctl console USER
Connected to /dev/ttypq (speed 115200)
no vga; serial console only
disk loader
cpu0: 4596MHz GenuineIntel Core i7 (cpuid: AX 0x206D7 DX 0x79BA97F)
ELCR: 02E8
497M memory: 497M kernel data, 0M user, 18M swap
found partition #S/sdC0/data 0 41,943,040
found partition #S/sdD0/data 0 147,164
found partition #S/sdD0/data!9fat; 59050+2949120
disks: sdC0 sdD0
trying sdC0...dosinit: can't open #S/sdC0/9fat
dosinit #S/sdC0/9fat failed
trying sdD0....
Plan 9 Startup Menu:
====================
1. Install Plan 9 from this CD
2. Boot Plan 9 from this CD
Selection: 1
We choose 1 to Install Plan 9 from CD:
found 9pcflop.gz
entry: 0xf0100020
Plan 9
i8042: kbdinit failed
E820: 00000000 0009f800 memory
E820: 0009f800 000a0000 reserved
E820: 000f0000 00100000 reserved
E820: 00100000 3fffa000 memory
E820: 3fffa000 40000000 reserved
E820: f0000000 100000000 reserved
cpu0: 4597MHz GenuineIntel Core i7 (cpuid: AX 0x206D7 DX 0x79BA97F)
ELCR: 02E8
intrenable: nil handler for 5, tbdf 0xC001000 for ether0
#l0: virtio: 1Gbps port 0x2000 irq 5: aabbccdded54
1024M memory: 256M kernel data, 767M user, 1392M swap
pickmethod...read #e/nobootprompt...pickmethod done
bind #æ...bind #S...partinit...auth...mount usbd...boot: can't open /srv/usb: '/srv/usb' file does not exist
kfs...version...time...
can't stat /srv/partfs.sdXX: '/srv/partfs.sdXX' file does not exist
init: starting /bin/rc
/bin/dossrv: serving #s/dos
use DMA for ide drives[yes]:
echo: write error: bad process or channel control request
echo: write error: bad process or channel control request
mouseport is (ps2, ps2intellimouse, 0, 1, 2)[ps2]:
vgasize [640x480x8]: text
monitor is [xga]:
Press enter to use DMA for ide drives, then press enter again for ps2.
We select text for vgasize, and for monitor, choose the default.
i8042: aux init failed
i8042: aux init failed
i8042: aux init failed
i8042: 00 returned to the ea command
/bin/aux/vga: vbecheck: VBE error 0x4f00
rio: can't open display: initdisplay: /dev/draw/new: no frame buffer
failed to start rio. you can start a text-based installation by running
inst/textonly
init: starting /bin/rc
% inst/textonly
Since we don't have any VGA display on OpenBSD vmm, we run inst/textonly:
Mon Oct 7 19:26:17 EDT 2024 Installation process started
--------------------------------------
Preparing menu...
The following unfinished tasks are ready to be done:
configfs - choose the type of file system to install
Task to do [configfs]:
Press enter to select configfs:
--------------------------------------
You can install the following types of file systems:
fossil the new Plan9 fileserver
fossil+venti fossil + a archival dump server
File system (fossil, fossil+venti)[fossil]:
Press enter to select fossil:
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
The following unfinished tasks are ready to be done:
partdisk - edit partition tables (e.g., to create a plan 9 partition)
Task to do [partdisk]:
Type enter to select partdisk:
--------------------------------------
The following disk devices were found.
sdC0 -
sdD0 - OpenBSD VMM CD-ROM 001
Disk to partition (sdC0, sdD0)[no default]: sdC0
Choose the disk that isn't the CD-ROM, in this case, sdC0:
The disk you selected HAS NO master boot record on its first sector.
(Perhaps it is a completely blank disk.)
You need a master boot record to use the disk.
Should we install a default master boot record?
Install mbr (y, n)[no default]: y
Type y for yes:
This is disk/fdisk; use it to create a Plan 9 partition.
If there is enough room, a Plan 9 partition will be
suggested; you can probably just type 'w' and then 'q'.
cylinder = 8225280 bytes
'* p1 0 2610 (2610 cylinders, 19.99 GB) PLAN9
>>> w
>>> q
Enter w and q to write the partitions and quit:
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
The following unfinished tasks are ready to be done:
prepdisk - subdivide plan 9 disk partition
Task to do [prepdisk]:
Type enter to subdivide the parttition:
--------------------------------------
The following Plan 9 disk partitions were found.
/dev/sdC0/plan9
empty 0 41929587 (41929587 sectors, 19.99 GB)
Plan 9 partition to subdivide (/dev/sdC0/plan9)[/dev/sdC0/plan9]:
This is disk/prep; use it to subdivide the Plan 9 partition.
If it is not yet subdivided, a sensible layout will be suggested;
you can probably just type 'w' and then 'q'.
no plan9 partition table found
9fat 204800
nvram 1
fossil 40676210
swap 1048576
' 9fat 0 204800 (204800 sectors, 100.00 MB)
' nvram 204800 204801 (1 sectors, 512 B )
' fossil 204801 40881011 (40676210 sectors, 19.39 GB)
' swap 40881011 41929587 (1048576 sectors, 512.00 MB)
>>> w
>>> q
Enter w and q to write and quit:
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
prepdisk - subdivide plan 9 disk partition
The following unfinished tasks are ready to be done:
fmtfossil - initialize disks for a fossil server
Task to do [fmtfossil]:
Press enter to format the disk for fossil.
--------------------------------------
You have the following fossil partitions.
Fossil partition to format (/dev/sdC0/fossil)[/dev/sdC0/fossil]:
Done.
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
prepdisk - subdivide plan 9 disk partition
fmtfossil - initialize disks for a fossil server
The following unfinished tasks are ready to be done:
mountfs - choose and mount file system partition
Task to do [mountfs]:
Type enter to mount the filesystem partition.
--------------------------------------
The following partitions named fossil* were found.
Please choose one to use as the installation file system
for your Plan 9 installation.
--rw-r----- S 0 glenda glenda 20826219520 Jun 9 15:26 /dev/sdC0/fossil
Fossil partition (/dev/sdC0/fossil)[/dev/sdC0/fossil]:
Select the correct partition (in this case /dev/sdC0/fossil).
--------------------------------------
Preparing menu...% fossil/fossil -c . /env/fossilconf
prompt: % mount -c /srv/fossil /n/newfs
fsys main create /active/adm adm sys d775
prompt: fsys main create /active/adm/users adm sys 664
prompt: uname upas :upas
prompt: users -w
nuser 6 len 96
prompt: fsys main create /active/dist sys sys d775
prompt: fsys main create /active/dist/replica sys sys d775
prompt: fsys main create /active/dist/replica/client sys sys d775
prompt: fsys main create /active/dist/replica/client/plan9.db sys sys 664
prompt: fsys main create /active/dist/replica/client/plan9.log sys sys a664
prompt:
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
prepdisk - subdivide plan 9 disk partition
fmtfossil - initialize disks for a fossil server
mountfs - choose and mount file system partition
The following unfinished tasks are ready to be done:
configdist - choose the source of the distribution archive
download - download or continue to download the distribution archives
Task to do [configdist]:
Press enter to choose the source of the distribution archive.
--------------------------------------
Are you going to download the distribution
from the internet or do you have it on local media?
Distribution is from (local, net)[local]:
On OpenBSD vmm, you should have the ISO loaded in CD-ROM, so press enter for
local.
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
prepdisk - subdivide plan 9 disk partition
fmtfossil - initialize disks for a fossil server
mountfs - choose and mount file system partition
configdist - choose the source of the distribution archive
The following unfinished tasks are ready to be done:
mountdist - locate and mount the distribution
download - download or continue to download the distribution archives
Task to do [mountdist]:
Press enter to mount the distribution.
--------------------------------------
Please wait... Scanning storage devices...
/dev/sdC0/9fat
/dev/sdC0/data
/dev/sdC0/fossil
/dev/sdC0/nvram
/dev/sdC0/swap
/dev/sdD0/9fat
/dev/sdD0/data
The following storage media were detected.
Choose the one containing the distribution.
/dev/sdC0/fossil (plan9 fossil)
/dev/sdD0/9fat (microsoft fat)
/dev/sdD0/data (iso9660 cdrom)
Distribution disk [no default]: /dev/sdD0/data
Enter the path for the CD-ROM, in this case /dev/sdD0/data.
% 9660srv
/bin/9660srv 2688: serving /srv/9660
% mount /srv/9660 /n/distmedia /dev/sdD0/data
Which directory contains the distribution?
Any of the following will suffice (in order of preference):
- the root directory of the cd image
- the directory containing plan9.iso
- the directory containing plan9.iso.bz2
Typing `browse' will put you in a shell that you can use to
look for the directory.
Location of archives [browse]:
Type enter to browse for the root directory of the CD image.
This is a simple shell. Commands are:
cd directory - change to directory
lc - list contents of current directory
exit - exit shell
Move to the directory containing the distribution
and then exit.
Type lc to list contents:
/% lc
386 NOTICE bootdisk.img lp power64
9load NOTICE.old cfg mail rc
LICENSE README cron mips sparc
LICENSE.afpl acme dist mnt sys
LICENSE.gpl adm env n tmp
LICENSE.lucida amd64 fd pbsraw usr
LICENSE.old arm lib power
Once you've confirmed this is the CD-ROM, type exit:
/% exit
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
prepdisk - subdivide plan 9 disk partition
fmtfossil - initialize disks for a fossil server
mountfs - choose and mount file system partition
configdist - choose the source of the distribution archive
mountdist - locate and mount the distribution
The following unfinished tasks are ready to be done:
copydist - copy the distribution into the file system
Task to do [copydist]:
Type enter to copy the distribution:
--------------------------------------
|############################################################| 100%
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
prepdisk - subdivide plan 9 disk partition
fmtfossil - initialize disks for a fossil server
mountfs - choose and mount file system partition
configdist - choose the source of the distribution archive
mountdist - locate and mount the distribution
copydist - copy the distribution into the file system
The following unfinished tasks are ready to be done:
bootsetup - create a boot floppy or configure hard disk to boot plan 9
Task to do [bootsetup]:
Type enter to configure the hard disk to boot Plan 9.
--------------------------------------
Initializing Plan 9 FAT configuration partition (9fat)
Initializing Plan 9 FAT partition.
add 9load at clust 2
Initializing FAT file system
type hard, 100 tracks, 64 heads, 32 sectors/track, 512 bytes/sec
Adding file /n/newfs/386/9load, length 369368
add 9load at clust 2
used 372736 bytes
% cp /n/newfs/386/9load /n/9fat/9load
% cp /n/newfs/386/9pcf /n/9fat/9pcf
There are myriad ways to boot a Plan 9 system.
You can use any of the following.
floppy - create a boot floppy
plan9 - make the plan 9 disk partition the default for booting
win9x - add a plan 9 option to windows 9x boot menu
winnt - add a plan 9 option to windows nt/2000/xp boot manager
If you are upgrading an extant third edition installation and booting
from something other than a floppy, you needn't run anything here.
Just type ctl-d.
Enable boot method (floppy, plan9, win9x, winnt)[no default]: plan9
Type plan9 to have plan 9 boot by default.
If you use the Windows NT/2000/XP master boot record
or a master boot record from a Unix clone (e.g., LILO or
FreeBSD bootmgr), it is probably safe to continue using
that boot record rather than install the Plan 9 boot record.
Install the Plan 9 master boot record (y, n)[no default]: y
Type y to install the Plan 9 master boot record.
Setting Plan 9 partition active.
The Plan 9 partition is now marked as active.
--------------------------------------
Preparing menu...
The following tasks are done:
configfs - choose the type of file system to install
partdisk - edit partition tables (e.g., to create a plan 9 partition)
prepdisk - subdivide plan 9 disk partition
fmtfossil - initialize disks for a fossil server
mountfs - choose and mount file system partition
configdist - choose the source of the distribution archive
mountdist - locate and mount the distribution
copydist - copy the distribution into the file system
bootsetup - create a boot floppy or configure hard disk to boot plan 9
The following unfinished tasks are ready to be done:
finish - finish the installation and reboot
Task to do [finish]:
Press enter to finish the installation.
--------------------------------------
Congratulations; you've completed the install.
Halting file systems...fsys all halt
prompt: done
Remember to take the install disk out of the drive.
Feel free to turn off your computer.
At this point, we escape the serial console by typing ~~., then stop and restart
the virtual machine:
vmctl stop USER
vmctl start -c USER
Connected to /dev/ttyp4 (speed 115200)
MBR...PBS2...
Plan 9 from Bell Labsi8042: kbdinit failed
no vga; serial console only
disk loader
cpu0: 4604MHz GenuineIntel Core i7 (cpuid: AX 0x206D7 DX 0x79BA97F)
ELCR: 02E8
497M memory: 497M kernel data, 0M user, 18M swap
found partition #S/sdC0/data 0 41,943,040
found partition #S/sdD0/data 0 147,164
found partition #S/sdD0/data!9fat; 59050+2949120
disks: sdC0 sdD0
trying sdC0....found 9pcf
entry: 0xf0100020
Plan 9
i8042: kbdinit failed
E820: 00000000 0009f800 memory
E820: 0009f800 000a0000 reserved
E820: 000f0000 00100000 reserved
E820: 00100000 3fffa000 memory
E820: 3fffa000 40000000 reserved
E820: f0000000 100000000 reserved
cpu0: 4599MHz GenuineIntel Core i7 (cpuid: AX 0x206D7 DX 0x79BA97F)
ELCR: 02E8
intrenable: nil handler for 5, tbdf 0xC001000 for ether0
#l0: virtio: 1Gbps port 0x2000 irq 5: aabbccdded54
1024M memory: 256M kernel data, 767M user, 1392M swap
usbinit...usbd.../boot/usbd: /dev/usb: no hubs
no /srv/usb...no usb disk...pickmethod...read #e/nobootprompt...read #e/bootargs...outin...root is from (tcp, local)[local!#S/sdC0/fossil]:
Press enter to boot from local!#S/sdC0/fossil.
pickmethod done
bind #æ...bind #S...partinit...auth...user[none]: glenda
Type glenda to run as user glenda.
usbinit...usbd.../boot/usbd: /dev/usb: no hubs
no /srv/usb...no usb disk...mount usbd...boot: can't open /srv/usb: '/srv/usb' file does not exist
time...
fossil(#S/sdC0/fossil)...version...can't stat /srv/partfs.sdXX: '/srv/partfs.sdXX' file does not exist
init: starting /bin/rc
i8042: aux init failed
i8042: aux init failed
i8042: aux init failed
i8042: 00 returned to the ea command
aux/vga: vbecheck: VBE error 0x4f00
rio: can't open display: initdisplay: /dev/draw/new: no frame buffer
init: rc exit status: rio 30: display open
init: starting /bin/rc
Congrats, you now have a working Plan 9 installation. You can type ~~. to exit
the serial console. Or, you can continue configuring your server. In particular,
you may want to set up a cpu server.