Bodhi Linux 7.0 is a GNU/Linux distribution based on Ubuntu 22.04 LTS. It has a lightweight Moksha Desktop environment and requires only 512 MB RAM for normal operation. This allows it to be used on computers with low RAM. But the problem is that it takes at least 1024 MB to run the installer and have a live session. You will get a black screen and the message "Kernel panic" if you try to use it on a system with less than 1024 MB of RAM:
Failed to execute /init (error -2)
Kernel panic - not syncing: No working init found. (...)
...
---[ end Kernel panic - not syncing: No working init found. ... ]---
Here are the instructions and shell scripts for remastering the ISO image of the official distribution so that it can run on 512 MB of RAM. The idea of modification was found in the article "Reduce initramfs size and speed up the generation in Ubuntu 23.10" by Benjamin Drung.
What you need:
- GNU/Linux working environment (Bodhi Linux 6.0 is assumed, but not limited to);
- Bodhi Linux 7.0 official distribution image;
- shell scripts repack_initrd.sh and make_iso.sh from this repository.
Note. The required packages must be installed in your GNU/Linux working environment:
- xz-utilities;
- zstd;
- genisoimage.
Let's start remastering the distribution image!
- Create a working directory ~/BL70:
$ mkdir ~/BL70
- Place shell scripts repack_initrd.sh and make_iso.sh to the working directory:
$ cp repack_initrd.sh make_iso.sh ~/BL70/
- Copy the official distribution ISO image contents to the working directory ~/BL70/isofs.
Case A: If you have a Bodhi Linux 7.0 DVD- or USB- media, you can attach it to your computer. The filesystem of the media will be mounted in /media/Bodhi Live CD. Copy the ISO image contents:
$ cp -R '/media/Bodhi Live CD/.' ~/BL70/isofs
Case B: If you have a downloaded ISO image file ~/Download/bodhi-7.0.0-64.iso, you can mount it directly in /mnt/iso:
$ sudo mkdir /mnt/iso
$ sudo mount -t iso9660 -o ro,loop,uid=$USER,gid=$USER ~/Downloads/bodhi-7.0.0-64.iso /mnt/iso
Then copy the ISO image contents:
$ cp -R /mnt/iso/. ~/BL70/isofs
Unmount the media and delete the mount point directory:
$ sudo umount /mnt/iso
$ sudo rmdir /mnt/iso
The result of the preparation should look as shown here:
-------------------------------------------
~/BL70/
|- isofs/
| |- .disk/
| |- boot/
| |- casper/
| |- ...
|- repack_initrd.sh
|- make_iso.sh
-------------------------------------------
- Go to the working directory:
$ cd ~/BL70
- Rebuild the initial RAMFS image isofs/casper/initrd.gz to isofs/casper/initrd.zst:
$ /bin/sh repack_initrd.sh
It may take a few minutes.
- Replace the old initial RAMFS image with the new one:
$ mv isofs/casper/initrd.zst isofs/casper/initrd.gz
- Create a fixed distribution ISO image ~/BL70/bl70_lowram.iso:
$ /bin/sh make_iso.sh
- Move the ISO image ~/BL70/bl70_lowram.iso from the working directory to another location to use it for low-RAM computers instead of the official distribution image.
Delete the working directory and all it contents to free up space on your disk:
$ cd ~
$ rm -fr ~/BL70