├── LICENSE ├── README.md ├── build ├── initrd-unzip.sh └── initrd-zip.sh ├── hostnames ├── images └── tftpboot.png ├── postpreseed.sh ├── preseed.cfg ├── pxelinux.0 ├── pxelinux.cfg ├── ubuntu-installer └── amd64 │ ├── boot-screens │ ├── adtxt.cfg │ ├── exithelp.cfg │ ├── f1.txt │ ├── f10.txt │ ├── f2.txt │ ├── f3.txt │ ├── f4.txt │ ├── f5.txt │ ├── f6.txt │ ├── f7.txt │ ├── f8.txt │ ├── f9.txt │ ├── menu.cfg │ ├── prompt.cfg │ ├── rqtxt.cfg │ ├── splash.png │ ├── stdmenu.cfg │ ├── syslinux.cfg │ ├── txt.cfg │ └── vesamenu.c32 │ ├── initrd.gz │ ├── linux │ ├── pxelinux.0 │ └── pxelinux.cfg │ └── default └── version.info /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "{}" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright {yyyy} {name of copyright owner} 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ubuntu-netboot-tftp 2 | =================== 3 | 4 | Automating server installation by using [PXE boot](http://en.wikipedia.org/wiki/Preboot_Execution_Environment) and the [Ubuntu](http://www.ubuntu.com) 14.04 LTS 5 | netboot image over [TFTP](https://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol). 6 | 7 | ### Requirements 8 | 9 | - a PXE-capable BIOS and NIC 10 | - DHCP server serving 172.16.0.0/24 ip's 11 | - TFTP server (see below) at 172.16.0.1 12 | 13 | ### Usage 14 | 15 | - customize `hostnames` (mac address to hostname mappings) 16 | - customize `preseed.cfg` with your values 17 | 18 | #### Why 172.16.x.x? 19 | 20 | It doesn't get in the way of my home networking! You're welcome to change this in `postpreseed.sh`. 21 | 22 | ### PXE 23 | 24 | The PXE boot automates server installation. We use a [preseed config](preseed.cfg) delivered over [TFTP](https://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol). 25 | See `ubuntu-installer/amd64/boot-screens/txt.cfg` (line 6). 26 | 27 | #### Setup with [pfSense](http://www.pfsense.org/) (tested on versions 2.0.3 and 2.1) 28 | 29 | - Install the TFTP package (`System` > `Packages`) 30 | - Under `System` > `Advanced` > `Firewall / NAT` deselect any interface for `TFTP Proxy` and save 31 | - Under `Services` > `TFTP` select the LAN interface for `TFTP Daemon Interfaces` and save 32 | - SSH into your pfSense appliance (enable SSH access and add a rule to allow port 22) 33 | - Install curl: `pkg_add -r curl` and rehash: `rehash` 34 | - `curl -sL https://github.com/analytically/ubuntu-netboot-tftp/tarball/master | tar -xf -` 35 | - `cd analytically-ubuntu-netboot-tftp-4753507ab5c9bca0599c85f0401108c1059da0c9/` (the directory has another hash) 36 | - `mv analytically-ubuntu-netboot-tftp-4753507ab5c9bca0599c85f0401108c1059da0c9/* /tftpboot` 37 | - `rm -R analytically-ubuntu-netboot-tftp-4753507ab5c9bca0599c85f0401108c1059da0c9` 38 | - Configure `Enable network booting` under the LAN DHCP server config under `Services` > `DHCP Server`, see below: 39 | 40 | ![tftp booting](images/tftpboot.png) 41 | 42 | - click `Save`, and `Apply changes`, this will restart the DHCP service on your pfSense. You can now use PXE/Network boot. 43 | 44 | ### After installation 45 | 46 | - user: ansibler, password: PQmb6JxU 47 | - continue with my [Hadoop Ansible Playbook](https://github.com/analytically/hadoop-ansible) 48 | 49 | ### Warning 50 | 51 | The `ubuntu-installer/amd64/initrd.gz` archive contains a workaround to get TFTP and preseed.cfg working together (see `/usr/lib/fetch-url/tftp`) 52 | with [pfSense](http://www.pfsense.org/). The bug in `debian-installer-utils` is reported [here](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=707955). 53 | 54 | ### License 55 | 56 | Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0). 57 | 58 | Copyright 2013-2014 [Mathias Bogaert](mailto:mathias.bogaert@gmail.com). -------------------------------------------------------------------------------- /build/initrd-unzip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mkdir unpacked-initrd 4 | cd unpacked-initrd 5 | gzip -dc ../../ubuntu-installer/amd64/initrd.gz | cpio -id -------------------------------------------------------------------------------- /build/initrd-zip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd unpacked-initrd 4 | find ./ | cpio -H newc -o > /tmp/initrd 5 | gzip -9 /tmp/initrd 6 | cd ../.. 7 | mv /tmp/initrd.gz ubuntu-installer/amd64/ 8 | rm -Rf unpacked-initrd -------------------------------------------------------------------------------- /hostnames: -------------------------------------------------------------------------------- 1 | ??:??:??:??:??:??-monitor01 2 | ??:??:??:??:??:??-hmaster01 3 | ??:??:??:??:??:??-hmaster02 4 | ??:??:??:??:??:??-hslave01 5 | ??:??:??:??:??:??-hslave02 6 | .. and so on (delete this line) -------------------------------------------------------------------------------- /images/tftpboot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analytically/ubuntu-netboot-tftp/bc401018b32de65dcd12a88bbd1298ac82c6e9e0/images/tftpboot.png -------------------------------------------------------------------------------- /postpreseed.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # fetch the hostnames file 4 | tftp 172.16.0.1 -c get hostnames 5 | 6 | # get the MAC address 7 | mac=$(/sbin/ifconfig | grep 'eth0\|p2p1\|p4p1\|p6p1\|em1\|igb0' | tr -s ' ' | cut -d ' ' -f5) 8 | 9 | # get the correct hostname for this MAC address 10 | hostname=$(cat hostnames | grep $mac | cut -d"-" -f2) 11 | 12 | # set the hostname 13 | echo $hostname | tee /etc/hostname 14 | hostname -b $hostname 15 | echo "127.0.0.1 localhost $hostname" > /etc/hosts 16 | 17 | rm hostnames -------------------------------------------------------------------------------- /preseed.cfg: -------------------------------------------------------------------------------- 1 | ### Localization 2 | # Preseeding only locale sets language, country and locale. 3 | d-i debian-installer/locale string en_GB.UTF-8 4 | 5 | # Keyboard selection. 6 | # Disable automatic (interactive) keymap detection. 7 | d-i console-setup/ask_detect boolean false 8 | d-i keyboard-configuration/layoutcode string gb 9 | 10 | ### Network configuration 11 | # netcfg will choose an interface that has link if possible. This makes it 12 | # skip displaying a list if there is more than one interface. 13 | d-i netcfg/choose_interface select auto 14 | 15 | # Just in case our DHCP server is busy. 16 | d-i netcfg/dhcp_timeout string 60 17 | 18 | # Any hostname and domain names assigned from dhcp take precedence over 19 | # values set here. However, setting the values still prevents the questions 20 | # from being shown, even if values come from dhcp. 21 | d-i netcfg/get_hostname string unassigned-hostname 22 | d-i netcfg/get_domain string unassigned-domain 23 | 24 | # Disable that annoying WEP key dialog. 25 | d-i netcfg/wireless_wep string 26 | 27 | # Added by @analytically: always install the server kernel 28 | d-i base-installer/kernel/override-image string linux-server 29 | 30 | ### Mirror settings 31 | # Alternatively: by default, the installer uses CC.archive.ubuntu.com where 32 | # CC is the ISO-3166-2 code for the selected country. You can preseed this 33 | # so that it does so without asking. 34 | d-i mirror/http/mirror select gb.archive.ubuntu.com 35 | 36 | ### Clock and time zone setup 37 | # Controls whether or not the hardware clock is set to UTC. 38 | d-i clock-setup/utc boolean true 39 | 40 | # You may set this to any valid setting for $TZ; see the contents of 41 | # /usr/share/zoneinfo/ for valid values. 42 | d-i time/zone string Etc/UTC 43 | 44 | # Controls whether to use NTP to set the clock during the install 45 | d-i clock-setup/ntp boolean true 46 | 47 | ### Partitioning 48 | d-i partman-auto/disk string /dev/sda 49 | 50 | # The presently available methods are: 51 | # - regular: use the usual partition types for your architecture 52 | # - lvm: use LVM to partition the disk 53 | # - crypto: use LVM within an encrypted partition 54 | d-i partman-auto/method string regular 55 | 56 | # If one of the disks that are going to be automatically partitioned 57 | # contains an old LVM configuration, the user will normally receive a 58 | # warning. This can be preseeded away... 59 | d-i partman-lvm/device_remove_lvm boolean true 60 | # The same applies to pre-existing software RAID array: 61 | d-i partman-md/device_remove_md boolean true 62 | # And the same goes for the confirmation to write the lvm partitions. 63 | d-i partman-lvm/confirm boolean true 64 | 65 | # For LVM partitioning, you can select how much of the volume group to use 66 | # for logical volumes. 67 | #d-i partman-auto-lvm/guided_size string max 68 | 69 | # You can choose one of the three predefined partitioning recipes: 70 | # - atomic: all files in one partition 71 | # - home: separate /home partition 72 | # - multi: separate /home, /usr, /var, and /tmp partitions 73 | d-i partman-auto/choose_recipe select atomic 74 | 75 | # If you just want to change the default filesystem from ext3 to something 76 | # else, you can do that without providing a full recipe. 77 | d-i partman/default_filesystem string ext4 78 | 79 | # This makes partman automatically partition without confirmation, provided 80 | # that you told it what to do using one of the methods above. 81 | d-i partman-partitioning/confirm_write_new_label boolean true 82 | d-i partman/choose_partition select finish 83 | d-i partman/confirm boolean true 84 | d-i partman/confirm_nooverwrite boolean true 85 | 86 | ### Base system installation 87 | ### Account setup 88 | 89 | # To create a normal user account. 90 | d-i passwd/user-fullname string Ansibler 91 | d-i passwd/username string ansibler 92 | d-i passwd/user-password-crypted password $1$wtBrspYY$ICR8otjqm3rNAZN4WNuoh0 93 | 94 | # The installer will warn about weak passwords. If you are sure you know 95 | # what you're doing and want to override it, uncomment this. 96 | d-i user-setup/allow-password-weak boolean true 97 | 98 | # Set to true if you want to encrypt the first user's home directory. 99 | d-i user-setup/encrypt-home boolean false 100 | 101 | ### Apt setup 102 | # You can choose to install restricted and universe software, or to install 103 | # software from the backports repository. 104 | #d-i apt-setup/restricted boolean true 105 | #d-i apt-setup/universe boolean true 106 | #d-i apt-setup/backports boolean true 107 | # Uncomment this if you don't want to use a network mirror. 108 | #d-i apt-setup/use_mirror boolean false 109 | # Select which update services to use; define the mirrors to be used. 110 | # Values shown below are the normal defaults. 111 | #d-i apt-setup/services-select multiselect security 112 | #d-i apt-setup/security_host string security.ubuntu.com 113 | #d-i apt-setup/security_path string /ubuntu 114 | 115 | # Additional repositories, local[0-9] available 116 | #d-i apt-setup/local0/repository string \ 117 | # http://local.server/ubuntu squeeze main 118 | #d-i apt-setup/local0/comment string local server 119 | # Enable deb-src lines 120 | #d-i apt-setup/local0/source boolean true 121 | # URL to the public key of the local repository; you must provide a key or 122 | # apt will complain about the unauthenticated repository and so the 123 | # sources.list line will be left commented out 124 | #d-i apt-setup/local0/key string http://local.server/key 125 | 126 | ### Package selection 127 | tasksel tasksel/force-tasks string server 128 | 129 | # Individual additional packages to install 130 | d-i pkgsel/include string openssh-server build-essential tftp-hpa ipmitool htop mc software-properties-common python-apt python-pycurl python-setuptools 131 | # Whether to upgrade packages after debootstrap. 132 | # Allowed values: none, safe-upgrade, full-upgrade 133 | d-i pkgsel/upgrade select full-upgrade 134 | 135 | # Language pack selection 136 | d-i pkgsel/language-packs multiselect en 137 | 138 | # No language support packages 139 | d-i pkgsel/install-language-support boolean false 140 | 141 | # Policy for applying updates. May be "none" (no automatic updates), 142 | # "unattended-upgrades" (install security updates automatically), or 143 | # "landscape" (manage system with Landscape). 144 | d-i pkgsel/update-policy select unattended-upgrades 145 | 146 | # Verbose output and no boot splash screen 147 | d-i debian-installer/quiet boolean false 148 | d-i debian-installer/splash boolean false 149 | 150 | ### Boot loader installation 151 | # This is fairly safe to set, it makes grub install automatically to the MBR 152 | # if no other operating system is detected on the machine. 153 | d-i grub-installer/only_debian boolean true 154 | 155 | # This one makes grub-installer install to the MBR if it also finds some other 156 | # OS, which is less safe as it might not be able to boot that other OS. 157 | d-i grub-installer/with_other_os boolean true 158 | 159 | # Wait for two seconds in grub 160 | d-i grub-installer/timeout string 2 161 | 162 | # Use the following option to add additional boot parameters for the 163 | # installed system (if supported by the bootloader installer). 164 | # Note: options passed to the installer will be added automatically. 165 | d-i debian-installer/add-kernel-opts string vga=normal nomodeset audit=0 intel_idle.max_cstate=0 processor.max_cstate=1 cgroup_enable=memory swapaccount=1 166 | 167 | ### Finishing up the installation 168 | # Avoid that last message about the install being complete. 169 | d-i finish-install/reboot_in_progress note 170 | 171 | #### Advanced options 172 | ### Running custom commands during the installation 173 | # d-i preseeding is inherently not secure. Nothing in the installer checks 174 | # for attempts at buffer overflows or other exploits of the values of a 175 | # preconfiguration file like this one. Only use preconfiguration files from 176 | # trusted locations! To drive that home, and because it's generally useful, 177 | # here's a way to run any shell command you'd like inside the installer, 178 | # automatically. 179 | 180 | # This first command is run as early as possible, just after 181 | # preseeding is read. 182 | #d-i preseed/early_command string anna-install some-udeb 183 | # This command is run immediately before the partitioner starts. It may be 184 | # useful to apply dynamic partitioner preseeding that depends on the state 185 | # of the disks (which may not be visible when preseed/early_command runs). 186 | #d-i partman/early_command \ 187 | # string debconf-set partman-auto/disk "$(list-devices disk | head -n1)" 188 | # This command is run just before the install finishes, but when there is 189 | # still a usable /target directory. You can chroot to /target and use it 190 | # directly, or use the apt-install and in-target commands to easily install 191 | # packages and run commands in the target system. 192 | d-i preseed/late_command string in-target tftp 172.16.0.1 -c get postpreseed.sh; \ 193 | in-target chmod +x postpreseed.sh; \ 194 | in-target /bin/bash -x postpreseed.sh; \ 195 | in-target rm -f postpreseed.sh; 196 | -------------------------------------------------------------------------------- /pxelinux.0: -------------------------------------------------------------------------------- 1 | ubuntu-installer/amd64/pxelinux.0 -------------------------------------------------------------------------------- /pxelinux.cfg: -------------------------------------------------------------------------------- 1 | ubuntu-installer/amd64/pxelinux.cfg -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/adtxt.cfg: -------------------------------------------------------------------------------- 1 | label expert 2 | menu label ^Expert install 3 | kernel ubuntu-installer/amd64/linux 4 | append priority=low vga=788 initrd=ubuntu-installer/amd64/initrd.gz -- 5 | label cli-expert 6 | menu label Command-^line expert install 7 | kernel ubuntu-installer/amd64/linux 8 | append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false priority=low vga=788 initrd=ubuntu-installer/amd64/initrd.gz -- 9 | include ubuntu-installer/amd64/boot-screens/rqtxt.cfg 10 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/exithelp.cfg: -------------------------------------------------------------------------------- 1 | label menu 2 | kernel ubuntu-installer/amd64/boot-screens/vesamenu.c32 3 | config ubuntu-installer/amd64/boot-screens/syslinux.cfg 4 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f1.txt: -------------------------------------------------------------------------------- 1 |  0fWelcome to Ubuntu!07 09F107 2 | 3 | This is an installation system for Ubuntu 14.04. 4 | It was built on 20101020ubuntu318. 5 | 6 | 0fHELP INDEX07 7 | 8 | 0fKEY TOPIC07 9 | 10 | <09F107> This page, the help index. 11 | <09F207> Prerequisites for installing Ubuntu. 12 | <09F307> Boot methods for special ways of using this system. 13 | <09F407> Additional boot methods; rescue mode. 14 | <09F507> Special boot parameters, overview. 15 | <09F607> Special boot parameters for special machines. 16 | <09F707> Special boot parameters for selected disk controllers. 17 | <09F807> Special boot parameters for the install system. 18 | <09F907> How to get help. 19 | <09F1007> Copyrights and warranties. 20 |  21 | For F1-F9 type control and F then the digit 1-9 22 | For F10 type control and F then the digit 0 23 |  24 | 25 | Press F2 through F10 for details, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f10.txt: -------------------------------------------------------------------------------- 1 |  0fCOPYRIGHTS AND WARRANTIES07 09F1007 2 | 3 | Ubuntu is Copyright (C) 2004-2010 Canonical Ltd., and incorporates the work 4 | of many other original authors and contributors. 5 | 6 | The Ubuntu system is freely redistributable. After installation, the 7 | exact distribution terms for each package are described in the 8 | corresponding file /usr/share/doc/0bpackagename07/copyright. 9 | 10 | Ubuntu comes with 0fABSOLUTELY NO WARRANTY07, to the extent 11 | permitted by applicable law. 12 | 13 | This installation system is based on the Debian installer. See 14 | http://www.debian.org/ for more details and information on the Debian 15 | project. 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f2.txt: -------------------------------------------------------------------------------- 1 |  0fPREREQUISITES FOR INSTALLING UBUNTU07 09F207 2 | 3 | You must have at least 44 megabytes of RAM to use this Ubuntu installer. 4 | 5 | You should have space on your hard disk to create a new disk partition 6 | of at least 5 gigabytes to install a standard Ubuntu desktop system or 7 | at least 500 megabytes for a minimal server installation. You'll need 8 | more disk space to install additional packages, depending on what you 9 | wish to do with your new Ubuntu system. 10 | 11 | See the Installation Guide or the FAQ for more information; both 12 | documents are available at the Ubuntu web site, 0fhttp://www.ubuntu.com/07 13 | 14 | Thank you for choosing Ubuntu! 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f3.txt: -------------------------------------------------------------------------------- 1 |  0fBOOT METHODS07 09F307 2 | 3 | 0fAvailable boot methods:07 4 | 5 | 0finstall07 6 | Start the installation -- this is the default option. 7 | 0fexpert07 8 | Start the installation in expert mode, for maximum control. 9 | 0fcli07, 0fcli-expert07 10 | Minimal command-line system install. 11 | 0fmemtest07 12 | Perform a memory test. 13 | 14 | To use one of these boot methods, type it at the prompt, optionally 15 | followed by any boot parameters. For example: 16 | boot: install acpi=off 17 | 18 | If unsure, you should use the default boot method, with no special 19 | parameters, by simply pressing enter at the boot prompt. 20 | 21 | Except in expert mode, non-critical kernel boot messages are suppressed. 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f4.txt: -------------------------------------------------------------------------------- 1 |  0fRESCUE MODE07 09F407 2 | 3 | 0fUse one of these boot methods to rescue an existing install:07 4 | 5 | 0frescue07 6 | Boot into rescue mode. 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | To use one of these boot methods, type it at the prompt, optionally 15 | followed by any boot parameters. For example: 16 | boot: rescue acpi=off 17 | 18 | 19 | 20 | 21 | 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f5.txt: -------------------------------------------------------------------------------- 1 |  0fSPECIAL BOOT PARAMETERS - OVERVIEW07 09F507 2 | 3 | On a few systems, you may need to specify a parameter at the 0fboot:07 4 | prompt in order to boot the system. For example, Linux may not be able 5 | to autodetect your hardware, and you may need to explicitly specify 6 | its location or type for it to be recognized. 7 | 8 | For more information about what boot parameters you can use, press: 9 | 10 | <09F607> -- boot parameters for special machines 11 | <09F707> -- boot parameters for various disk controllers 12 | <09F807> -- boot parameters understood by the install system 13 | 14 | Note that to specify a parameter for a particular kernel module, use the form 15 | module.param=value, for example: libata.atapi_enabled=1 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f6.txt: -------------------------------------------------------------------------------- 1 |  0fSPECIAL BOOT PARAMETERS - VARIOUS HARDWARE07 09F607 2 | 3 | You can use the following boot parameters at the 0fboot:07 prompt, 4 | in combination with the boot method (see <09F307>). 5 | If you use hex numbers you have to use the 0x prefix (e.g., 0x300). 6 | 0f 7 | HARDWARE PARAMETER TO SPECIFY07 8 | IBM PS/1 or ValuePoint (IDE disk) 0fhd=0bcylinders0f,0bheads0f,0bsectors07 9 | Some IBM ThinkPads 0ffloppy.floppy=thinkpad07 10 | Protect I/O port regions 0freserve=0biobase0f,0bextent07[0f,0b...07] 11 | Laptops with screen display problems 0fvga=77107 12 | Use first serial port at 9600 baud 0fconsole=ttyS0,9600n807 13 | Force use of generic IDE driver 0fall_generic_ide=107 14 | Possible (temporary) workarounds for lockups or other hardware failures: 15 | disable buggy APIC interrupt routing 0fnoapic nolapic07 16 | (partly) disable ACPI 0facpi=noirq07 or 0facpi=off07 17 | disable USB 0fnousb07 18 | poll for interrupts 0firqpoll07 19 | 20 | For example: 21 | boot: install vga=771 noapic nolapic 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f7.txt: -------------------------------------------------------------------------------- 1 |  0fSPECIAL BOOT PARAMETERS - VARIOUS DISK DRIVES07 09F707 2 | 3 | You can use the following boot parameters at the 0fboot:07 prompt, 4 | in combination with the boot method (see <09F307>). 5 | 0f 6 | HARDWARE PARAMETER TO SPECIFY07 7 | Adaptec 151x, 152x 0faha152x.aha152x=0biobase07[0f,0birq07[0f,0bscsi-id07[0f,0breconnect07]]] 8 | Adaptec 1542 0faha1542.aha1542=0biobase07[0f,0bbuson0f,0bbusoff07[0f,0bdmaspeed07]] 9 | Adaptec 274x, 284x 0faic7xxx.aic7xxx=no_reset07 (enabled if non-zero) 10 | BusLogic SCSI Hosts 0fBusLogic.BusLogic=0biobase07 11 | Certain DELL machines 0faic7xxx.aic7xxx=no_probe07 12 | 13 | This list is incomplete, see the kernel's kernel-parameters.txt file 14 | for more. 15 | 16 | 17 | 18 | 19 | 20 | For example: 21 | boot: install aic7xxx.aic7xxx=no_probe 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f8.txt: -------------------------------------------------------------------------------- 1 |  0fSPECIAL BOOT PARAMETERS - INSTALLATION SYSTEM07 09F807 2 | 3 | You can use the following boot parameters at the 0fboot:07 prompt, 4 | in combination with the boot method (see <09F307>). These parameters 5 | control how the installer works. 6 | 0f 7 | RESULT PARAMETER07 8 | Disable framebuffer 0fvga=normal fb=false07 9 | Don't start PCMCIA 0fhw-detect/start_pcmcia=false07 10 | Force static network config 0fnetcfg/disable_dhcp=true07 11 | Set keyboard map 0fbootkbd=es07 12 | Select the Kubuntu desktop 0ftasks=kubuntu-desktop07 13 | 14 | Accessibility options (last 2 options not available for all images): 15 | Use high contrast theme 0ftheme=dark07 16 | Use Braille tty 0fbrltty=driver,device,texttable07 17 | Use Speakup 0fspeakup.synth=driver07 18 | 19 | 20 | For example: 21 | boot: install vga=normal fb=false 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/f9.txt: -------------------------------------------------------------------------------- 1 |  0fGETTING HELP07 09F907 2 | 3 | If you can't install Ubuntu, don't despair! The Ubuntu team is ready to 4 | help you! We are especially interested in hearing about installation 5 | problems, because in general they don't happen to only 0fone07 person. 6 | We've either already heard about your particular problem and can dispense a 7 | quick fix, or we would like to hear about it and work through it with you, 8 | and the next user who comes up with the same problem will profit from your 9 | experience! 10 | 11 | See the Installation Guide or the FAQ for more information; both 12 | documents are available at the Ubuntu web site, 0fhttp://www.ubuntu.com/07 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Press F1control and F then 1 for the help index, or ENTER to -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/menu.cfg: -------------------------------------------------------------------------------- 1 | menu hshift 13 2 | menu width 49 3 | menu margin 8 4 | 5 | menu title Installer boot menu 6 | include ubuntu-installer/amd64/boot-screens/stdmenu.cfg 7 | include ubuntu-installer/amd64/boot-screens/txt.cfg 8 | include ubuntu-installer/amd64/boot-screens/gtk.cfg 9 | menu begin advanced 10 | menu title Advanced options 11 | include ubuntu-installer/amd64/boot-screens/stdmenu.cfg 12 | label mainmenu 13 | menu label ^Back.. 14 | menu exit 15 | include ubuntu-installer/amd64/boot-screens/adtxt.cfg 16 | include ubuntu-installer/amd64/boot-screens/adgtk.cfg 17 | menu end 18 | label help 19 | menu label ^Help 20 | text help 21 | Display help screens; type 'menu' at boot prompt to return to this menu 22 | endtext 23 | config ubuntu-installer/amd64/boot-screens/prompt.cfg 24 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/prompt.cfg: -------------------------------------------------------------------------------- 1 | prompt 1 2 | display ubuntu-installer/amd64/boot-screens/f1.txt 3 | timeout 0 4 | include ubuntu-installer/amd64/boot-screens/menu.cfg 5 | include ubuntu-installer/amd64/boot-screens/exithelp.cfg 6 | 7 | f1 ubuntu-installer/amd64/boot-screens/f1.txt 8 | f2 ubuntu-installer/amd64/boot-screens/f2.txt 9 | f3 ubuntu-installer/amd64/boot-screens/f3.txt 10 | f4 ubuntu-installer/amd64/boot-screens/f4.txt 11 | f5 ubuntu-installer/amd64/boot-screens/f5.txt 12 | f6 ubuntu-installer/amd64/boot-screens/f6.txt 13 | f7 ubuntu-installer/amd64/boot-screens/f7.txt 14 | f8 ubuntu-installer/amd64/boot-screens/f8.txt 15 | f9 ubuntu-installer/amd64/boot-screens/f9.txt 16 | f0 ubuntu-installer/amd64/boot-screens/f10.txt 17 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/rqtxt.cfg: -------------------------------------------------------------------------------- 1 | label rescue 2 | menu label ^Rescue mode 3 | kernel ubuntu-installer/amd64/linux 4 | append vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true -- quiet 5 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analytically/ubuntu-netboot-tftp/bc401018b32de65dcd12a88bbd1298ac82c6e9e0/ubuntu-installer/amd64/boot-screens/splash.png -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/stdmenu.cfg: -------------------------------------------------------------------------------- 1 | menu background ubuntu-installer/amd64/boot-screens/splash.png 2 | menu color title * #FFFFFFFF * 3 | menu color border * #00000000 #00000000 none 4 | menu color sel * #ffffffff #76a1d0ff * 5 | menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff * 6 | menu color tabmsg * #ffffffff #00000000 * 7 | menu color help 37;40 #ffdddd00 #00000000 none 8 | menu vshift 12 9 | menu rows 10 10 | menu helpmsgrow 15 11 | # The command line must be at least one line from the bottom. 12 | menu cmdlinerow 16 13 | menu timeoutrow 16 14 | menu tabmsgrow 18 15 | menu tabmsg Press ENTER to boot or TAB to edit a menu entry 16 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/syslinux.cfg: -------------------------------------------------------------------------------- 1 | # D-I config version 2.0 2 | include ubuntu-installer/amd64/boot-screens/menu.cfg 3 | default ubuntu-installer/amd64/boot-screens/vesamenu.c32 4 | prompt 0 5 | timeout 10 6 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/txt.cfg: -------------------------------------------------------------------------------- 1 | default install 2 | label install 3 | menu label ^Ubuntu Install 4 | menu default 5 | kernel ubuntu-installer/amd64/linux 6 | append auto=true priority=critical vga=788 initrd=ubuntu-installer/amd64/initrd.gz locale=en_GB.UTF-8 kbd-chooser/method=gb netcfg/choose_interface=auto url=tftp://172.16.0.1/preseed.cfg -- quiet 7 | label cli 8 | menu label ^Command-line install 9 | kernel ubuntu-installer/amd64/linux 10 | append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz -- quiet 11 | -------------------------------------------------------------------------------- /ubuntu-installer/amd64/boot-screens/vesamenu.c32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analytically/ubuntu-netboot-tftp/bc401018b32de65dcd12a88bbd1298ac82c6e9e0/ubuntu-installer/amd64/boot-screens/vesamenu.c32 -------------------------------------------------------------------------------- /ubuntu-installer/amd64/initrd.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analytically/ubuntu-netboot-tftp/bc401018b32de65dcd12a88bbd1298ac82c6e9e0/ubuntu-installer/amd64/initrd.gz -------------------------------------------------------------------------------- /ubuntu-installer/amd64/linux: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analytically/ubuntu-netboot-tftp/bc401018b32de65dcd12a88bbd1298ac82c6e9e0/ubuntu-installer/amd64/linux -------------------------------------------------------------------------------- /ubuntu-installer/amd64/pxelinux.0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/analytically/ubuntu-netboot-tftp/bc401018b32de65dcd12a88bbd1298ac82c6e9e0/ubuntu-installer/amd64/pxelinux.0 -------------------------------------------------------------------------------- /ubuntu-installer/amd64/pxelinux.cfg/default: -------------------------------------------------------------------------------- 1 | ../boot-screens/syslinux.cfg -------------------------------------------------------------------------------- /version.info: -------------------------------------------------------------------------------- 1 | Ubuntu version: 14.04 2 | Installer build: 20101020ubuntu318 3 | --------------------------------------------------------------------------------