DGND3700 V1 PXE Extended Network Boot Ubuntu

=Extending PXE Boot with USB=


 * Create a folder 'pxe' in the root of your USB attached drive.


 * Turn on NFS from the network services menu. (Supports NFS 2/3/4) if you are intend to boot Linux distro's such as Ubuntu.


 * In this example I will assume the DGND3700 has IP 192.168.0.1 and the drive label is Seagate500 (and thus mounted as such) and you have a NFS share to it mounted on your machine under /net (Suggest AutoFS)

Quick method
Copy contents of /usr/pxe from the router to pxe/ folder just created as a starting point (telnet/ssh in and copy to mounted USB drive or via Filezilla).

Latest from Syslinux
Get the latest git, build it, copy it

=Example= I will use the below as a visual example as it will probably make most sense.

I am doing this from my laptop with a NFS share to the router, rather than physically moving the drive over.

Download
Download whatever Ubuntu you want, in this example I will use Ubuntu 12.04.4 (32bit)

Ubuntu 14.04 (64 bit)

Extract
Open each Ubuntu .iso in archive manager, create a target folder, extract some of the folders in the .iso to create this structure (The 'casper' folder is the only vital one if you want to save a few Mb); Just download chntpw straight into the folder you made for it.

Dir Structure

 * Note I also have Parted Magic 4.8 and chntpw here, I just haven't made them part of this example.

rich@rich:/net/192.168.0.1/media/Seagate500/pxe$ tree -L 2 . ├── 12.04.4 │   ├── .disk │   ├── casper │   ├── dists │   ├── pool │   ├── preseed │   └── ubuntu ->. ├── 14.04 │   ├── .disk │   ├── casper │   ├── dists │   ├── pool │   ├── preseed │   └── ubuntu ->. ├── background.jpg ├── chntpw │   └── cd140201.iso ├── default ├── hdt.c32 ├── ldlinux.c32 ├── libcom32.c32 ├── libgpl.c32 ├── libmenu.c32 ├── libutil.c32 ├── lpxelinux.0 ├── memdisk ├── memtest -> memtest86-4.3.7.bin ├── memtest86-4.3.7.bin ├── memtest86plus-5.01.bin ├── menu.c32 ├── pci.ids ├── pmagic │   ├── bzImage │   └── initramfs └── vesamenu.c32

Reset Permissions (if needed)
Depending on how/what you used to extract, permissions/ownership can get messy. To reset; cd /net/192.168.0.1/media/Seagate500/ chown -R 1000:1000 pxe find pxe -type f -exec chmod 644 {} \; find pxe -type d -exec chmod 755 {} \;

Add to menu
Append pxe/default with this;

 LABEL - MENU LABEL Ubuntu Live OS MENU DISABLE

LABEL -> Ubuntu 12.04.4 LTS (x32) KERNEL 12.04.4/casper/vmlinuz APPEND boot=casper netboot=nfs nfsroot=192.168.0.1:/media/Seagate500/pxe/12.04.4 initrd=12.04.4/casper/initrd.lz quiet splash -- locale=en_GB bootkbd=gb console-setup/layoutcode=gb

LABEL -> Ubuntu 12.04.4 LTS (x32) (copy to RAM) KERNEL 12.04.4/casper/vmlinuz APPEND boot=casper netboot=nfs nfsroot=192.168.0.1:/media/Seagate500/pxe/12.04.4 initrd=12.04.4/casper/initrd.lz quiet splash toram -- locale=en_GB bootkbd=gb console-setup/layoutcode=gb

LABEL -> Ubuntu 14.04 LTS (x64) KERNEL 14.04/casper/vmlinuz.efi APPEND boot=casper netboot=nfs nfsroot=192.168.0.1:/media/Seagate500/pxe/14.04 initrd=14.04/casper/initrd.lz quiet splash -- locale=en_GB bootkbd=gb console-setup/layoutcode=gb

LABEL -> Ubuntu 14.04 LTS (x64) (copy to RAM) KERNEL 14.04/casper/vmlinuz.efi APPEND boot=casper netboot=nfs nfsroot=192.168.0.1:/media/Seagate500/pxe/14.04 initrd=14.04/casper/initrd.lz quiet splash toram -- locale=en_GB bootkbd=gb console-setup/layoutcode=gb

MENU SEPARATOR

LABEL -> Parted Magic 4.8 KERNEL pmagic/bzImage INITRD pmagic/initramfs

MENU SEPARATOR

LABEL -> Chntpw (Windows password changer) KERNEL memdisk iso raw INITRD chntpw/cd140201.iso

Simple as that, plug something in to a wired LAN port and you should be able to boot straight into Ubuntu!

=Comments=