Thursday, November 28, 2013

PXE boot and install

As of the milestone 8 release, it's possible to PXE boot the Tribblix image. You can then run the install script just the same way you would if you had booted from the regular ISO.

This is how to set up the server side of the install.

From the iso image, which you can mount up using lofi:

1. Copy the pkgs directory and solaris.zlib to a web server, rooted at (say) http://my.web.server/0m8/

2. Copy

platform/i86pc/boot_archive
platform/i86pc/kernel/amd64/unix


to your tftp server, preserving the layout. (If you have 32-bit hardware, then you'll need platform/i86pc/kernel/unix as well.)

3. Copy boot/grub/pxegrub to your tftp server. You can put it at the top level and can change the name, but whatever name you use is what you define as the boot file in DHCP

4. Create a menu.lst file for your client on the tftp server, for example

default 0
timeout 10
title Tribblix PXE
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B console=ttya,input-device=ttya,output-device=ttya,install_media=http://my.web.server/0m8/,install_pkgs=http://my.web.server/0m8/pkgs/
module$ /platform/i86pc/boot_archive


Yes, kernel$ should be one long line. The blog has probably wrapped it.

By convention, this would be menu.lst.0100144F9EAC84 where that number is the UID (01 followed by the MAC address).

The install_media is where solaris.zlib is retrieved from; install_pkgs is the location of the packages. Note that the install_pkgs location includes the directory name where the packages are located.

As you can see, you can redirect the console to ttya, if desired. (Currently, this isn't carried forward to the installed system.)

Then the system should PXE boot in exactly the same way it boots from an ISO, and you log in and install Tribblix just the same way.

In the future, an automated installation mechanism will be provided.

Changes in 0m8 prerelease

Update BIND to 9.9.3-P2

Perl 5.18.1

Ruby updates - 1.9.3p448, 2.0.0p247

Update curl to 7.33.0

Update enlightenment

Update firefox to 25.0.1

Update openjdk to 7u45

Changes needed for pxe boot and network install: live_install.sh is
now in /root; wget added to the base install; several files migrated
into the boot archive; dependency on cdrom layout minimized

Add ttya and ssh options to grub menu

Update ant to 1.9.2

Add ProjectLibre (in repo)

Build USB image

Add motif, nedit, and xephem

Add wine (in repo)

Add tkdiff

Update cups to 1.6.4

Update samba to 4.0.11

Update glib to 2.36.4

Update libgsf to 1.14.28

Update python - 2.7.6 and 3.3.3

Remove dia, as it crashes at startup

Add default and timeout to installed grub menu

Package files are now versioned

Saturday, August 17, 2013

Changes in 0m7 prerelease

Update Python to 2.7.5

Update gdk-pixbuf, atk, glib

Repackage libcroco, libnotify, goffice, gnumeric, evince, libnice,
farstream, gstreamer

Update gimp to 2.8.6

Don't copy the save/pspool area into zones

Add rsync

Update Ant to 1.9.1, include ivy, jsch, and svnant

Update cmake to 2.8.11

Add Ruby

New develop-extras overlay, with additional developer tools served from
the repo; package jruby, scala, clojure

Update pidgin to 2.10.7

Add irssi

Add nmap

Update parole to 0.5.1

Update BIND to 9.9.3-P1

Update wireshark to 1.10.0

Update curl to 7.31.0

Update gawk to 4.1.0

Perl 5.18.0 (not yet as the default perl)

Add xplanet

Update cups to 1.6.2

E17 update - EFL 1.7.7, enlightenment 0.17.3

Add tomcat6 and tomcat7 overlays

Update illumos

Zone brand scripts cleaned up

Firefox 22

Support install to ufs

Fix installation logging

Monday, May 20, 2013

Creating a sparse-root zone

As of the 0m6 prerelease, Tribblix supports sparse-root zones. In these, the bulk of the OS is loopback mounted read-only from the global zone, so the zone has exactly the same software as the global zone but its own copy of /etc and /var.

To create a sparse-root zone, use the zonecfg command to create the configuration.

# zonecfg -z z1
z1: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:z1> create -t TRIBsparse
zonecfg:z1> set zonepath=/export/z1
zonecfg:z1> verify
zonecfg:z1> commit
^D


All you're doing here is defining it as a sparse-root zone (the -t flag to create tells it which template to use) and where the zone should live on the filesystem. Note that you need to create the parent of the zonepath, as a zfs dataset, before you can install the zone.

(For whole-root zones,  simply create -t TRIBwhole.)

In a real configuration, you would add a network interface - that works the same way as other zones, so I'm not going to cover it here.

Then you can install the zone.

# zoneadm -z z1 install
A ZFS file system has been created for this zone.
       Image: Preparing at /export/z1/root.
5408 blocks
592 blocks
59568 blocks
 Postinstall: Copying SMF seed repository ... done.
 Postinstall: Applying workarounds.
/usr/lib/brand/sparse-root/pkgcreatezone[272]: /usr/sbin/sysidconfig: not found [No such file or directory]
        Done: Installation completed in 2.184 seconds.

  Next Steps: Boot the zone, then log into the zone console (zlogin -C)
              to complete the configuration process.


Note how quick the install is. The first sparse-root zone you create will take a little longer, as there is some initial configuration. Yes, there are some errors, the present implementation concentrates on working rather than being pretty.

And all that remains is to boot the zone.

# zoneadm -z z1 boot

After several seconds (it seems to take about 30s for SMF to initialize itself) the zone will be up and running.

Changes in 0m6 prerelease

Update Illumos to something current

Add IceWM 1.3.7

Uprev and rebuild XCB

Update curl to 7.30.0

Update git to 1.8.2.1

Update python to 2.7.4

Add gqview, imlib2, qiv, xdaliclock, xcpustate

Add abiword, gnumeric, dia

Update OpenJDK to 7u21

Enlightenment update

Installer allows you to create a mirror

Rebuild startup-notification, update and rebuild libwnck

Update and rebuild XFCE

Update Firefox to 21.0

Add telnet client

Whole-root and sparse-root zones

Sunday, April 21, 2013

Changes in 0m5 prerelease

Reverted compiler and toolchain to gcc3, not gcc4

Uprev openjdk to 7u17

Add tcl and tk

Rebuild python with --enable-shared, add tkinter

Build Python 3.3.1

Add samba4

Add java-developer overlay, includes ant

Update git

Rebuild most of the gnu utilities

Update flex to 2.5.37

Update ant to 1.9.0

Update ImageMagick to 6.8.3-10

Replace pkgs.zlib by a directory of zap packages

Repackage neon, rrdtool, gettext, various codecs to trim documentation

Firefox 20.0.1

BIND 9.9.2-P2

Update libgcrypt to 1.5.1

Update binutils to 2.23.2 (reverted for release)

Add sphaero pctlife jattack and the java-fun overlay

EFL 1.7.5; enlightenment 0.17.1, and --disable-curl to improve
stability

Update gsf to 1.14.26

Add gnupg 1.4.13

Repackage librsvg, libwnck, afterstep, vte, Terminal, ristretto, gpicview

Update pixman to 0.28.2

Update pekwm to 0.1.15

Update wmaker to 0.95.4

Add some extra wmaker themes

Build OpenEXR, openexr overlay, available from the repo

Add retro-desktop-extras overlay, contains awm, pekwm, openbox,
fluxbox, available from the repo

Update wireshark to 1.8.6

Rebuilt mrxvt

Sunday, March 3, 2013

Changes in 0m4 prerelease

Update version to 0.4

Add openbox to retro-desktop

Add gimp overlay

Update and rebuild poppler

Add inkscape overlay (not on the iso)

Update firefox to 19.0

Update bash, tcsh, zsh

Add gdb to the develop overlay

Add monitoring overlay - rrdtool, fping, mtr, tcpdump, libpcap, wireshark

Add tls overlay to rationalize dependencies

Add libglade

Add xscreensaver

Added nss and nspr headers to the develop overlay

Update gstreamer

Add pidgin and dependencies

Updated curl to 7.29.0; add libidn

Add evince

Update orage to 4.8.4

Add xfce datetime plugin

Add cups

Include more headers

Include more fonts

Add openjdk 7u14

Add jkstat/kar/jproc/solview and dependencies

Add kitchen-sink overlay to save typing

Changes in 0m3 prerelease

Update version to 0.3

gcc update - runtime and compiler, to 4.7.2

Updated binutils to 2.23.1

Add Enlightenment E17

Update gdk-pixbuf, adding gdk-pixbuf-xlib

Rebuilt packages for m4, flex

Remove PCTtwmplus

Add TRIBsys-xopen-xcu4 TRIBsys-xopen-xcu6 TRIBsys-scheduler-fss
TRIBcurl to the live image; remove base-extra overlay

Don't put scratch+squeak on the iso

Firefox 18

Fixed pbzip package so that pbzcat exists

Added some additional drivers to the miniroot

Illumos rebuilt, includes LZ4

Changes in 0m2 prerelease

Update version to 0.2

Update zip to 3.0; unzip to 6.0

Added xfce-screenshooter

Added leafpad

Added xfce-extras overlay, which adds some Xfce applications with
additional dependencies

Add nge, ixgbe driver to base

Remove ce driver (Illumos doesn't have it)

ON based on a direct Illumos build, not proxied via OI

Fix generation of the man (text/doctools) package; added it to base

Added server-manage overlay

Fix .bashrc and .profile for root and jack

Further tidy the ISO.

Editable files are marked as such

Add rdesktop, less, ghostscript, imagemagick

Update glib2, pixman, gdk-pixbuf

Update firefox to 17.0

Add an overlay for MIT Scratch

Rebuilt pekwm, awm

Added git

Changes in 0m1 prerelease

Added TRIBsys-lib-iconv-utf-8 to the base

Moved xsvc from the base to the x11 overlay

Moved xz, p7zip from the base to the develop overlay

Added TRIBsys-lib-math-header-math, TRIBlib-perl-5-xml-parser, zsh,
cdrtools, xslt, pbzip2, emacs, and prerequisites to the develop overlay

Added volmgr, cdrw to retro-desktop overlay

Rebuilt AfterStep 2.2.11; it and prerequisites added to retro-desktop
overlay

Created all-locales overlay

Updated version to 0.1

Update the scripts in TRIBsys-install-media-internal; no longer need
solarismisc.zlib; don't lofs mount /jack and /root

Updated the gnome desktop caches to reflect the current build and
locations

Trim /usr on the ramdisk; found something based on the joyent list that
will work

The live_install.sh script unpacks packages in /tmp, not /var/tmp,
allowing the ramdisk to be quite a bit smaller

Don't copy /sbin, /kernel, /lib to the iso - they're already in the
ramdisk so don't need to be duplicated.

Correctly set up /dev; some directories were missing.

Rebuilt glib and pixman; now use my versions rather than importing from
OI. Everything built above them is freshly built, but glib and pixman
were essential to HAL and Xorg.

Xfce initial build - essentially works, but new users can't save the
panel configuration

Add cmake to develop overlay

Added a selection of xfce panel plugins

Add gpicview