Using instructions from Edward Pilatowicz' blog I got small working OpenSolaris 2008.11 in the console version: without Xorg (and Gnome of course).
First of all the list of the core packages for normal work in the console is necessary. My computer has Realtek ethernet adapter and I also have added a SUNWrtls package. Here's example list (pkg.txt):
As last versions of packages have dependences, for example SUNWcs is installing SUNWgccruntime, SUNWPython is installing packages SUNWTk and SUNWTcl. But finally I got installed system with size about 280 mb - it's a smaller than 3 Gb;)
I use the same commands as in Edward's blog (I'm running Solaris Express):
For Solaris Express you must install pkg (not required if you're booting from OpenSolars or MilaX LiveCD):
Note: I use here list of basic packages - pkg.txt (see above):
Next:
First of all the list of the core packages for normal work in the console is necessary. My computer has Realtek ethernet adapter and I also have added a SUNWrtls package. Here's example list (pkg.txt):
SUNWcsd
SUNWcs
SUNWzone
SUNWcsl
SUNWlibsasl
SUNWlibms
SUNWpr
SUNWlxml
SUNWzlib
SUNWtls
SUNWopenssl
SUNWpool
SUNWzfs
SUNWsmapi
SUNWtecla
SUNWckr
SUNWpicl
SUNWmd
SUNWinstall-libs
SUNWwbsup
SUNWgccruntime
SUNWcar
SUNWcakr
SUNWusbs
SUNWusb
SUNWaudd
SUNWkvm
SUNWos86r
SUNWrmodr
SUNWpsdcr
SUNWpsdir
SUNWcnetr
SUNWesu
SUNWkey
SUNWnfsckr
SUNWnfsc
SUNWgss
SUNWgssc
SUNWbip
SUNWbash
SUNWloc
SUNWsshcu
SUNWsshd
SUNWssh
SUNWtoo
SUNWzfskr
SUNWipf
SUNWrtls
SUNWipkg
SUNWpython-pyopenssl
SUNWpython-cherrypy
SUNWadmr
SUNWadmap
SUNWadmlib-sysid
SUNWPython
SUNWbzip
SUNWxwrtl
SUNWTk
SUNWTcl
SUNWlexpt
SUNWperl584core
As last versions of packages have dependences, for example SUNWcs is installing SUNWgccruntime, SUNWPython is installing packages SUNWTk and SUNWTcl. But finally I got installed system with size about 280 mb - it's a smaller than 3 Gb;)
I use the same commands as in Edward's blog (I'm running Solaris Express):
zpool create -f rpool c1t1d0s0
zfs set compression=on rpool
zfs create -p rpool/ROOT/indy/opt
zfs set canmount=noauto rpool/ROOT/indy
zfs set canmount=noauto rpool/ROOT/indy/opt
zfs set mountpoint=legacy rpool/ROOT/indy
zfs set mountpoint=legacy rpool/ROOT/indy/opt
# we're going to do our install in /a
PKG_IMAGE=/a; export PKG_IMAGE
# mount our zpool on /a
mkdir -p $PKG_IMAGE
mount -F zfs rpool/ROOT/indy $PKG_IMAGE
mkdir -p $PKG_IMAGE/opt
mount -F zfs rpool/ROOT/indy/opt $PKG_IMAGE/opt
For Solaris Express you must install pkg (not required if you're booting from OpenSolars or MilaX LiveCD):
hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate
cd gate/src
make install
# create the basic opensolaris install image..
pkg image-create -F -a opensolaris.org=http://pkg.opensolaris.org $PKG_IMAGE
pkg refresh
Note: I use here list of basic packages - pkg.txt (see above):
for pkg in `cat pkg.txt`; do pkg install $pkg; done
Next:
# seed the initial smf repository
cp $PKG_IMAGE/lib/svc/seed/global.db $PKG_IMAGE/etc/svc/repository.db
chmod 0600 $PKG_IMAGE/etc/svc/repository.db
chown root:sys $PKG_IMAGE/etc/svc/repository.db
# setup smf profiles
ln -s ns_files.xml $PKG_IMAGE/var/svc/profile/name_service.xml
ln -s generic_limited_net.xml $PKG_IMAGE/var/svc/profile/generic.xml
ln -s inetd_generic.xml $PKG_IMAGE/var/svc/profile/inetd_services.xml
ln -s platform_none.xml $PKG_IMAGE/var/svc/profile/platform.xml
# mark the new system image as uninstalled
sysidconfig -b $PKG_IMAGE -a /lib/svc/method/sshd
touch $PKG_IMAGE/etc/.UNCONFIGURED
# configure our new /etc/vfstab
printf "rpool/ROOT/indy -/t//t/tzfs/t-/tno/t-/n" >> $PKG_IMAGE/etc/vfstab
chmod a+r $PKG_IMAGE/etc/vfstab
# turn off root as a role
printf "/^root::::type=role;/ns/^root::::type=role;/root:::://nw" |/
ed -s $PKG_IMAGE/etc/user_attr
# delete the "jack" user
printf "/^jack:/d/nw" | ed -s $PKG_IMAGE/etc/passwd
chmod u+w $PKG_IMAGE/etc/shadow
printf "/^jack:/d/nw" | ed -s $PKG_IMAGE/etc/shadow
chmod u-w $PKG_IMAGE/etc/shadow
# copy of my existing host sshd keys
cp -p /etc/ssh/*key* $PKG_IMAGE/etc/ssh
# configure /dev in the new image
devfsadm -R $PKG_IMAGE
ln -s ../devices/pseudo/sysmsg@0:msglog $PKG_IMAGE/dev/msglog
# update the boot archive in the new image
bootadm update-archive -R $PKG_IMAGE
# update to the latest version of grub (this command generated
# some errors which i ignored).
$PKG_IMAGE/boot/solaris/bin/update_grub -R $PKG_IMAGE
# create an informational grub menu in the install image that
# points us to the real grub menu.
cat <<-EOF > $PKG_IMAGE/boot/grub/menu.lst
#########################################################################
# #
# For zfs root, menu.lst has moved to /rpool/boot/grub/menu.lst. #
# #
#########################################################################
EOF
# create the new real grub menu
cat <<-EOF > /rpool/boot/grub/menu.lst2
default 0
timeout 10
splashimage /boot/grub/splash.xpm.gz
title Solaris 2008.11 console
findroot (pool_rpool,0,a)
bootfs rpool/ROOT/indy
kernel/$ /platform/i86pc/kernel//$ISADIR/unix -k -B /$ZFS-BOOTFS,console=ttya
module/$ /platform/i86pc//$ISADIR/boot_archive
EOF
# make the grub menu files readable by everyone.
chmod a+r $PKG_IMAGE/boot/grub/menu.lst
chmod a+r /rpool/boot/grub/menu.lst
# setup /etc/bootsign so that grub can find this zpool
mkdir -p /rpool/etc
echo pool_rpool > /rpool/etc/bootsign
umount $PKG_IMAGE/opt
umount $PKG_IMAGE
reboot