Troubleshooting ZfD3 Imaging
Novell Cool Solutions: Feature
|
Digg This -
Slashdot This
Posted: 3 Apr 2001 |
Current version: ZENworks for Desktops 3
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.
Based on TID 10055585.
- Troubleshooting ZEN partition / bootdisk problems
- Network Problems: NIC card not getting detected
- Network Problems: DHCP not working
- Kernel boot problems: Linux bootdisks do not boot completely, zip drive is present on the machine
- Kernel boot problems: Linux bootdisks does not boot completely or it boots, but has an unknown problem
- Troubleshooting Imaging Problems
- Unable to get workstation to pick up the job.
- Unable to get workstation to pick up any image/ pick up the correct image
- HOW-TO
- Configure the boot floppy loader
- Copy files from DOS floppy to the ZEN partition
- Change scripts on the second boot disk
- Change scripts on the linux partition
- Mount CD-Rom
- Set proxy address at the prompt
- Configure DHCP timeout/ DHCP message Getting DHCP
- Set Imaging server (Netware) to run in debug mode
- Check debug messages on NT Imaging server
- Start/stop imaging service on NT Imaging server
- Server Error Codes
Troubleshooting ZEN partition / bootdisk problems
Network problems: NIC card not getting detected
Fix
Boot from disks in manual mode and then
- 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:
- 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.
The section in lilo.s looks something like this after the changes:
echo boot=$BOOTDEVICE > $LILOFILE
#echo timeout=80 > $LILOFILE
echo install=/boot/boot.b >> $LILOFILE
echo backup=/dev/null >> $LILOFILE
echo image=/boot/kernel >> $LILOFILE
echo label=Imaging >> $LILOFILE
echo root=$ZENDEVICE >> $LILOFILE
echo read-write >> $LILOFILE
echo append=\"hdb=noprobe\" >> $LILOFILE
echo image=/boot/kernel >> $LILOFILE
echo label=prompt >> $LILOFILE
echo root=$ZENDEVICE >> $LILOFILE
echo read-write >> $LILOFILE
echo append=\"5 hdb=noprobe\" >> $LILOFILEThe section in install.s looks something like this after the changes:
echo boot=$BOOTDEVICE > /mnt/harddisk/etc/lilo.conf #echo timeout=80 > /mnt/harddisk/etc/lilo.conf echo compact >> /mnt/harddisk/etc/lilo.conf echo install=/boot/boot.b >> /mnt/harddisk/etc/lilo.conf echo backup=/dev/null >> /mnt/harddisk/etc/lilo.conf echo image=/boot/kernel >> /mnt/harddisk/etc/lilo.conf echo label=Imaging >> /mnt/harddisk/etc/lilo.conf echo root=$ZENDEVICE >> /mnt/harddisk/etc/lilo.conf echo read-write >> /mnt/harddisk/etc/lilo.conf echo append=\"hdb=noprobe\" >> /mnt/harddisk/etc/lilo.conf echo image=/boot/kernel >> /mnt/harddisk/etc/lilo.conf echo label=prompt >> /mnt/harddisk/etc/lilo.conf echo root=$ZENDEVICE >> /mnt/harddisk/etc/lilo.conf echo read-write >> /mnt/harddisk/etc/lilo.conf echo append=\"5 hdb=noprobe\" >> /mnt/harddisk/etc/lilo.conf
Here is a sample of what syslinux.cfg looks like after the changes:
default Imaging
prompt 1
timeout 600
display boot.msg
label Imaging
kernel Kernel
append 2 initrd=initrd.gz hdb=noprobe
label manual
kernel Kernel
append 5 initrd=initrd.gz hdb=noprobe
label config
kernel Kernel
append 7 initrd=initrd.gz hdb=noprobe
label install
kernel Kernel
append 4 initrd=initrd.gz hdb=noprobe
label lilo
kernel Kernel
append 3 initrd=initrd.gz hdb=noprobe
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.)
- Copy the file by typing cp /mnt/floppy/<path>/<filename> /mnt/harddisk/<path>/<filename>
- Unmount the harddisk by typing umount /mnt/harddisk
- Unmount the floppy by typing umount /mnt/floppy
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)
- Copy the Pico editor to another floppy, mount that floppy by typing mount /dev/fd0 /mnt/floppy, copy Pico to bin by typing cp /mnt/floppy/Pico /bin, unmount floppy by typing unmount /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 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
- Change to the temp directory by typing cd /mnt/harddisk/secdisk
- Untar root.tgz by typing tar zxvf root.tgz, remove root.tgz by typing rm fr root.tgz
- 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).
- Unmount floppy: umount /mnt/floppy
- Remove the temporary directory by typing cd / ;rm fr /mnt/harddisk/secdisk
- Umount /mnt/harddisk
- 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.
Change scripts on the linux partition
- Boot to manual mode.
- Copy the Pico editor to another floppy, mount that floppy by typing mount /dev/fd0 /mnt/floppy, copy Pico to bin by typing cp /mnt/floppy/Pico /bin, unmount floppy by typing unmount /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 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:
// network error codes
Connection Timeout -1200
Failed to read socket -1201
Failed to write to socket -1202
Connection failure -1203
Socket failure -1204
Data out of sync between server/client -1205
// file error codes
Failed to write to the file -1220
Unable to access file -1221
Image file invalid -1222
Unable to access file -1223
// other error codes exchanged between client/server
Module was unloaded -1240
Wrong client version -1241
Received unknown packet -1242
Failed to get imagesafe data from DS -1243
Work is undefined -1244
Previous job failed -1245
Base image already exists on the workstation -1246
Unable to validate upload path, check server policy package security page for list of restricted paths. -1247
Invalid file path -1248
Image file overwrite is disabled in ConsoleOne -1249
// 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
Novell Cool Solutions (corporate web communities) are produced by WebWise Solutions. www.webwiseone.com


