Live-Build
|
Size: 4048
Comment:
|
Size: 8358
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 7: | Line 7: |
| Line 11: | Line 12: |
| Line 19: | Line 21: |
| Line 24: | Line 27: |
| Line 33: | Line 37: |
| Line 43: | Line 48: |
| Line 53: | Line 59: |
| Line 57: | Line 64: |
| The sample configuration builds an ISO, if you want to build an IMG or Netboot Tar Ball: === Edit the live-build Config === {{{ myuser@ppc64el:~/lb-setup $ sudo vi config/build <=== Change "Type: iso-hybrid" or "Type: hdd" or "Type: netboot" }}} |
|
| Line 61: | Line 79: |
| Line 81: | Line 100: |
| Line 83: | Line 103: |
| Line 91: | Line 112: |
| Line 99: | Line 121: |
| == Running the IMG == === Install pre-req's === {{{ myuser@ppc64el:~/lb-setup $ sudo apt-get install qemu-kvm qemu-utils }}} === Run the Live Image and Optional Install === {{{ myuser@ppc64el:~/lb-setup $ sudo kvm -hda live-image-ppc64el.img -m 2G -nographic -nodefaults -serial stdio }}} == Running the Netboot Tar Ball == === Install pre-req's === {{{ myuser@ppc64el:~/lb-setup $ sudo apt-get install qemu-kvm qemu-utils }}} === Run the Live Image and Optional Install === When you expand the '''live-image-ppc64el.netboot.tar''' file it contains various piece parts of the live-build output. Use the '''tftpboot/ubuntu-installer/ppc64el/vmlinux''' and '''tftpboot/ubuntu-installer/ppc64el/initrd.gz''' To try this out on a VM, make a .IMG file to hold the installed OS you will create by using the kernel and initrd from the netboot tar file: {{{ $ sudo dd if=/dev/zero of=mydrive.img bs=1G count=10 $ sudo kvm -m 2G -serial stdio -nographic -nodefaults -netdev user,id=net0 -device virtio-net-pci,netdev=net0 -device virtio-blk-pci,drive=drive0 -drive id=drive0,if=none,file=mydrive.img -kernel vmlinux -initrd initrd.gz }}} The '''initrd.gz''' embeds a completely automated '''preseed.cfg''' which asks NO questions and will install to the disk device detected. If you do NOT wish to have this complete automation, you will need to re-build WITHOUT the '''preseed.cfg'''. See the Advanced Customization section for how to remove the '''preseed.cfg'''. |
|
| Line 101: | Line 178: |
| Line 103: | Line 181: |
| config/common -> LB_APT_HTTP_PROXY="http://proxy:3128" <=== Replace with your proxy server and port name | '''config/common''' -> LB_APT_HTTP_PROXY="http://proxy:3128" <=== Replace with your proxy server and port name |
| Line 107: | Line 186: |
| To remove the preseed.cfg to allow the install to ask all the guided questions, remove the preseed.cfg and re-build the IMG, ISO or Netboot tar ball. config/includes.installer/preseed.cfg <=== Remove this file completely and re-build |
To remove the preseed.cfg to allow the install to ask all the guided questions, remove the '''preseed.cfg''' and re-build the IMG, ISO or Netboot tar ball. '''config/includes.installer/preseed.cfg''' <=== Remove this file completely and re-build |
| Line 113: | Line 193: |
| You can either remove this custom kernel .deb file completely or replace with your custom built kernel to modify the kernel used for the Live Images. '''config/packages.chroot/linux-image-4.8.0-41-generic_4.8.0-41.44_ppc64el.deb''' <== If you build your own kernel, be sure to use "generic" in the name so the kernel is automatically picked up when the grub.cfg file is pre-built (LB_LINUX_FLAVOURS). |
|
| Line 115: | Line 200: |
| You can either remove this custom kernel .deb file completely or replace with your custom built kernel to modify the kernel used for the Installer Images. If you remove the file completely, be sure to remove related lines from the '''config/includes.installer/preseed.cfg''' '''config/includes.installer/debs/linux-image-4.8.0-41-generic_4.8.0-41.44_ppc64el.deb''' <== If you build your own kernel, be sure to use "generic" in the name so the kernel is automatically picked up when the grub.cfg file is pre-built (LB_LINUX_FLAVOURS). '''config/includes.installer/preseed.cfg''' <=== You will need to update the name of the linux custom kernel name in the bottom of the '''preseed.cfg''' file in various places |
|
| Line 117: | Line 211: |
| {{{#!wiki warning '''IMPORTANT NOTE:''' Changing the root or default user ID and password have consequences due to the timing of when the scripts are run and when root privileges are instantiated. }}} Recommendation is to NOT modify unless you test the scenarios well. '''config/binary''' -> LB_BOOTAPPEND_LIVE="username=ubuntu" <=== You can change the default user id that is used during live-boot setup '''config/includes.chroot/lib/live/config/0035-user-setup''' <=== This sets the Live default user password which is defined on the LB_BOOTAPPEND_LIVE parameter (The file '''0035-user-setup''' is NOT included, you will need to copy a template like '''config/hooks/live/0500-root-password.hook.chroot''') '''config/hooks/live/0500-root-password.hook.chroot''' <=== This sets the Live root password |
|
| Line 118: | Line 228: |
| {{{#!wiki warning '''IMPORTANT NOTE:''' Changing the root or default user ID and password have consequences due to the timing of when the scripts are run and when root privileges are instantiated. }}} Recommendation is to NOT modify unless you test the scenarios well. '''config/includes.installer/preseed.cfg''' <=== Update the passwd/username and passwd/user-password d-i parameters [[https://www.debian.org/releases/stable/amd64/apbs02.html.en|Debian Preseeding]] |
|
| Line 127: | Line 248: |
| Line 131: | Line 253: |
| d-i pkgsel/include string vim openssh-server build-essential | '''d-i pkgsel/include string vim openssh-server build-essential''' |
Contents
-
Live-Build Steps for building a custom ISO, IMG or Netboot tarball with a custom kernel
- Build Host Requirements
- Setting up Live-Build with Patches
- Sample Live-Build Configuration
- Running the ISO
- Running the IMG
- Running the Netboot Tar Ball
-
Advanced Customizations
- Add a proxy for APT during the live-build process
- Remove the preseed.cfg
- Update the Custom Kernel used to build Live Images
- Update the Custom Kernel used to install a new OS with the Installer Images
- Update the Root or Default User ID used for Live Images
- Update the Root or Default User ID used for Installer Images
- Add Packages for the Live Images
- Add Packages for the Installer Images
Live-Build Steps for building a custom ISO, IMG or Netboot tarball with a custom kernel
Live-Build is a Debian based infrastructure -> Debian Live-Build Manual
Build Host Requirements
ppc64el images are built on a ppc64el host
Setting up Live-Build with Patches
There are two patches needed to build and install ppc64el ISO's, IMG's and Netboot tarball's.
As of March 23, 2017, you will need to clone and build grub2 on the build machine to include a patch for the ieee1275 chrp grub install
How To Build and Install Grub2
Install pre-req's
myuser@ppc64el:~ $ sudo apt-get install debootstrap debhelper kpartx gdisk devscripts dh-systemd live-build isolinux
Clone the live-build tree
myuser@ppc64el:~ $ git clone git://anonscm.debian.org/git/debian-live/live-build.git myuser@ppc64el:~ $ cd live-build
Apply the Patches
myuser@ppc64el:~/live-build $ git am 0001-live-build-binary_hdd-enablement-for-ppc64el.patch myuser@ppc64el:~/live-build $ git am 0001-live-build-installer-enablement-for-ppc64el.patch
0001-live-build-binary_hdd-enablement-for-ppc64el.patch
0001-live-build-installer-enablement-for-ppc64el.patch
Build Live-Build
myuser@ppc64el:~/live-build $ sudo dpkg-buildpackage -b -uc -us myuser@ppc64el:~/live-build $ sudo make install myuser@ppc64el:~/live-build $ lb -v 1:20161216 <- This should reflect the current level of the git tree
Sample Live-Build Configuration
This tutorial is based on a pre-configured setup for ppc64el.
The sample configuration builds an ISO, if you want to build an IMG or Netboot Tar Ball:
Edit the live-build Config
myuser@ppc64el:~/lb-setup $ sudo vi config/build <=== Change "Type: iso-hybrid" or "Type: hdd" or "Type: netboot"
Download the tar file
Mar-2017-fwts-installer-live-v5-ppc64el-config.tar.gz
Setup and Build
myuser@ppc64el:~ $ sudo mkdir lb-setup <- lb-setup directory can be named anything you want
myuser@ppc64el:~ $ sudo cp Mar-2017-fwts-installer-live-v5-ppc64el-config.tar.gz ~/lb-setup myuser@ppc64el:~ $ cd lb-setup myuser@ppc64el:~/lb-setup $ sudo tar -xvf Mar-2017-fwts-installer-live-v5-ppc64el-config.tar.gz myuser@ppc64el:~/lb-setup $ sudo lb clean --all myuser@ppc64el:~/lb-setup $ sudo lb build 2>&1 | tee /home/myuser/build.log myuser@ppc64el:~/lb-setup $ ls -al live-image-ppc64el.iso <- This is the ISO output file
Running the ISO
Install pre-req's
myuser@ppc64el:~/lb-setup $ sudo apt-get install qemu-kvm qemu-utils
Run the Live Image and Optional Install
myuser@ppc64el:~/lb-setup $ sudo kvm -cdrom live-image-ppc64el.iso -m 2G -nographic -nodefaults -serial stdio
Running the IMG
Install pre-req's
myuser@ppc64el:~/lb-setup $ sudo apt-get install qemu-kvm qemu-utils
Run the Live Image and Optional Install
myuser@ppc64el:~/lb-setup $ sudo kvm -hda live-image-ppc64el.img -m 2G -nographic -nodefaults -serial stdio
Running the Netboot Tar Ball
Install pre-req's
myuser@ppc64el:~/lb-setup $ sudo apt-get install qemu-kvm qemu-utils
Run the Live Image and Optional Install
When you expand the live-image-ppc64el.netboot.tar file it contains various piece parts of the live-build output.
Use the tftpboot/ubuntu-installer/ppc64el/vmlinux and tftpboot/ubuntu-installer/ppc64el/initrd.gz
To try this out on a VM, make a .IMG file to hold the installed OS you will create by using the kernel and initrd from the netboot tar file:
$ sudo dd if=/dev/zero of=mydrive.img bs=1G count=10 $ sudo kvm -m 2G -serial stdio -nographic -nodefaults -netdev user,id=net0 -device virtio-net-pci,netdev=net0 -device virtio-blk-pci,drive=drive0 -drive id=drive0,if=none,file=mydrive.img -kernel vmlinux -initrd initrd.gz
The initrd.gz embeds a completely automated preseed.cfg which asks NO questions and will install to the disk device detected.
If you do NOT wish to have this complete automation, you will need to re-build WITHOUT the preseed.cfg.
See the Advanced Customization section for how to remove the preseed.cfg.
Advanced Customizations
Add a proxy for APT during the live-build process
config/common -> LB_APT_HTTP_PROXY="http://proxy:3128" <=== Replace with your proxy server and port name
Remove the preseed.cfg
To remove the preseed.cfg to allow the install to ask all the guided questions, remove the preseed.cfg and re-build the IMG, ISO or Netboot tar ball.
config/includes.installer/preseed.cfg <=== Remove this file completely and re-build
Update the Custom Kernel used to build Live Images
You can either remove this custom kernel .deb file completely or replace with your custom built kernel to modify the kernel used for the Live Images.
config/packages.chroot/linux-image-4.8.0-41-generic_4.8.0-41.44_ppc64el.deb <== If you build your own kernel, be sure to use "generic" in the name so the kernel is automatically picked up when the grub.cfg file is pre-built (LB_LINUX_FLAVOURS).
Update the Custom Kernel used to install a new OS with the Installer Images
You can either remove this custom kernel .deb file completely or replace with your custom built kernel to modify the kernel used for the Installer Images.
If you remove the file completely, be sure to remove related lines from the config/includes.installer/preseed.cfg
config/includes.installer/debs/linux-image-4.8.0-41-generic_4.8.0-41.44_ppc64el.deb <== If you build your own kernel, be sure to use "generic" in the name so the kernel is automatically picked up when the grub.cfg file is pre-built (LB_LINUX_FLAVOURS).
config/includes.installer/preseed.cfg <=== You will need to update the name of the linux custom kernel name in the bottom of the preseed.cfg file in various places
Update the Root or Default User ID used for Live Images
IMPORTANT NOTE: Changing the root or default user ID and password have consequences due to the timing of when the scripts are run and when root privileges are instantiated.
Recommendation is to NOT modify unless you test the scenarios well.
config/binary -> LB_BOOTAPPEND_LIVE="username=ubuntu" <=== You can change the default user id that is used during live-boot setup
config/includes.chroot/lib/live/config/0035-user-setup <=== This sets the Live default user password which is defined on the LB_BOOTAPPEND_LIVE parameter
(The file 0035-user-setup is NOT included, you will need to copy a template like config/hooks/live/0500-root-password.hook.chroot)
config/hooks/live/0500-root-password.hook.chroot <=== This sets the Live root password
Update the Root or Default User ID used for Installer Images
IMPORTANT NOTE: Changing the root or default user ID and password have consequences due to the timing of when the scripts are run and when root privileges are instantiated.
Recommendation is to NOT modify unless you test the scenarios well.
config/includes.installer/preseed.cfg <=== Update the passwd/username and passwd/user-password d-i parameters
Add Packages for the Live Images
Create or edit the file with packages you want installed:
# cat ~/lb-setup/config/package-lists/live-list.chroot openssh-client openssh-server
Add Packages for the Installer Images
Create or edit the file with packages you want installed, sample d-i below:
d-i pkgsel/include string vim openssh-server build-essential
Live-Build (last edited 2017-10-04 01:41:58 by debmc)