Troubleshooting ZfD3 Imaging

Novell Cool Solutions: Feature

ZENworks for Desktops Imaging is one of the most powerful new features in the product. Here is a nice collection of troubleshooting tips and how-to instructions that solve many of the problems that customers have posed to Customer Support. Check here first, and save yourself a call.

Troubleshooting ZEN partition / bootdisk problems

Network problems: NIC card not getting detected

Type ifconfig at the prompt. If it shows up the MAC address, NIC card was detected.

If that fails, type ifconfig eth0 up, and then ifconfig, and see if the hardware details are shown.

If that does not work it means that the network card is not getting detected. You might want to search for the drivers for that NIC card, add that driver to the second boot diskette using the linux boot utility, and then try booting again.

Hint: To check if any given driver will work (only for desktops, not for laptops), instead of adding the driver through second bootdisk, do the following:

Boot in manual mode.

Copy the driver to a floppy.

Mount the floppy.

Copy the driver from the floppy to the area /lib/modules/2.2.14/net.

Type insmod /lib/modules/2.2.14/net/<drivername>

Then type ifconfig eth0 up, and then ifconfig to see if the driver worked.

Network problems: DHCP not working

Fix

Boot from disks in manual mode and then:

Type ifconfig at the prompt, if it shows up the IP address, dhcp works fine.

If that fails, type ifconfig eth0 up, and then pump i eth0 h localhost.localdomain.com, and then ifconfig, see if the IP address is shown. (pump is the dhcp client)

If that does not work it means that the dhcp is not working. We could try the following solutions:

Try disabling plug and play, do a cold reboot, and then boot again, and repeat above steps.

Copy another dhcp client namely dhcpcd, to a DOS floppy, mount the floppy to any directory (mount -t vfat /dev/fd0 /mnt/floppy), and then run the command /mnt/floppy/dhcpcd, and then type ifconfig, see if it shows you the ip address.

To always use this client, changes are to be done either to the ZEN partition (if the problem is just with one machine), or to the second bootdisks (if a whole set of machines is not working). To achieve this:

dhcpcd needs to be added to root.tgz file on the second floppy, or to the bin directory on the ZEN partition.

The script network.s has to be changed and the line, "pump i eth0 h localhost.localdomain.com" needs to be commented out, and replaced with the line "dhcpcd".

Kernel boot problems: Linux bootdisks do not boot completely, zip drive is present on the machine

Try putting a disk in the zip drive and see if it boots.

If this worked, then the loader has to be configured to tell the kernel not to probe for those devices.

The first step would be to determine which device type is corresponding to the zip drive. In linux, the disk drives are named /dev/hda , /dev/hdb and so on for ide drives. We would need to figure out what drive name corresponds to the zip drive. This can be done by typing img d, seeing which devices are shown, and taking a guess at which one of them could represent the zip drive. This could be confirmed by mounting the zip drive, and trying to see the disk data contents.

Make changes to syslinux.cfg file on the first bootdisk, and at the end of each append line add the following, <devicename=noprobe>, for eg:if zip drive corresponds to devicename /dev/hdb then type hdb=noprobe at the end.

Make changes to lilo.s and install.s to ask the zen partition lilo loader to ignore these drives. This will only be required if a linux partition is being installed or already installed on the workstation. In lilo.s and install.s the line append hdb=noprobe is to be added to the section where loader configuration is being written to /etc/lilo.conf.

These changes are to be made using the linux box, it is explained in how-to section.

Boot using the floppy in manual mode, do an install and it should work ok. To make changes to the existing linux partition, copy the file /bin/lilo.s to the harddisk /mnt/harddisk/bin directory. Unmount the harddisk, run lilo.s, and reboot, take out the floppy, and it should boot fine from the harddisk.

Kernel boot problems: Linux bootdisks does not boot completely or it boots, but has an unknown problem

Fix

Get a debug version of the kernel from Novell Technical Support.

Troubleshooting Imaging Problems

Unable to get workstation to pick up the job.

The job is assigned to the workstation object.

Fix

Make sure that the network card is configured properly.

Try to ping the workstation from the server to see that it can be reached.

Make sure that the proxy address is set correctly. The how-to section explains how to do it.

Make sure that the imaging server is up and running.

Type img i z, check to see if the workstation DN and the treename is correct. If it is not correct, then read the image safe data section in manual, and follow the steps to configure image safe data correctly.

This applies only for an upload, ie, taking an image. Check out the restricted path field in the server package of the server you are trying to put the image to. If the upload path, is not one of the directories/sub directories in the restricted path list, then it will fail to upload the image.

Check the log file zimglog.xml on the server to see if it reports any error.

Unable to get workstation to pick up any image/ pick up the correct image

No workstation DN, the imaging server policy is set to distribute images according to specific hardware.

Fix

Make sure that the network card is configured properly.

Try to ping the workstation from the server to see that it can be reached.

Make sure that the proxy address is set correctly. The how-to section explains how to do it.

Make sure that the imaging server is up and running.

Make sure that the server policy is assigned to the proxy server the workstation is trying to contact.

Type img i to see if the hardware information shown is correct. For eg: if policy is configured to distribute image to a machine with harddisk > 5MB, but img i shows the hardware size as 4.2 MB, then that policy will not work correctly. In some cases the image engine fails to find the exact NIC card, so in those cases too the policy might not work correctly.

img i z will show you the last base image, if the base image is the same as the image you are trying to put, then it will not put down the image, till you override this flag in server package.

Check the log file zimglog.xml on the server to see if it reports any error.

HOW-TO

Configure the boot floppy loader

Edit the file syslinux.cfg on the first bootdisk from a DOS/Windows machine. (You could use Wordpad.)

To configure the loader to boot in manual mode by default, change the line default Imaging to default manual, as shown below default manual.

To configure the loader to increase/decrease the timeout, change the number after timeout, eg: timeout 1200.

To add kernel parameters, write it at the end of the append line. For example, if you do not want loader to probe the hdb drive, then make changes as Follows: append 2 initrd=initrd.gz hdb=noprobe

Copy files from DOS floppy to the ZEN partition.

Boot in manual mode.

Mount the floppy by typing mount /dev/fd0 /mnt/floppy, or if that does not work then mount t vfat /dev/fd0/mnt/floppy

Mount zenpartition, by typing zenpart.s, mount $ZENDEVICE /mnt/harddisk. (Note that a ZEN partition has to be present for the second command to work. If after typing zenpart.s, and typing export, ZENDEVICE variable is not present, then maybe the ZEN partition is not present.)

Please note that if you have already mounted a device at a particular area, you cannot mount another device in the same area, till you unmount that device. Also note that when copying files to the floppy be sure to unmount the floppy before ejecting it (or else the file may not be copied).

Hint: The files could be copied this way to any partition on the harddrive that can be mounted, so for example if you have a fat16 partition mount it using the mount command as above, and then copying files.

Change scripts on the second boot disk

This requires to either have a linux machine, or maybe a ZEN partition with at least 50 MB of disk space. We are assuming that most people would use the second option.

Boot to manual mode (workstation here has a ZEN partition of around 50MB)

Mount zenpartition, by typing zenpart.s, mount $ZENDEVICE /mnt/harddisk. (Note that a ZEN partition has to be present for the second command to work. If after typing zenpart.s, and typing export, ZENDEVICE variable is not present, then maybe ZEN partition is not present.)

Put the second bootdisk in the floppy drive, and mount it by typing mount /dev/fd0 /mnt/floppy

Create a temporary area on the zenpartition by typing mkdir /mnt/harddisk/secdisk

Copy the file root.tgz from the floppy to this area: cp /mnt/floppy/root.tgz /mnt/harddisk/secdisk

All the scripts are present in bin directory, so now you could use Pico to edit them, for example to edit bin/network.s file type Pico bin/network.s

Make changes to as many scripts as required, saving each of the scripts.

Once all the changes are made, type pwd to see that you are in /mnt/harddisk/secdisk directory. Make sure that root.tgz does not exist. Then type tar zcvf root.tgz * to create the root.tgz with modified scripts.

Copy root.tgz to the second bootdisk by typing cp root.tgz /mnt/floppy (assuming second bootdisk floppy is still mounted).

Now the second bootdisk has the modified scripts. To create more bootdisks with the same modified scripts, either replace the root.tgz on the server with the modified root.tgz or just copy this root.tgz to the other bootdisks.

Hint: To copy any files to root.tgz, for example dhcpcd to bin directory, simply put that utility on a floppy, mount it, and then copy it to the correct area, and then create the tar archive. In this case the command would be to cp /mnt/floppy/dhcpcd /mnt/harddisk/secdisk/bin, then follow step 11 onwards.

Note: There are some tar utilities available in windows which might allow you to add files to root.tgz. However, the scripts cannot be modified on the windows box because the characters used to designate end of line in UNIX and windows differs.

Mount zenpartition, by typing zenpart.s, mount $ZENDEVICE /mnt/harddisk. (Note that a ZEN partition has to be present for the second command to work. If after typing zenpart.s, and typing export, ZENDEVICE variable is not present, then maybe zen partition is not present.)

All the scripts are present in bin directory, so now you could use Pico to edit them. For example to edit bin/network.s file type Pico /mnt/harddisk/bin/network.s

Make changes to as many scripts as required, saving each of the scripts.

Unmount floppy: unmount /mnt/floppy

cd /; unmount /mnt/harddisk

Now the ZEN partition has the modified scripts.

Mount CD-Rom

Insert CD-Rom disc.

Type cdrom.s, it mounts cd-rom to /mnt/cdrom

To eject CD-Rom disc, you need to unmount by typing unmount /mnt/cdrom

Set proxy address at the prompt

Type export to see if the variable PROXYADDR is set.

To set proxy address to another address type export PROXYADDR=, for eg: export PROXYADDR=137.65.45.4

Note: proxy address could be set to dns name, but if a static ip address is assigned to the machine then dns name does not work.

Configure DHCP timeout/ DHCP message Getting DHCP

Either a particular linux partition can be configured, or the 2nd bootdisk can be modified to reflect these changes. For details on how to change files on linux partition/ how to change files in second boot disk refer to the specific How-To.

To configure DHCP timeout, edit the file /etc/pump.conf and change the retries/timeout value

To configure the DHCP message, edit the file /bin/network.s and modify the line Getting DHCP.

Set Imaging server (NetWare) to run in debug mode

Unload imgserv.nlm : unload imgserv

Load "imgserv -debug", the log file is created in sys:\system\zimgdbg.log

Note: There is another log file called zimglog.xml stored on the server which has details of all the imaging sessions that occurred.

Check debug messages on NT Imaging server

Run NDSCons.exe (it is present in the directory where NDS for NT is installed).

Find DS Trace utility, and start it by clicking Start.

In the DS trace window, go to the options menu, and then go to the page where you can specify the kind of messages you want. Deselect all the messages, just select misc other.

Now all the debug messages will show up on the window.

Start/stop imaging service on NT Imaging server

Run NDSCons.exe (it is present in the directory where NDS for NT is installed).

Find imgserv.dll/imgserv.dlm, click on start/stop

Server Error Codes

When running the server nlm in debug mode, the debug messages show some error codes. These error codes are documented below:

// general error codes

Initialization failed -1300
Failed to allocate memory -1301

// error codes used by ds library

Unable to find an image to be downloaded -1400
Failed to authenticate -1401
Failed to clear the work to do flag in workstation object -1402
Unable to find the workstation dN -1403
Failed to get ip address of the referring server -1405
No image to upload -1406
Unable to find policy -1407
The work to do flag in workstation object is not set -1408
Failed to get ip address for a workstation -1409
Invalid tree -1410