Create working directory:
mkdir ~/pxeboot
cd ~/pxebootDownload grml netboot version:
wget http://download.grml.org/grml_netboot_package_grml64-full_2014.11.tar.bz2Extract image:
tar -xvf grml_netboot_package_grml64-full_2014.11.tar.bz2
mv grml_netboot_package_grml64-full_2014.11/* ~/pxeboot
rm -fr grml_netboot_package_grml64-full_2014.11
rm grml_netboot_package_grml64-full_2014.11.tar.bz2Download and mount grml liveCD image:
wget http://download.grml.org/grml64-full_2014.11.iso
mkdir /tmp/grml
sudo mount -o loop grml64-full_2014.11.iso /tmp/grmlSync with working directory:
rsync -avP /tmp/grml/ ~/pxeboot/tftpbootEdit pxelinux.cfg:
vim tftpboot/pxelinux.cfg/defaultIt should look like this:
default grml
label grml
menu DEFAULT
menu label grml64-full ^Standard (2014.11, amd64)
kernel vmlinuz
append initrd=initrd.img root=/dev/nfs rw nfsroot=192.168.1.1:/mnt/tftpboot/ boot=live live-media-path=/live/grml64-full/ bootid=grml64full201411 apm=power-off nomce noprompt noeject vga=791
text help
Grml is a Debian based Linux live
system for system administrators
and users of text tools.
http://grml.org/
endtextmkfs.ext4 -L pxeboot /dev/sdn1 # replace sdn1 with your partition
mkdir /tmp/pxebootusb
mount /dev/sdn1 /tmp/pxebootusb
rsync -avP ~/pxeboot/ /tmp/pxebootusbInstall necessary packages:
opkg update
opkg install nfs-kernel-server kmod-fs-ext4 kmod-usb-storage block-mountInsert and mount USB keychain :
mount /dev/sda1 /mntMake permanent/automount:
vim /etc/config/fstabconfig 'global'
option anon_swap '0'
option anon_mount '0'
option auto_swap '0'
option auto_mount '1'
option delay_root '5'
option check_fs '0'
config 'mount'
option 'target' '/mnt'
option 'label' 'pxeboot'
option 'fstype' 'ext4'
option 'options' 'rw,sync'
option 'enabled' '1'
option 'enabled_fsck' '0'/etc/init.d/fstab enableCreate NFS export
vim /etc/exports /mnt/tftpboot *(rw,sync,no_subtree_check)Restart nfs service:
/etc/init.d/rpcd restart
/etc/init.d/nfsd restartModify network configuration:
vim /etc/config/network config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option type 'bridge'
option ifname 'eth0.1'
option proto 'static'
option ipaddr '192.168.1.1'
option netmask '255.255.255.0'
option ip6assign '60'
config interface 'wan'
option ifname 'wlan1'
option proto 'dhcp'
config interface 'wan6'
option ifname 'eth0.2'
option proto 'dhcpv6'
config switch
option name 'switch0'
option reset '1'
option enable_vlan '1'
config switch_vlan
option device 'switch0'
option vlan '1'
option ports '1 2 3 4 0t'
config switch_vlan
option device 'switch0'
option vlan '2'
option ports '5 0t'Restart network service:
/etc/init.d/network restartModify dnsmasq configuration:
vim /etc/config/dhcp config dnsmasq
option domainneeded '1'
option boguspriv '1'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.auto'
option localservice '1'
option enable_tftp '1'
option tftp_root '/mnt/tftpboot'
option dhcp_boot 'pxelinux.0'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv6 'server'
option ra 'server'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'Restart dnsmasq service:
/etc/init.d/dnsmasq restart