netbt
command As much as possible, we have left Windows XP "stock". Some Windows services are shut down: Messenger, SSDP Discovery Service, Universal Plug and Play Device Host, and Remote Registry. Other setting changes are described under Network config and Routing below.
Before booting the node at swap-in time, Emulab loads a
fresh image of Windows XP
onto the experiment nodes in parallel, using our frisbee
service.
Emulab software automatically configures each Windows XP node, providing the
expected experiment user environment including: user accounts and Emulab SSH
keys; remote home, project, and shared directories; and network connections.
The Cygwin GNU environment is provided, including Bash and TCSH shells, the C/C++, Perl and Python programming languages, and several editors including Emacs, vim, nano and ed.
All of the Emulab experiment automation and monitoring services have been
ported to run on Windows/Cygwin. Sometimes the Emulab documentation shows
explicit command paths, such as /usr/testbed/bin/emulab-sync
. Cygwin handles both Unix and Windows-style command paths,
as described below .
The Emulab web interface manages a separate Windows password in the user profile, as well as making login connections to the experiment nodes. Remote Desktop Protocol service supports Windows Desktop logins from the user's workstation screen to the experiment node. SSH and Serial Console command-line connections are also supported.
Windows XP installations are more hardware dependent than Linux or FreeBSD. At present, this Windows XP image runs on most of the Emulab pc node types, including pc600, pc850, pc3000 and pc3000w (wifi) nodes.
The "Client for Microsoft Networks" software contacts the SMB server, in this case Samba running on the file server known as Fs (an alias for Users.) The SMB protocol authenticates using a plain-text user name and password, encrypted as they go across the network. (These Windows Shares are then accessed by UNC paths under Cygwin mounts, described below.)
In Windows GUI programs, you can just type the UNC path into the Address bar
or a file-open dialog with backslashes, e.g. \\fs\share
or
\\fs\<username>
. User and project shares are marked "not
browsable", so just \\fs
shows only share
.
If you want to serve files from one of your experiment nodes to others, see
the section on The netbt
command .
rdesktop
for RDP logins by our Web interface under Unix, and for the Samba mount of
shared directories like your home directory under an ssh login, so you don't
have to type it in those cases. You will have to type it each time if
you use the Microsoft RDC (Remote Desktop
Connector) client program from a Windows machine.The default Windows password is randomly generated. It's easy to change it to something easier to remember.
To see or edit your Windows password, log in to Emulab, and click Manage User Profile and then Edit Profile under User Options. You will see Windows Password fields in addition to the regular Emulab Password fields.
When you change your Windows password, you will also have to re-type it as a check. The new Windows password should propagate to the Samba server on Fs instantly, so you can swap in an experiment and log in to its Windows nodes with the new password.
If you have already swapped-in experiment nodes and change your Windows
password, the account information including passwords will be updated at the
next Emulab watchdog daemon isalive
interval. This should be in
3 to 6 minutes.
tb-set-node-os $node WINXP-UPDATEThe Emulab Windows XP images are no longer specific to a particular hardware type. (See the Change Log for more information.) You can explicitly specify the hardware type to run on, for example:
tb-set-hardware $node pc3000Currently available Windows XP images are:
It is updated periodically from Windows Update, typically after a Microsoft "Patch Tuesday", the second Tuesday of each month. All critical and security fixes are installed, up through the date we pull the image file. (See the date created field on the individual WINXP Image ID's ).
Note: The Windows Firewall is disabled by default (as it will inform you repeatedly!)
Note: These base images are hardware-dependent, and will run only on the
pc850 (and possibly the pc600) without a suffix, and on the pc3000 with the
-3000
or -pc3000
suffix.
slothd
service. TCP/IP address autoconfiguration
is disabled (
IPAutoconfigurationEnabled=0 ) so that unswitched interfaces like the
sixth NICs on the pc3000's don't get bogus Microsoft class B network
169.254.0.0 addresses assigned.
The Emulab pc850 node type has five network interfaces, and the pc3000 has
six. However, the Windows ipconfig /all
command only
shows the configuration information for the enabled network interfaces. There
will always be one enabled control
net interface on the 155.98.36 network. The others are disabled if not
used in your experiment. (See file
/var/emulab/boot/ipconfig-cache
for a full listing from boot
time, including the interfaces that were later disabled.)
If you specified links or LANs in your experiment network
topology , other interfaces will be enabled, with an IP address, subnet
mask, and gateway that you can specify in the NS file.
Notice that the Windows names of the interfaces start with Local Area
Connection
and have a number appended. You can't count on what this
number is, since it depends on the order the NIC's are probed as Windows
boots.
ipconfig
report an ip address and mask of 0.0.0.0
,
while the TCP/IP properties dialog boxes and the netsh
command
show the proper values. Our startup scripts disable and re-enable the network
interface in an attempt to reset this. Sometimes it doesn't work, and another
reboot is done in an attempt to get the network up.rtproto
Session
is not supported. However, basic routing between connected
network components of your experiment topology works. The Windows command to
see the routing tables is route print
. The
IPEnableRouter=1 registry key is set on multi-homed hosts in the
experiment network, before they are rebooted to change the hostname.
rtproto Static
is supported in all recent WINXP images,
but not in WINXP-02-16 (2005) or before.
rtproto Static-old
or rtproto Manual
will work in any image.
There is more information on routing in the Routing Section of the Emulab Tutorial.
If your experiment does not require that full freedom, consider adding a control net firewall node statement to your experiment ns file. This allows you to control the security level of your connection to the Internet by a style keyword , for example:
set fw [new Firewall $ns] $fw set-type ipfw2-vlan $fw set-style basic
After 10 minutes in the reloading
state, Emulab gives up
and reboots the node to try again, even if Frisbee is working hard
and nearly done. We could extend the time-out when the nodes are
behind a control-net firwall, or change to accept some slowdown as
long as the image load is making progress rather than using a fixed
time-out.
netsh firewall set opmode
DISABLE
command, to allow RDP and SSH access to Windows nodes. There
is an XP display bug related to this: sometimes the "Security Center" that
shows at RDP login indicates that the Windows Firewall is turned on. Clicking
through to the firewall settings shows that it is really off.
With hardware-independent (Sysprep
'ed) images, the first boot is
actually running Mini-Setup
as well, setting up device drivers
and so on.
It's best not to log in to the nodes until the experiment is fully swapped-in. (You may be able to log in briefly between the first two reboots; if you see the wrong pcXXX name, you'll know that a reboot is imminent.) You can know that the swap-in process is finished by any of these methods:
node_reboot pcxxxIf you are able to log in but your remote home directory isn't mounted, you have the additional option of executing this command on the node itself:
/sbin/rebootThe EmulabStartup service runs
/usr/local/etc/emulab/rc/rc.bootsetup
,
logging output to /var/log/bootsetup.log
. If you're having swap-in
problems and rc.bootsetup doesn't finish sending ISUP
to Emulab within
10 minutes, the node will be rebooted. After a couple of reboot cycles without a
ISUP
, Emulab gives up on the node.
If you want to prevent swap-in failure, whether to diagnose the problem or to continue
manually, you may add this line to your
ns file
for each Windows node:
tb-set-node-failure-action $node "nonfatal"
(where $node
is replaced with the node variable, of course.)
It will still complain if it doesn't get the ISUP signal at the end of rc.bootsetup, but the swap-in will proceed and allow you to figure out what's happening.
console
command on Ops.
You will have to type your Windows
Password when logging in, except for SSH when you have ssh-agent keys loaded. Or you can set up your browser to automatically connect in one click from the Emulab web interface and pop up a connection window. Once you start swapping in an experiment, the Emulab Experiment Information page contains a table of the physical node ID and logical node name, status, and connection buttons. The captions at the top of the button columns link to pages explaining how to set up up mime-types in your browser to make the buttons work, from FreeBSD, Linux, and Windows workstations:
agetty
and sysvinit
packages. This is
the only way in when network connections are closed down! You can
also monitor the Frisbee loading and booting of the Windows image on
the console. rdesktop
client software is used from Linux and Unix
client workstations. /cygdrive/c/WINDOWS/system32
and
/cygdrive/c/WINDOWS
to your $PATH
in
~/.cshrc
and either ~/.bash_profile
or
~/.profile
. Don't worry about your home directory dot-files
being shared among Windows, FreeBSD, and Linux nodes; non-existent directories
in the $PATH
are ignored by shells. When new Emulab user accounts are created, the default CSH and Bash dotfiles are copied from the FreeBSD /usr/share/skel. They replace the whole $PATH rather than add to it. Then we append an Emulab-specific part that takes care of the path, conditionally adding the Windows directories on Cygwin.
ping
program has ping [ -dfqrv ] host [ packetsize [count [ preload]]]
You can load it yourself now using Cygwin Setup .
traceroute
and ifconfig -a
. The Windows system equivalents are
tracert
and ipconfig /all
. The Fast User Switching option to XP is turned on, so a second RDP connection disconnects a previous one rather than killing it. Similarly, just closing your RDP client window disconnects your Windows Login session rather than killing it. You can reconnect later on without losing anything.
SSH doesn't count as a desktop, so you can ssh in and use this command:
qwinsta
(Query WINdows STAtion) to show existing
winstation sessions and their session ID's, and this one to reset
(kill) a session by ID: rwinsta
You can go back to the "classic" user interface of Windows 2000, including showing My Computer. Right-click on the background of the Taskbar which contains the Start button at the left, and choose "Properties". Select the "Start Menu" tab, click the "Classic Start menu" radio-button, and click "OK".
Alternatively, you can force My Computer to appear on your XP desktop by right-clicking on the desktop background and choosing "Properties". Select the "Desktop" tab and click "Customize Desktop..." to get the "Desktop Items" dialog. Turn on the My Computer checkbox, then click "OK" twice.
rxvt
and Cygwin
.
rxvt
shells run in windows with
X-like cut-and-paste mouse clicks:
NOTE: The default colors used in Bash and rxvt don't work
well in 4-bit color mode under RDP. Make sure you update your
rdp-mime.pl to get the rdesktop -a 16
argument
for 16-bit color. Or, you can over-ride the rxvt defaults by
putting lines in your ~/.Xdefaults
file like this:
rxvt*background: steelblue
Cygwin
shells run in a Windows Terminal
window, just as the Windows cmd.exe does. These are the ones to use
if you're connecting from a Windows workstation. Quick-edit mode is on by default, so you can cut-and-paste freely between your local workstation desktop and your remote RDP desktops.
In a Windows Terminal window on your RDP remote desktop, the quick-edit cut-and-paste mouse clicks are:
C:\Documents and Settings
, and creates
the registry key (folder) for persistent settings for that user. We arrange that early in the user's login process, a user HOME environment variable value is set in the user's registry. Otherwise Emacs wouldn't know how to find your .emacs setup file in your remotely mounted home directory.
User "root" is special, and has a local home directory under
/home
. /home
is a Cygwin symbolic link to
C:\Documents and Settings
.
To restart the computer, run /sbin/reboot, or use the "Shut Down" menu of Task Manager. One way to start Task Manager is to right-click on the background of the Taskbar at the bottom of the screen and select "Task Manager".
netbt
command The SMB (Server Message Block) protocol is used to actually serve files. (See http://en.wikipedia.org/wiki/Server_Message_Block.)
In Emulab, we normally disable NetBT on experiment nodes, because it chatters
and messes up slothd network idle detection, and is not needed for the usual
SMB mounts of /users
, /proj
, and /share
dirs, which are served from a Samba service on fs.
However, NetBT does have to be enabled on the experiment nodes if you
want to make Windows file shares between them. The netbt
script sets the registry keys on the Windows network interface objects. Run
it on the server nodes (the ones containing directories which you want to
share) and reboot them afterwards to activate. There is an optional
-r
argument to reboot the node.
Usage: netbt [-r] off|onIf you use
netbt
to turn on NetBT, it persists across reboots.
No reboot is necessary if you use Network Connections in the Control Panel
to turn on NetBT. It takes effect immediately, but is turned off at reboot
unless you do netbt on
afterward as well.
ipconfig /all
reports "NetBIOS over Tcpip . . . : Disabled" on
interfaces where NetBT is disabled, and says nothing where NetBT is
enabled.
To start sharing a directory, on the node, use the net share
command, or turn on network sharing on the Sharing tab of the Properties of a
directory (folder.)
As a security measure, Windows has disabled remote access to this computer. However, you can enable remote access and safely share files by running the _Network_Setup_Wizard_. _If_you_understand_the_security_risks_but_want_to_share_ _files_without_running_the_wizard,_click_here._"
pcXXX
, where XXX
is the machine number. These will
show up in My Network Places / Entire Network / Microsoft Windows
Network / Emulab
once you have used them. IP numbers can also be used in UNC paths, giving you a way to share files across experiment network links rather than the control network.
There is an Emulab-generated LMHOSTS
file, to provide the
usual node aliases within an experiment, but it is currently ignored even
though "Enable LMHOSTS lookup" is turned on in the TCP/IP WINS settings. Try
nbtstat -c
and nbtstat -R
to experiment with this.
(See the Microsoft
doc for nbtstat.
prepare
script as user root
since
there are no su
or sudo
commands on Windows. This
is optional on the other OS types, but on Windows, proper TCP/IP network setup
depends on prepare
being run.
% passwd root Enter the new password (minimum of 5, maximum of 8 characters). Please use a combination of upper and lower case letters and numbers. New password: Re-enter new password:This works because you are part of the Windows
Administrators
group.
Otherwise you would have to already know the root password to change it.
prepare
below,
the root password will not match the definitions of the Emulab Windows
services (daemons) that run as root, so they will not start up. root
, because
prepare
will be unable to remove their login profile
directories if they are logged in. (See QWINSTA.)
root
through the Console or SSH,
using the password you set above, then run the prepare
command.
(It will print "Must be root to run this script!" and do nothing
if not run as root.)
/usr/local/etc/emulab/prepareIf run without option arguments,
prepare
will ask for the
root password you want to use in your new image, prompting twice as the
passwd command did above. It needs this to redefine the Emulab Windows
services (daemons) that run as root. It doesn't need to be the same as
the root password you logged in with, since it sets the root password to
be sure. The Administrator password is changed as well, since the
Sysprep option needs that (below.)
-p
option to specify the root
password on the command line:
/usr/local/etc/emulab/prepare -p myRootPwd
-n
option says not to change the passwords at
all, and the Emulab Windows services are not redefined.
/usr/local/etc/emulab/prepare -n
-s
option is used to make
hardware-independent
images using the Windows
Sysprep
deploy tool. If you use it with the
-n
option instead of giving a password, it assumes that
you separately blank the Administrator password, or edit your
Administrator password into the
[GuiUnattended]AdminPassword
entry of the sysprep.inf
file.
/usr/local/etc/emulab/prepare -s -p myRootPwd
prepare -s
refuses to run from an
SSH or RDP login. Sysprep
is used by PC hardware manufacturers as they
make XP installation disks with their own drivers installed. The
Sysprep
option to run an unattended
Mini-Setup
at first boot instead of the normal "Out Of
the Box Experience" is used in some large corporate roll-outs. We do
both.
The Emulab /share/windows/sysprep
directory contains
several versions of the XP deploy tools matched to the XP service
pack level, appropriate device driver directories, and a draft
sysprep.inf
file to direct the automated install
process.
Mini-setup
needs to reboot after setting up device
drivers. XP also needs to reboot after
changing the host name. We combine the two by using a
Cmdlines.txt
script to run rc.firstboot
-mini
to set the host name at the end of
Mini-Setup
.
Thus we only pay the extra time to set up device drivers and so on from scratch, about two minutes, rather than adding a third hardware and XP reboot cycle.
The Cygwin command cygcheck -c
lists the packages that are
installed, and their current version number and status.
Package-specific notes and/or documentation for installed packages are in
/usr{,/share}/doc/Cygwin/*.README
and
/usr/share/doc/*/README
files.
The Cygwin package site lists
the available pre-compiled packages and provides a search engine.
If you want to install more Cygwin pre-compiled packages, run the graphical installer:
C:/Software/Cygwin/setup.exe
The Cygwin command cygcheck -l package-name
lists the
contents of an installed package, which may help you to make a tarfile or rpm
from a package you have installed. You can then cause it to be installed
automatically by Emulab into all of the nodes of your experiment. See the
Tutorial for more information about installing RPM's and tarballs.
Watch out for post-install scripts in:
/etc/postinstall/package-name.sh{,.done}
Many packages not in the Cygwin package site have also been ported to Cygwin already. Download the sources to an experiment node and try
./configure make make installas usual.
UNC paths with leading double-slashes and a server name,
e.g. //fs
, are used to access the SMB Shares under Cygwin.
Emulab then uses the Cygwin mount command to
make them appear on the usual Unix paths for the Emulab shared directories:
/users/<username>
, /proj/<pid>
,
/group/<pid>/<gid>
, and /share
.
The Cygwin mount
command lists what you could access on
the Samba server, with the UNC path in the first column. Unix file
permissions may further limit your access on the Samba server. Log in to Ops
to investigate.
/share/windows
contains Windows software. See
/share/windows/README.bin
for descriptions of binary packages
available for installation.
In Windows GUI programs, you can just type the UNC path into the Address bar
or a file-open dialog with backslashes, e.g. \\fs\share
or
\\fs\<username>
. User and project shares are marked "not
browsable", so just \\fs
shows only share
.
Windows limitation: There is only one protection mask for
everything in a whole mount/share under SMB. It's set in the "share
properties" on the server (Samba config file in this case) so
chmod
will do you no good across SMB.
Cygwin limitation: There is a hard-coded limit of 30 mount
points in Cygwin. Cygwin uses 4 of them, and Emulab uses another 3 or 4.
So some of your /users
mounts will fail on Windows startup if you
have more than 23 or 24 members in your project, unless they are grouped into
smaller subgroups .
Cygwin accepts either flavor of slashes in paths, Unix/POSIX-style forward-slashes, or Windows-style back-slashes. In Unix shell commands, backslashes need to be quoted.
Single-quotes work best. Doubling each backslash also works. This
must also be done inside double-quotes. Examples:
'\single\quoted'
, "\\double\\quoted"
,
\\un\\quoted
. (The difference between double and single
quotes is that $variable references and back-quoted command execution
are expanded in double-quotes.)
When you invoke Windows (as opposed to Cygwin) commands, for example
net use
, they will know nothing about Unix-style
paths in their arguments. The
cygpath
utility is an aid to converting paths
between the Unix and Windows conventions.
cygpath -w
converts its arguments to Windows format, and
cygpath -u
converts its arguments to Unix format,
e.g.
$ cygpath -w /cygdrive/c/WINDOWS c:\WINDOWS $ cygpath -u 'c:\WINDOWS' /cygdrive/c/WINDOWS
Cygwin mount points are shown by the mount
and
df
commands.
Note that there is a hard-coded limit of 30 mount points in Cygwin.
Attempts to use the Cygwin mount
command after that will
fail.
See the discussion of mount points and UNC //machine
paths to SMB shares above .
Another special case is the Unix root, "/
". It's
mounted to C:\cygwin
in the Windows filesystem.
Cygwin knows about drive letter prefixes like
C:
, which are equivalent to
/cygdrive/<drive-letter>
. However,
/cygdrive
, like /dev
, isn't a real directory,
so you can't ls
it.
Some Windows software requires drive-letter mounts to be created for its use.
You can use the Windows net use
command to
associate drive letters with UNC paths to SMB shares, e.g.
net use W: '\\fs\share\windows'
You can use the Windows subst
command to associate
drive letters with local paths, e.g.
subst T: 'C:\Temp'
Filename completion in Cygwin shells with <Tab>
doesn't work following a drive-letter prefix, but it works normally
after a /cygdrive/
prefix. Also, filename completion is
case-sensitive, although the underlying Windows is case-insensitive, so
a filename in the wrong case is still opened properly.
Cygwin is running in NTSEC
(NT Security) mode, so /etc/passwd
and
/etc/group
contain Windows SID's as user and group ID's.
Your Windows UID is the computer SID with a user number appended,
something like
S-1-5-21-2000478354-436374069-1060284298-1334
.
Cygwin commands, such as id
, ls -ln
, and
chown/chgrp
, use the numeric suffix as the uid,
e.g. 1334
. This is different from your normal Emulab Unix
user ID number, and the Samba server takes care of the
difference.
The id
command reports your user id and group
memberships.
Note that all users are in group None
on XP.
Contrary to the name, this is a group that contains all users.
It was named Everybody
on Windows 2000, which was a better
name.
There is no direct equivalent of the Unix setuid programs under
Windows, and hence no su
or sudo
commands.
The Windows equivalent to running a Unix command as root
is membership in the Windows Administrators
group.
Emulab project members who have either local_root
or
group_root
privileges are put in group
wheel
, another alias for
Administrators
. Project members with user
privileges are not members of the wheel group.
You can ssh
a command to the node as the target user, as
long as you arrange for the proper authentication.
For C/C++ code, there is a setuid()
function in the Cygwin
library, which "impersonates" the user if proper setup is done first.
root
There is not normally a Windows account named root
.
root
on XP is just another user who is a member of the
Administrators
group, see below.
We create a root
account as part of the Emulab setup to
own installed software, and to run services and Unix scripts that check
that they're running with root privileges.
You can log in as root
via RDP, ssh
, or the
serial console if you change the root password as described in the custom Windows OS images section.
The root
user does not have any Samba privileges to access
Samba shared mounts, including the /proj
,
/groups
, and /users
.
Administrators
group
All users are members of the Windows Administrators
group.
(The Emulab non-local-root user property is not implemented on
Windows.)
Membership in the Windows Administrators
group is very
different from being root
on Unix, and is also different
from being logged in as Administrator.
Administrators
group membership on Windows only means you
can set the ownership, group, and permissions on any file using the
Cygwin chown
, chgrp
, chmod
, or
their Windows equivalents. Until you have done that, you can be
completely locked out by read, write, or execute/open permissions of
the directory or files.
Another subtlety is that the group called None
on XP is
what used to be named Everybody
on Windows 2000. All
users are automatically in group None
, so in practice
setting group None
permissions is no different from
setting public access permissions.
Cygwin does a pretty good job of mapping Unix user-group-other file permissions to Windows NT security ACLs.
On Windows, unlike Unix, file and directory permissions can lock out root, Administrator, or SYSTEM user access. Many Unix scripts don't bother with permissions if they're running as root, and hence need modification to run on Cygwin.
This creates a potential problem with the tb-set-node-tarfiles and tb-set-node-rpms commands. The tb-set-node-tarfiles page says "Notes: 1. ... the files are installed as root". So you can easily install files that your login doesn't have permission to access.
The solution is to chmod
the files before making the
tarball or rpm file to grant appropriate access permissions.
Cygwin tries to treat .exe
files the same as executable
files without the .exe
suffix, but with execute
permissions turned on. (See the
Cygwin Users Guide .)
This breaks down in Makefile actions and scripts, where
rm
, ls -l
, and install
commands
may need an explicit .exe
added.
You cannot run Windows GUI (Graphical User Interface) programs under ssh, on the serial console, or by tb-set-node-startcmd. There is no user login graphics context until you log in via RDP.
However, you can use a startcmd
to set a Windows
registry key that causes a GUI program to be run automatically for all
users when they log in to the node via RDP, if that's what you
want. The program can be one that is installed by tb-set-node-tarfiles.
You can pick any regkey name you want and put it in the
Run
registry folder. It's good not to step on the ones
already there, so choose a name specific to your program. Put the
following in your startcmd
script:
regtool -s set /HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/mypgm 'C:\mypgm\mypgm.exe'(where
mypgm
is the name of your program, of course.)
Notice that the value string is single-quoted with C:
and
backslashes. Windows interprets this regkey, and wants its flavor of
file path.
^X-5-2
makes
another one.
The /usr/local/bin/emacs
executable is a symlink to
/cygdrive/c/emacs-21.3/bin/runemacs.exe
, which starts up an Emacs
on the desktop. This only works under RDP, since SSH logins have a null
desktop.
There is also a /usr/local/bin/emacs-exe
executable, a symlink to
/cygdrive/c/emacs-21.3/bin/emacs.exe
, which is only useful as an
Emacs compiler. It could be used to run Emacs in an SSH or Serial Console
login window with the
-nw
(no windows) flag, except that it exits with emacs:
standard input is not a tty
. Another thing not to try is running
emacs-exe -nw
in a Bash or TCSH shell on the RDP desktop. It
crashed Windows XP when I tried it.
cygwin-mount.el
in c:/emacs-21.3/site-lisp/
makes Cygwin mounts visible within NtEmacs. It doesn't do Cygwin
symlinks yet. ~root/.emacs
mouse-wheel-mode
CUA-mode
option ( ^C
copy /
^X
cut on selection, ^V
paste,
^Z
undo).
The installer for the
Microsoft Framework Version 1.1 Redistributable Package is downloaded to
/share/windows/dotnetfx.exe
. Run it to download the
runtime, agreeing to the EULA. It takes a few minutes, and uses 104 meg of
disk.
If you want to develop .NET code as well as run it, you will need to install the .NET Framework SDK Version 1.1 .
Linktest
program. It does
a better job of finishing-up, so the last packet (number 401) tends to
make it through rather than getting dropped all the time. Windows
still has more episodes of significant packet loss than either FreeBSD
or Linux. netbt
script to enable serving Windows file
shares from an experiment node, see The
netbt
command . nc
program.
There's no man page, but see
/usr/share/doc/netcat/README
. prepare -s
option. It is no longer necessary to specify the hardware type with an image suffix, although you may want to do so to control the allocation of physical nodes to your experiment.
The unsuffixed WINXP-{SP[012],UPDATE}
images will now run on
the pc3000 and pc3000w (WiFi) nodes, in addition to the pc850 and pc600.
For compatibility with existing experiments, the image names with
-pc3000
suffixes will still work, but they are just symlinks
to the unsuffixed images.
Notes:
Details: Outgoing connections work fine, so the node sets up under Emulab correctly. Incoming ssh connections time-out, although RDP works fine. Netstat shows the ssh socket 22 listening, but no connection attempts are logged by sshd in /var/log/messages. Packet capture shows that TCP SYN packets are being received, but the SYN-ACK handshake never goes out, so it's a lower-level problem.
It seems that adding Sysprep to the mix has also improved the reliability of TCP/IP stack setup, probably because it tears down all of the internal network interface data structures and recreates them. This adds about two minutes to the Windows setup time, which seems worth-while.
prepare
script now requires you to set your own
root
password.
rtproto Session
?