Hi,

   I try to boot/jumpstart a x86 system over network from Solaris 9 - it works.
Then I try to boot the same x86 server from Solaris 10U3+patches, and it 
doesn't work. pxegrub loads fine:

11:01:23.16398 172.16.5.250 -> 172.16.5.1   TFTP Read "/boot/pxegrub" (octet)
11:01:23.18087   172.16.5.1 -> 172.16.5.250 UDP D=2076 S=52199 LEN=23
11:01:23.18098 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 0
11:01:23.20057   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1456 bytes)
11:01:23.20092 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 1
11:01:23.20099   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (1456 bytes)
11:01:23.20133 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 2
11:01:23.20139   172.16.5.1 -> 172.16.5.250 TFTP Data block 3 (1456 bytes)
11:01:23.20174 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 3
11:01:23.20180   172.16.5.1 -> 172.16.5.250 TFTP Data block 4 (1456 bytes)
11:01:23.20214 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 4
[...]

11:01:23.24073   172.16.5.1 -> 172.16.5.250 TFTP Data block 90 (1456 bytes)
11:01:23.24108 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 90
11:01:23.24116   172.16.5.1 -> 172.16.5.250 TFTP Data block 91 (1456 bytes)
11:01:23.24151 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 91
11:01:23.24157   172.16.5.1 -> 172.16.5.250 TFTP Data block 92 (608 bytes)
11:01:23.24177 172.16.5.250 -> 172.16.5.1   TFTP Ack  block 92
11:01:23.25275 172.16.5.250 -> OLD-BROADCAST TFTP Read 
"menu.lst.0100114334686E" (octet)
11:01:26.26354   172.16.5.1 -> 172.16.5.250 TFTP Error: access violation
11:01:26.26435 172.16.5.250 -> OLD-BROADCAST TFTP Read 
"menu.lst.0100114334686E" (octet)
11:01:29.27352   172.16.5.1 -> 172.16.5.250 TFTP Error: access violation
11:01:29.27388 172.16.5.250 -> OLD-BROADCAST TFTP Read "boot/grub/menu.lst" 
(octet)
11:01:29.27638   172.16.5.1 -> 172.16.5.250 UDP D=2079 S=52208 LEN=21
11:01:29.27648 172.16.5.250 -> OLD-BROADCAST TFTP Error: not defined
11:01:29.27698 172.16.5.250 -> OLD-BROADCAST TFTP Read "boot/grub/menu.lst" 
(octet)
11:01:29.27867   172.16.5.1 -> 172.16.5.250 UDP D=2080 S=52209 LEN=23
11:01:29.27877 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 0
11:01:29.27932   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1007 bytes)
11:01:29.27967 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1


So grub and menu.lst were loaded. Now I choose given system and got:

Error 25: Disk read error

Press any key to continue...

Snoop output is:

11:03:15.58924 172.16.5.250 -> OLD-BROADCAST TFTP Read 
"/I86PC.Solaris_11-69/platform/i86pc/kernel/unix" (octet)
11:03:15.60564   172.16.5.1 -> 172.16.5.250 UDP D=2081 S=52216 LEN=24
11:03:15.60574 172.16.5.250 -> OLD-BROADCAST TFTP Error: not defined
11:03:15.60601 172.16.5.250 -> OLD-BROADCAST TFTP Read 
"/I86PC.Solaris_11-69/platform/i86pc/kernel/unix" (octet)
11:03:15.60816   172.16.5.1 -> 172.16.5.250 UDP D=2082 S=52217 LEN=23
11:03:15.60826 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 0
11:03:15.60873   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1432 bytes)
11:03:15.60915 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:03:15.60922   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (1432 bytes)
11:03:17.60437 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:03:20.60376   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (1432 bytes)
11:03:20.62463 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:03:24.63335 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:03:24.96220 OLD-BROADCAST -> BROADCAST    DHCP/BOOTP BOOTREQUEST
11:03:25.60369   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (1432 bytes)
11:03:29.63050 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:03:30.60370   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (1432 bytes)
11:03:35.60375   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (1432 bytes)


So problem after block 1. Also please notice that this time tftp sends packets 
with 1432 bytes, while for pxegrub it was using 1456 bytes... I don't know if 
it's important or not.

Also if I add some entries to menu.lst so it's size is 1432 bytes or more then 
grub is not able to load that config file neither.

ok, so let's add some comments in menu.lst so its size will be above 1436B

# ls -l menu.lst
-rw-r--r--   1 root     root        1564 Aug 13 11:09 menu.lst

I addedd several lines like below at the end of menu.lst to increase its size 
(the same happens if I add valid entries, it's just about file size:

#23456789012345678901234567890
#23456789012345678901234567890
#23456789012345678901234567890
#23456789012345678901234567890


Then from grub command line I issued 'configfile /boot/grub/menu.lst' (it also 
doesn't work if I just reboot and grub tries to load that file on its own - 
again, works on S9):

11:10:37.65816 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/menu.lst" 
(octet)
11:10:37.66037   172.16.5.1 -> 172.16.5.250 UDP D=2084 S=52235 LEN=21
11:10:37.66048 172.16.5.250 -> OLD-BROADCAST TFTP Error: not defined
11:10:37.66087 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/menu.lst" 
(octet)
11:10:37.66257   172.16.5.1 -> 172.16.5.250 UDP D=2085 S=52236 LEN=23
11:10:37.66267 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 0
11:10:37.66331   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1432 bytes)
11:10:37.66373 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:10:37.66380   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (132 bytes) (last 
block)
11:10:39.65505 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:10:42.65859   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (132 bytes) (last 
block)
11:10:42.67532 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:10:46.68403 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:10:47.65856   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (132 bytes) (last 
block)
11:10:49.11086 OLD-BROADCAST -> BROADCAST    DHCP/BOOTP BOOTREQUEST
11:10:51.68119 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:10:52.65859   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (132 bytes) (last 
block)
11:10:57.65861   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (132 bytes) (last 
block)

As you can see it was fine with block 1 (however client for some reasone acked 
it twice) and again tftp sends using 1432 bytes.

Now remove some of those comments so file size will be exactly 1432.

# ls -l menu.lst
-rw-r--r--   1 root     root        1432 Aug 13 11:14 menu.lst

11:14:50.37459 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/menu.lst" 
(octet)
11:14:50.39134   172.16.5.1 -> 172.16.5.250 UDP D=2086 S=52242 LEN=23
11:14:50.39145 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 0
11:14:50.39189   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1432 bytes)
11:14:50.39232 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:14:50.39238   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (0 bytes) (last 
block)
11:14:52.42335 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:14:55.38887   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (0 bytes) (last 
block)
11:14:55.44361 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:14:59.45232 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:15:0.38882   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (0 bytes) (last 
block)
11:15:4.44948 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:15:5.38888   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (0 bytes) (last 
block)
11:15:8.18394 OLD-BROADCAST -> BROADCAST    DHCP/BOOTP BOOTREQUEST
11:15:10.38885   172.16.5.1 -> 172.16.5.250 TFTP Data block 2 (0 bytes) (last 
block)


Again, not working - this time see that client requested block 2 with size 0.
So let's remove one byte from comments from menu.lst

# ls -l menu.lst
-rw-r--r--   1 root     root        1431 Aug 13 11:16 menu.lst


# snoop -t a -r -d ce1
Using device /dev/ce (promiscuous mode)
11:16:28.92601 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/menu.lst" 
(octet)
11:16:28.94260   172.16.5.1 -> 172.16.5.250 UDP D=2087 S=52244 LEN=23
11:16:28.94271 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 0
11:16:28.94312   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1431 bytes)
11:16:28.94355 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:16:28.94401 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/menu.lst" 
(octet)
11:16:28.94616   172.16.5.1 -> 172.16.5.250 UDP D=2088 S=52245 LEN=23
11:16:28.94626 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 0
11:16:28.94693   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1431 bytes)
11:16:28.94735 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1
11:16:28.94798 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/default" 
(octet)
11:16:31.95891   172.16.5.1 -> 172.16.5.250 TFTP Error: access violation
11:16:31.95967 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/default" 
(octet)
11:16:34.96890   172.16.5.1 -> 172.16.5.250 TFTP Error: access violation
11:16:34.96963 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/menu.lst" 
(octet)
11:16:34.97218   172.16.5.1 -> 172.16.5.250 UDP D=2091 S=52250 LEN=21
11:16:34.97228 172.16.5.250 -> OLD-BROADCAST TFTP Error: not defined
11:16:34.97273 172.16.5.250 -> OLD-BROADCAST TFTP Read "/boot/grub/menu.lst" 
(octet)
11:16:34.97441   172.16.5.1 -> 172.16.5.250 UDP D=2092 S=52251 LEN=23
11:16:34.97452 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 0
11:16:34.97501   172.16.5.1 -> 172.16.5.250 TFTP Data block 1 (1431 bytes)
11:16:34.97543 172.16.5.250 -> OLD-BROADCAST TFTP Ack  block 1

Now it works.


I tried pxegrub from snv-_69 and s10U3 - the same result. I guess the problem 
rather is on a jumpstart server. Replacing just in.tftpd binary from S9 does 
not fix the problem.
 
 
This message posted from opensolaris.org

Reply via email to