Answers to: PXE Booting openSUSE, gives 'invalid or corrupt image'http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image<p>When I boot using PXE Boot into openSuse, from the menu, I get an error saying 'invalid or corrupt kernel image'. The initrd.img file, and vmlinuz file were both copied from a openSUSE 11.2 system, which is what I'm trying to setup PXE Boot for. PXE Boot works fine, dhcpd, and tftpd both work fine, the box receives an ip, it is directed to the proper file which I know by viewing the log file /var/log/messages, they are at the bottom so you can see them. </p> <p>=================================</p> <p>ll /boot/vmlinuz lrwxrwxrwx 1 root root 28 May 12 20:46 /boot/vmlinuz -> vmlinuz-2.6.31.5-0.1-default ll /boot/initrd lrwxrwxrwx 1 root root 27 May 12 21:25 /boot/initrd -> initrd-2.6.31.5-0.1-default</p> <p>initrd.img and vmlinuz were copied from initrd-2.6.31.5-0.1-default and vmlinuz-2.6.31.5-0.1-default respectively</p> <p>=================================</p> <p>tree suse suse <code>-- 11.2 |-- i586 | |-- initrd.img |</code>-- vmlinuz `-- x86_64</p> <p>3 directories, 2 files</p> <p>======================</p> <h2>pxlinux.cfg</h2> <p>timeout 300 default menu.c32 prompt 0</p> <p>menu title PXE Menu</p> <p>label Boot openSuse 11.2 i586 menu label Boot openSuse 11.2 kernel suse/11.2/i586/vmlinuz append initrd=suse/11.2/i586/initrd.img</p> <p>========================</p> <h2>/var/log/messages</h2> <p>May 13 21:23:58 edna in.tftpd[16342]: RRQ from 10.0.0.254 filename linux-install/pxelinux.0 May 13 21:23:58 edna xinetd[10467]: START: tftp pid=16341 from=10.0.0.254 May 13 21:23:58 edna in.tftpd[16342]: tftp: client does not accept options May 13 21:23:58 edna in.tftpd[16343]: RRQ from 10.0.0.254 filename linux-install/pxelinux.0 May 13 21:23:58 edna in.tftpd[16344]: RRQ from 10.0.0.254 filename linux-install/pxelinux.cfg/20c6a714-806d-d711-b751-000bcd89309d May 13 21:23:58 edna in.tftpd[16345]: RRQ from 10.0.0.254 filename linux-install/menu.c32 May 13 21:23:58 edna in.tftpd[16346]: RRQ from 10.0.0.254 filename linux-install/pxelinux.cfg/20c6a714-806d-d711-b751-000bcd89309d May 13 21:24:01 edna in.tftpd[16350]: RRQ from 10.0.0.254 filename linux-install/suse/11.2/i586/vmlinuz May 13 21:25:58 edna dhcpd: Dynamic and static leases present for 10.0.0.254. May 13 21:25:58 edna dhcpd: Remove host declaration pxeboot or remove 10.0.0.254 May 13 21:25:58 edna dhcpd: from the dynamic address pool for name May 13 21:25:58 edna dhcpd: DHCPREQUEST for 10.0.0.254 from 00:0b:cd:89:30:9d via eth0 May 13 21:25:58 edna dhcpd: DHCPACK on 10.0.0.254 to 00:0b:cd:89:30:9d via eth0 May 13 21:39:01 edna xinetd[10467]: EXIT: tftp status=0 pid=16341 duration=903(sec)</p>enTue, 13 Jul 2010 18:53:07 -0400Answer by rfelsburghttp://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/1054<p>It turns out that the vmlinuz was corrupt, and incorrect.</p> <p>I should remember to always md5, that being said, the vmlinuz I copied from the system didn't work anyways.</p> <p>Turns out the vmlinuz file I pulled was incorrect, I had to pull from the boot dvd, and it worked.</p>rfelsburgTue, 13 Jul 2010 18:53:07 -0400http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/1054Answer by rfelsburg 1http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/586<p>Heres a cleanup of the above data.</p> <pre> When I boot using PXE Boot into openSuse, from the menu, I get an error saying 'invalid or corrupt kernel image'. The initrd.img file, and vmlinuz file were both copied from a openSUSE 11.2 system, which is what I'm trying to setup PXE Boot for. PXE Boot works fine, dhcpd, and tftpd both work fine, the box receives an ip, it is directed to the proper file which I know by viewing the log file /var/log/messages, they are at the bottom so you can see them. ================================= ll /boot/vmlinuz lrwxrwxrwx 1 root root 28 May 12 20:46 /boot/vmlinuz -> vmlinuz-2.6.31.5-0.1-default ll /boot/initrd lrwxrwxrwx 1 root root 27 May 12 21:25 /boot/initrd -> initrd-2.6.31.5-0.1-default initrd.img and vmlinuz were copied from initrd-2.6.31.5-0.1-default and vmlinuz-2.6.31.5-0.1-default respectively ================================= tree suse suse `-- 11.2 |-- i586 | |-- initrd.img | `-- vmlinuz `-- x86_64 3 directories, 2 files ====================== [root@edna ~]# tree /tftpboot /tftpboot `-- linux-install |-- README.txt |-- centos | `-- 5.4 | |-- i386 | | |-- initrd.img | | `-- vmlinuz | `-- x86_64 | |-- initrd.img | `-- vmlinuz |-- fedora | `-- 12 | `-- i386 | |-- initrd.img | |-- ks.cfg | |-- pxelinux.0 | `-- vmlinuz |-- menu.c32 |-- pxeboot.msg |-- pxelinux.0 |-- pxelinux.cfg | |-- 01-00-0b-cd-89-30-9d | |-- 20c6a714-806d-d711-b751-000bcd89309d | `-- default |-- suse | `-- 11.2 | |-- i586 | | |-- initrd.img | | `-- vmlinuz | `-- x86_64 `-- teros-tftpboot.tar.bz2 ============================== pxlinux.cfg ----------- timeout 300 default menu.c32 prompt 0 menu title PXE Menu label Boot openSuse 11.2 i586 menu label Boot openSuse 11.2 kernel suse/11.2/i586/vmlinuz append initrd=suse/11.2/i586/initrd.img ======================== /var/log/messages ----------------- May 13 21:23:58 edna in.tftpd[16342]: RRQ from 10.0.0.254 filename linux-install/pxelinux.0 May 13 21:23:58 edna xinetd[10467]: START: tftp pid=16341 from=10.0.0.254 May 13 21:23:58 edna in.tftpd[16342]: tftp: client does not accept options May 13 21:23:58 edna in.tftpd[16343]: RRQ from 10.0.0.254 filename linux-install/pxelinux.0 May 13 21:23:58 edna in.tftpd[16344]: RRQ from 10.0.0.254 filename linux-install/pxelinux.cfg/20c6a714-806d-d711-b751-000bcd89309d May 13 21:23:58 edna in.tftpd[16345]: RRQ from 10.0.0.254 filename linux-install/menu.c32 May 13 21:23:58 edna in.tftpd[16346]: RRQ from 10.0.0.254 filename linux-install/pxelinux.cfg/20c6a714-806d-d711-b751-000bcd89309d May 13 21:24:01 edna in.tftpd[16350]: RRQ from 10.0.0.254 filename linux-install/suse/11.2/i586/vmlinuz May 13 21:25:58 edna dhcpd: Dynamic and static leases present for 10.0.0.254. May 13 21:25:58 edna dhcpd: Remove host declaration pxeboot or remove 10.0.0.254 May 13 21:25:58 edna dhcpd: from the dynamic address pool for name May 13 21:25:58 edna dhcpd: DHCPREQUEST for 10.0.0.254 from 00:0b:cd:89:30:9d via eth0 May 13 21:25:58 edna dhcpd: DHCPACK on 10.0.0.254 to 00:0b:cd:89:30:9d via eth0 May 13 21:39:01 edna xinetd[10467]: EXIT: tftp status=0 pid=16341 duration=903(sec) </pre>rfelsburg 1Fri, 14 May 2010 19:36:54 -0400http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/586Answer by rfelsburg 1http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/585<p>As you can see, it does get the kernel but thats it. Thoughts?</p> <pre> [root@edna ~]# tcpdump -vvv -xx host 10.0.0.254 and portrange 67-69 -w ./output & [root@edna ~]# tcpdump -r output reading from file output, link-type EN10MB (Ethernet) 15:24:54.220501 IP 10.0.0.254.ah-esp-encap > edna.tftp: 41 RRQ "linux-install/pxelinux.0" octet tsize 0 15:24:54.226140 IP 10.0.0.254.acp-port > edna.tftp: 46 RRQ "linux-install/pxelinux.0" octet blksize 1456 15:24:54.290149 IP 10.0.0.254.57089 > edna.tftp: 93 RRQ "linux-install/pxelinux.cfg/20c6a714-806d-d711-b751-0" [|tftp] 15:24:54.297018 IP 10.0.0.254.57090 > edna.tftp: 52 RRQ "linux-install/menu.c32" octet tsize 0 blksize 1408 15:24:54.332628 IP 10.0.0.254.57091 > edna.tftp: 93 RRQ "linux-install/pxelinux.cfg/20c6a714-806d-d711-b751-0" [|tftp] 15:24:57.533939 IP 10.0.0.254.57092 > edna.tftp: 66 RRQ "linux-install/suse/11.2/i586/vmlinuz" octet tsize 0 b 15:26:55.632550 IP edna.bootps > 10.0.0.254.bootpc: BOOTP/DHCP, Reply, length: 300 </pre>rfelsburg 1Fri, 14 May 2010 19:32:31 -0400http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/585Answer by rfelsburg 1http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/581<p>The files are not symlinks. They both have read permissions. I can see why you think those are symlinks, that has to do with the formatting of the page. Those symlinks are the /boot directory, I was just showing the original files that I copied from.</p> <p>Also, I have multiple versions of both centos and fedora, already working and installing from the PXE Boot server. This seems to be specifically a suse issue.</p> <p>I'll start with a packet sniffer and go from there. Thanks.</p> <p>-Rob Felsburg</p>rfelsburg 1Fri, 14 May 2010 18:39:38 -0400http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/581Answer by kainosnoushttp://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/576<p>I see the request for the kernel (vmlinuz), but the log file won't say whether or not the file was downloaded correctly. I would recommend using a packet sniffer, like <a href="http://www.wireshark.org/" rel="nofollow">Wireshark</a> to see if the kernel is actually downloaded. Perhaps the file needs read access, or perhaps tftp would prefer an actual file rather than a link to a file outside of it's root. If you have copied the kernel from a working system, I would expect that it if it received the file then it wouldn't complain of a bad kernel image.</p> <p>Something to keep in mind is that once the kernel loads it will look for the initrd. There is a chance that the kernel will look for it on the root partition and not over tftp. In my experience, to boot PXE requires that my kernel supports using NFS for root. If you have trouble mounting the root partition, you may want to look into this.</p>kainosnousFri, 14 May 2010 05:18:48 -0400http://linuxexchange.org/questions/573/pxe-booting-opensuse-gives-invalid-or-corrupt-image/576