Using a virtual CDROM and Petitboot to start a live server installation on IBM Power (ppc64el)

There is also documentation on booting the installer over the network.

  • Notice:
    Not all IBM Power machines come with the capability to install via a virtual CDROM !

  • A separate system (ideally in the same network, because of ipmitool) is needed to host the ppc64el ISO Image file, that is later used as virtual CDROM.

  • Login to this separate host and make sure that the ipmitool package is installed:

    $ sudo apt install ipmitool
    

    as well as Samba:

    $ sudo apt install samba
    
  • Next is to setup and configure Samba:

    $ sudo touch /etc/samba/smb.conf && sudo tee -a /etc/samba/smb.conf <<EOF
    [winshare]
      path=/var/winshare
      browseable = yes
      read only = no
      guest ok = yes
    EOF
    

    And do a quick verification that the required lines are in:

    $ tail -n 5 /etc/samba/smb.conf
    [winshare]
      path=/var/winshare
      browseable = yes
      read only = no
      guest ok = yes
    
  • (Optional)
    For downloading the image you may have to use a proxy server:

    $ sudo touch ~/.wgetrc && sudo tee -a ~/.wgetrc <<EOF
    use_proxy=yes
    http_proxy=squid.proxy:3128
    https_proxy=squid.proxy:3128
    EOF
    
  • The ISO image needs to be downloaded now:

    $ wget http://cdimage.ubuntu.com/ubuntu/releases/focal/release/ubuntu-20.04-live-server-ppc64el.iso --directory-prefix=/var/winshare
    

    The proxy can also be passed over as wget argument, like this:

    $ wget -e use_proxy=yes -e http_proxy=squid.proxy:3128 http://cdimage.ubuntu.com/ubuntu/releases/focal/release/ubuntu-20.04-live-server-ppc64el.iso --directory-prefix=/var/winshare
    
  • Change file mode of the ISO image file:

    $ sudo chmod -R 755 /var/winshare/
    $ ls -l /var/winshare/
    -rwxr-xr-x 1 ubuntu ubuntu  972500992 Mar 23 08:02 focal-live-server-ppc64el.iso
    
  • Restart and check the Samba service:

    $ sudo service smbd restart
    $ sudo service smbd status
    ● smbd.service - Samba SMB Daemon
       Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor 
    preset: ena
       Active: active (running) since Tue 2020-02-04 15:17:12 UTC; 4s ago
         Docs: man:smbd(8)
               man:samba(7)
               man:smb.conf(5)
     Main PID: 6198 (smbd)
       Status: "smbd: ready to serve connections..."
        Tasks: 4 (limit: 19660)
       CGroup: /system.slice/smbd.service
               ├─6198 /usr/sbin/smbd --foreground --no-process-group
               ├─6214 /usr/sbin/smbd --foreground --no-process-group
               ├─6215 /usr/sbin/smbd --foreground --no-process-group
               └─6220 /usr/sbin/smbd --foreground --no-process-group
    Feb 04 15:17:12 host systemd[1]: Starting Samba SMB Daemon…
    Feb 04 15:17:12 host systemd[1]: Started Samba SMB Daemon.
    
  • Test Samba share:

    ubuntu@host:~$ smbclient -L localhost
    WARNING: The "syslog" option is deprecated
    Enter WORKGROUP\ubuntu's password: 
    	Sharename       Type      Comment
    	---------       ----      -------
    	print$          Disk      Printer Drivers
    	winshare        Disk      
    	IPC$            IPC       IPC Service (host server (Samba, Ubuntu))
    	Reconnecting with SMB1 for workgroup listing.
    	Server               Comment
    	---------            -------
    	Workgroup            Master
    	---------            -------
    	WORKGROUP            host
    
  • Get the IP address of the Samba host:

    $ ip -4 -brief address show
    lo               UNKNOWN        127.0.0.1/8 
    ibmveth2         UNKNOWN        10.245.246.42/24 
    
  • (Optional)
    Even more testing if the Samba share is accessible from remote:

    user@workstation:~$ mkdir -p /tmp/test
    user@workstation:~$ sudo mount -t cifs -o 
    username=guest,password=guest //10.245.246.42/winshare /tmp/test/
    user@workstation:~$ ls -la /tmp/test/
    total 1014784
    drwxr-xr-x  2 root root          0 May  4 15:46 .
    drwxrwxrwt 18 root root        420 May  4 19:25 ..
    -rwxr-xr-x  1 root root 1038249984 May  3 19:37 ubuntu-20.04-live-server-ppc64el.iso
    
  • Now use a browser and navigate to the BMC of the Power system that should be installed (let’s assume the BMC’s IP address is 10.245.246.247):

    firefox http://10.245.246.247/ 
    
  • Login to the BMC and find and select:
    Virtual Media --> CDROM

  • Enter the IP address of the Samba share:
    10.245.246.42
    and the path to the Samba share:

    \winshare\focal-live-server-ppc64el.iso
    
  • Click Save and Mount
    (make sure that the virtual CDROM is really properly mounted !)

    CD-ROM Image:
    
    This option allows you to share a CD-ROM image over a Windows Share with a
    maximum size of 4.7GB. This image will be emulated to the host as USB device.
    
    Device 1	There is an iso file mounted.
    Device 2	No disk emulation set.
    Device 3	No disk emulation set.
    <Refresh Status>
    
    Share host: 10.245.246.42
    Path to image: \winshare\focal-live-server-ppc64el.iso
    User (optional):
    Password (optional):
    <Save> <Mount> <Unmount>
    
  • Notice:
    It’s important that you see a status like:

    Device 1 There is an iso file mounted
    

    Only in this case the virtual CDROM is properly mounted and you will see the boot / install from CDROM entry in petitboot:

    [CD/DVD: sr0 / 2020-03-23-08-02-42-00]
      Install Ubuntu Server
    
  • Now use the ipmitool to boot the system into the petitboot loader:

    $ ipmitool -I lanplus -H 10.245.246.247 -U ADMIN -P <password> power status
    $ ipmitool -I lanplus -H 10.245.246.247 -U ADMIN -P <password> sol activate
    $ ipmitool -I lanplus -H 10.245.246.247 -U ADMIN -P <password> power on
    Chassis Power Control: Up/On
    
  • And reach the Petitboot screen:

    Petitboot (v1.7.5-p8f5fc86)                                   9006-12C BOS0026
     ─────────────────────────────────────────────
      [Network: enP2p1s0f0 / ac:1f:6b:09:c0:52]
        execute
        netboot enP2p1s0f0 (pxelinux.0)
    
      System information
      System configuration
      System status log
      Language
      Rescan devices
      Retrieve config from URL
     *Plugins (0)                              
      Exit to shell
    ─────────────────────────────────────────────
     Enter=accept, e=edit, n=new, x=exit, l=language, g=log, h=help
     Default boot cancelled
    
  • And make sure that booting from CDROM is enabled:

    Petitboot (v1.7.5-p8f5fc86)                                   9006-12C BOS0026 
    ─────────────────────────────────────────────
      [Network: enP2p1s0f0 / ac:1f:6b:09:c0:52]
        Execute
        netboot enP2p1s0f0 (pxelinux.0)
      [Disk: sda2 / ebdb022b-96b2-4f4f-ae63-69300ded13f4]
        Ubuntu, with Linux 5.4.0-12-generic (recovery mode)
        Ubuntu, with Linux 5.4.0-12-generic
        Ubuntu
      
      System information
      System configuration
      System status log
      Language
      Rescan devices
      Retrieve config from URL
     *Plugins (0)                                          
      Exit to shell
    
    ─────────────────────────────────────────────
     Enter=accept, e=edit, n=new, x=exit, l=language, g=log, h=help
     [sda3] Processing new Disk device
    
    Petitboot System Configuration
     
    ──────────────────────────────────────────────
    
      Autoboot:      ( ) Disabled
                     (*) Enabled
    
      Boot Order:    (0) Any CD/DVD device
                     (1) disk: sda2 [uuid: ebdb022b-96b2-4f4f-ae63-69300ded13f4]
                     (2) net:  enP2p1s0f0 [mac: ac:1f:6b:09:c0:52]
    
                     [     Add Device     ]
                     [  Clear & Boot Any  ]
                     [       Clear        ]
      
      Timeout:       30    seconds
      
      
      Network:       (*) DHCP on all active interfaces
                     ( ) DHCP on a specific interface
                     ( ) Static IP configuration
      
    ─────────────────────────────────────────────
     tab=next, shift+tab=previous, x=exit, h=help
    
    Petitboot System Configuration
    ─────────────────────────────────────────────
      Network:       (*) DHCP on all active interfaces
                     ( ) DHCP on a specific interface
                     ( ) Static IP configuration
    
      DNS Server(s):                                   (eg. 192.168.0.2)
                     (if not provided by DHCP server)
      HTTP Proxy:                                    
      HTTPS Proxy:                                   
    
      Disk R/W:      ( ) Prevent all writes to disk
                     (*) Allow bootloader scripts to modify disks
    
      Boot console:  (*) /dev/hvc0 [IPMI / Serial]
                     ( ) /dev/tty1 [VGA]
                     Current interface: /dev/hvc0
    
                     [    OK    ]  [   Help   ]  [  Cancel  ]
    
    ───────────────────────────────────────────
     tab=next, shift+tab=previous, x=exit, h=help
    
  • Now select the ‘Install Ubuntu Server’ entry below the CD/DVD entry:

      [CD/DVD: sr0 / 2020-03-23-08-02-42-00]
      *  Install Ubuntu Server                              
    
  • And let Petitboot boot from the (virtual) CDROM image:

    Sent SIGKILL to all processes
    [  119.355371] kexec_core: Starting new kernel
    [  194.483947394,5] OPAL: Switch to big-endian OS
    [  197.454615202,5] OPAL: Switch to little-endian OS
    
  • Finally the initial subiquity installer screen will show up in the console:

    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      Willkommen! Bienvenue! Welcome! Добро пожаловать! Welkom
    ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
      Use UP, DOWN and ENTER keys to select your language.                        
    
                    [ English                                    ▸ ]              
                    [ Asturianu                                  ▸ ]              
                    [ Català                                     ▸ ]              
                    [ Hrvatski                                   ▸ ]              
                    [ Nederlands                                 ▸ ]              
                    [ Suomi                                      ▸ ]              
                    [ Français                                   ▸ ]              
                    [ Deutsch                                    ▸ ]              
                    [ Ελληνικά                                   ▸ ]              
                    [ Magyar                                     ▸ ]              
                    [ Latviešu                                   ▸ ]              
                    [ Norsk bokmål                               ▸ ]              
                    [ Polski                                     ▸ ]              
                    [ Русский                                    ▸ ]              
                    [ Español                                    ▸ ]              
                    [ Українська                                 ▸ ]              
    
    
  • The rest of the installation is business as usual …

Last updated a month ago. Help improve this document in the forum.