Dev Mac

Change macOS terminal shell to Bash 5

Since macOS Catalina that zsh is the default shell. From what I could understand this was caused by a change in Bash license to GPL after version 3.

So, since version 3 of Bash is pretty old they changed the default to zsh.

Since Homebrew is not yet fully Apple Silicon compatible using Homebrew was not an option. If your Mac runs Intel a simple brew install bash will install a newer version of Bash on /usr/local/bin/bash (if you had Homebrew installed obviously). You can follow the updates for Homebrew compatibility with Apple Silicon here.

This leaves us with installing Bash the good old fashion way:

curl -O
tar xzf bash-5.1.tar.gz
cd bash-5.1
./configure --prefix=/usr/local && make && sudo make install

After that is done, you just need to add Bash to your available shells:

sudo bash -c "echo /usr/local/bin/bash >> /private/etc/shells"

And make Bash the active one:

chsh -s /usr/local/bin/bash

Open a new terminal window or restart your terminal app and check with:

echo "$SHELL"
bash --version

Dev Mac Tech

MAMP Pro – Oops, something is badly wrong!

Out of the blue, MAMP Pro started presenting me with an alert when I tried opening the app:

Oops, something is badly wrong!
Either you did not provide the necessary admin credentials or the MAMP PRO package could not be initialized correctly. You can either restart the application and try again or re-install the software.

I contacted support, they advised me to uninstall/reinstall and that didn’t help. The alert kept on being the only thing I saw when I tried to start the app and then it would just close.

After doing some digging around the web, I ended up here and the following command fixed it:

sudo launchctl load -w /Library/LaunchDaemons/de.appsolute.mampprohelper.plist

I suspect this might have been caused because I manually disabled MAMP Pro helper Launch Agent on macOS. Still not sure why MAMP Pro needs that running to start the app but it looks like it does.

BTW: the databases and settings for MAMP Pro are not in /Applications/MAMP but in /Library/Application Support/appsolute/MAMP PRO/

OpenStack OVH Tech

Transmit OVH OpenStack Swift v3 Configuration

Steps to configure OVH OpenStack Swift v3 on Transmit:

  • Click the + to add a New Server
  • Choose OpenStack Swift

Remote Path: v3

Obviously replace TENANT_NAME, USER and USER_PASSWORD with your values.

OpenStack OVH Tech

CyberDuck OVH OpenStack Swift v3 Configuration

OVH disabled Keystone (OpenStack Identity Service) API v2.0 and requires all endpoints to now use v3.

Currently, the instructions to setup CyberDuck with OVH are not correct. They mention the Tenant_ID:Access_Key should be filled with Project_ID:Horizon_User_ID.

Currently CyberDuck requires Project:Domain:Username and in the case of OVH should be TENANT_NAME:default:USER

Steps to set it up on CyberDuck:

  • click the + to Add a New Bookmark
  • from the dropdown pick OpenStack Swift (Keystone 3)


Server –
Project:Domain:Username – TENANT_NAME:default:USER
Path (under More Options): v3.0

Obviously replace TENANT_NAME, USER and USER_PASSWORD with your values.

Note: ‘default’ is the default domain and if not changed it should work.

Debian Sysadmin Tech

Software RAID1 On Running Debian Stretch LVM + GRUB2

I needed to setup a software RAID1 on a Debian Stretch server where I had no KVM access, so I had to make do with just SSH and rescue access.

I was following this tutorial for How To Set Up Software RAID1 On A Running LVM System (Incl. GRUB2 Configuration) (Debian Squeeze) but ran into some problems. Not sure if it was the version of Debian being different or something else from the hosting pre-installed Debian.

saving /etc/mtab edit

When attempting to save the edit to /etc/mtab I was getting the error:

error writing /etc/mtab invalid argument

So, I ended up using sed:

sed -e "s/dev\/sda1/dev\/md0/" -i /etc/mtab

Doing a cat /etc/mtab showed the correct change but I doubt this made much of a difference and could probably have skipped this step. Not sure but it didn’t hurt.

creating /etc/grub.d/09_swraid1_setup

I added a few lines from /boot/grub/grub.cfg menuentry stanzas in the ### BEGIN /etc/grub.d/10_linux ### that looked to me were missing from the provided menuentry example.

Again, not sure if it made a difference but it worked.

pvmove Insufficient free space

When attempting to do the step:

pvmove -i 2 /dev/sda5 /dev/md1

I was getting the error:

Insufficient free space: X extents needed, but only Y available

As I ended up partially breaking the filesystem a couple of time, trying to solve this, I ended up just requesting a clean install and restarting the tutorial after the step:

sfdisk -d /dev/sda | sfdisk --force /dev/sdb

Booting into live rescue and following How to Shrink an LVM Volume Safely.

The idea on my case was to make ‘/dev/YOUR-VOLUME-GROUP/root’ 1GB smaller.

As my drive had Tb, I had to use the following to determine the GB:

pvs --units g

After that I rebooted back into the system and continued the tutorial and the pvmove problem was gone.

Other issues from live rescue on this particular hosting service:

The version of e2fsprogs and resize2fs was old and I was getting the error “has unsupported feature(s): metadata_csum” or “Filesystem has unsupported read-only feature(s) while trying to open”

I had to upgrade to ‘e2fsprogs-1.43.1’

When attempting to do:


The server in live rescue wasn’t able to resolve DNS, so I had to use curl to hack something:

curl -o e2fsprogs-1.43.1.tar.gz

This showed me one of the download server domains from SourceForge and I pinged that domain to get the IP and used –resolve to be able to reach it, like this:

curl -o e2fsprogs-1.43.1.tar.gz --resolve --resolve

After that I was able to install it:

tar xzf e2fsprogs-1.43.1.tar.gz
cd e2fsprogs-1.43.1
make install

And had to use ./e2fsprogs/e2fsprogs and ./resize/resize2fs as my commands.

Issues that I ignored

  • the ‘mount’ command was still displaying /dev/sda1 before the reboot
  • ‘update-grub’ was returning a few ‘grub-install: warning: Couldn’t find physical volume `(null)’.’ errors
  • the final ‘update-initramfs -u’ required me to do ‘update-initramfs -t -u’