Installing nexenta (GNU Solaris) on Sun W2100z box
By Maxim Kartashev on апр 26, 2007
Installing Nexenta OS on Sun W2100z box
This article describes setup and (mostly) configuration of Nexenta OS on an W2100z Opteron box.
Configuration (most important parts):
- Static IP address
- Machine is in NIS domain
- Machine is behind a proxy
Before you install
It's good to have all important configuration files printed out before you start installation process. Most important part is network configuration, since once you have your network up and running, all the rest can be found on the web.
Not much to say, really. During installer startup, it flooded screen with messages about dying (or failing to start) services. These messages last for about five minutes and then were replaced with installation program interface. See Getting Started page on gnusolaris.org. The only difference in my case was that all characters on the screen were blinking. Tetris worked, however, so I was given an opportunity to test my apparent lack of tetris skills.
I followed recommendations and let installer do auto partitioning, which went well after second try. First one resulted in complaints about some differences in disk or partitions (?) sizes. Second succeeded. By the way, default layout looked like this in my case:
/(root) - UFS, ~10%
/export/home- ZFS, ~80%
swap(in my case, 1Gb)
Nexenta post-install configuration
Setting up network connection
Installer has configured everything except for NIS settings well. I don't remember what files needed "manual" attention, but it would be good to check every one from the list above.
In particular, the following two used
127.0.0.1 instead of real IP next to machine name:
Setting up NIS client
First, I needed to find out which services are responsible for that:
$ svcs -a | grep nis
disabled 16:32:49 svc:/network/rpc/nisplus:default
disabled 16:32:49 svc:/network/nis/client:default
Okay, so it's
nis/client that needs to be enabled. But after issuing
svcadm enable nis/clientI still didn't get any output from
ypwhich. I used
svcs -lcommand to find out what's wrong:
# svcs -l nis/client
name NIS (YP) client
/var/svc/log/network-nis-client:default.log showed that NIS clients
lacks configuration parameters, which I forgot to supply to it:
/lib/svc/method/yp: /var/yp/binding/domain.name.com is not a directory
Configuration of NIS client on Nexenta consisted of the following steps:
- Make sure that NIS server name and IP is present in
- Restart NIS client with
svcs restart nis/client
ypwhichto make sure your NIS server is what it's supposed to be
/etc/auto_home) did suit my needs perfectly and
autofsservice was enabled by default (if it isn't, enable it with
svcadm enable autofs.
Setting up package handler, apt-get
My machine is behind proxy, so I needed to provide
apt-get with proxy server
address. Several attempts of setting
http_proxy failed, until I put http://
in front of the address. So, put this in your
~/.bashrc and forget about it:
Theoretically, you can write your own
apt.conf(5), but there was not default
config file in the distribution and setting an environment variable is a lot easier and its also useful
for wget, for example.
NFS configuration for Nexenta
NFS client works "out of the box", but if you need to share directories on your Nexenta box, you need to enable NFS server, which is disabled by default.
At first, I tried to
svcs enable nfs/serverbut with no visible result. Then I shared one direcotory with
share /export/homeand NFS server enabled and worked all right.
However, this shared directory didn't outlive restart and I had to re-share it after that. It appeared that
one has to use
sharemgr(1M) command in order to create persistent NFS shares.
/export/home, I used this command:
sharemgr add-share -s /export/home/ default
Finally, my shares were remembered after reboot and NFS server stayed enabled.
share(1M) says that you need to use
-p option to make
share persistent. I guess it works, too, as well as
/usr/bin/update-manager is supposed to bring the system up to date. However,
right after first boot, it complained about something and asked to run
apt-get -f install manually, which I did and it completed successfully.
apt-get dist-upgrade and
all right and installed a few updates.
Installing new packages
There is fancy GUI to do that called
synaptic. It needs proxy to be specified in
Settings -> Preferences -> Network and after that works fine.
Mark a package for upgrade and then hit Apply button. This will download and install this package and its dependencies.
If you need Solaris packages, look for packages named sunw\* (lower case). For example,
/usr/ccs/bin/sccs are absent in a fresh install
and you have to install sunwsprot package if you need those.
By the way, if you need to work with native Solaris packages, there's
which, as I understand, converts package to .deb format and then tries to install it in Nexenta's native way.
This doesn't always work.
There also are
/usr/sun/sbin directories with native Solaris stuff like
pkgadd, but the latter
didn't work for me either complaining about package database.
Firefox and Thunderbird for Nexenta
Nexenta package repository have Firefox package, which is rather old (1.5.something) and it doesn't have Thunderbird. Also, Nexenta's Thunderbird uses different settings directory name and didn't pick up my email settings, which did upset me to a great extent.
I happened to have latest builds for Solaris x86 downloaded earlier and tried to use these. There is no installer,
they both come in .tar form, which I untarred into
/opt. First try wasn't encouraging:
/usr/dt/bin/dtksh: bad interpreter: No such file or directory
# Patch checker failure. Please apply the missing Solaris patches.
It doesn't work because Nexenta is missing
/usr/dt, which comes from
SUNWdtbas package, unavailable in Nexenta packages repository.
/opt/firefox/firefox-bin worked all right and I didn't have to try to
/usr/dt/ from an OpenSolaris machine.
Installing Java on Nexenta
Download JDK for Solaris x86/x64 (I used x86) from java.sun.com, but start the installer using
/bin/sh. Otherwise, installer fails to calculate checksum properly and issues this message:
The download file appears to be corrupted. Please refer
to the Troubleshooting section of the Installation
Instructions on the download page for more information.
Please do not attempt to install this archive file.
/sbin/sh jdk-6-rc-solaris-amd64.shworks perfectly and installs Java in current directory (so make sure you're running the above command in
/usr, which is kind of a default path for most tools.
However, one problem still persists:
javaws crashes so if you need one, check this Nexenta ticket
for the solution: workaround for javaws
problem in Nexenta.
nVidia graphics card driver
By default, vesa driver is used by
Xorg and graphics performance
is low. But W2100z has nVidia graphics card and nVidia has drivers for Linux, Solaris and what not...
So I downloaded nVidia Solaris driver from
nVidia web site and tried to install it.
Unfortunately, it didn't work very well -- at first, it appeared that nVidia package uses Solaris packages and
/usr/bin/pkgadd can't handle them. Then I discovered
but it didn't work either.
Fortunately, Nexenta's software repository at http://apt.gnusolaris.org already has this driver in .deb package format, so all I had to do was
- search for a packaged with name "nvidia"
- choose nvidia-glx and nvidia-kernel-driver from the list
- mark them for installation (right click for drop-down menu)
- hit "Apply" toolbar button
X server configuration
After the driver is installed, machine needs to be rebooted in single-user mode by
choosing "Single-user" option in
boot manager menu (this is an over-kill, but it appeared to be easier
init 3, since the latter just hung the machine).
Once in single-user mode, log in as root and issue
X -configureThis will generate xorg.conf (which is absent from a fresh install). Copy it to
/etc/X11/xorg.confand adjust to your liking (I didn't have need to change a single bit there, "it just works" ©).
I was particularly surprised that I was not able to redirect X client to my Nexenta box -- clients kept issuing
"can't connect" messages no matter what I did (which was practically limited to
It appeared that X server is started in a more secure way by default and doesn't accept connections from the other
machines (just like OpenSolaris does). If you need it to, edit
/etc/gdm/gdm.conf and set
I had to restart X server after that with Ctrl-Alt-Backspace and, after
xhost + was chanted once again,
clients from other machines were able to connect to my X server.
Solaris sofware on Nexenta
This is not supposed to be a complete list. Here I mention software which I need/use and it doesn't exist in Nexenta or is not Nexta's native, but is available on x86/x64 Solaris/OpenSolaris platform.
|make, sccs||Available as sunwsprot package; use
|Java||Use Solaris x86/x64 version and installed with
|Java Web Start (javaws)||Doesn't work. See workaround for javaws problem in Nexenta|
|Sun Studio 12 IDE||Just works.|
|Sun Studio compilers||cc and CC work.|
|dbx, the Sun Studio debugger||x86 version works, though have several problems; x64 version doesn't work (missing
Can't unlock screensaver
Still can't figure out what's wrong with gnome screensaver as its "Unlock" window doesn't receive mouse/keyboard events and thus doesn't let me to unlock the screen.