Ade Malsasa Akbar contact
Senior author, Open Source enthusiast.
Wednesday, February 12, 2020 at 22:52


In December 2019, at the same time I shipped another multiboot GNU/Linux to different customer in Sulawesi Island, Indonesia. For this, my customer ordered deepin 15, but GLIM Maker cannot make it multiboot. To my experience, deepin ISO images work best if they made singleboot in a flash drive (similar to BlankOn's). So I edited the configuration code mimicking a singleboot's config and it worked. You can use my scripts below to make your own multiboot with depin as one among its OSes. Happy hacking!

Subscribe to UbuntuBuzz Telegram Channel to get article updates directly.


Download deepin OS


Get it from https://deepin.org. I used version 15.11 for this.

grub.cfg


for isofile in ${isopath}/deepin/deepin-*.iso; do
  if [ -e "$isofile" ]; then
    menuentry "Deepin >" --class deepin {
      configfile "${prefix}/inc-deepin.cfg"
    }
    break
  fi
done

This is the Deepin entry at first page on bootloader when you boot up the USB Flash Drive. This code works by reading if any deepinblablabla.iso file existed, if any, display the Deepin > entry with deepin.png icon, and when this entry selected call next script inc-deepin.cfg.

inc-deepin.cfg


# Deepin GNU/Linux
for isofile in $isopath/deepin/deepin-*.iso; do
  if [ ! -e "$isofile" ]; then break; fi
  regexp \
    --set 1:isoname \
    --set 2:version \
    --set 3:arch \
    --set 4:variant \
    "^${isopath}/deepin/(deepin-([^-]+)-([^-]+)-([^-]+)\.iso)\$" "${isofile}"
  menuentry "Deepin ${version} ${arch} ${variant}" "${isofile}" "${isoname}" --class deepin {
    set isofile=$2
    set isoname=$3
    echo "Using ${isoname}..."
    loopback loop $isofile
    linux (loop)/live/vmlinuz boot=live findiso=${isofile} components
    initrd (loop)/live/initrd.lz
  }
done
This is the code called by the previous code. This code is responsible for loading the kernel and the initrd. For deepin, particularly the version 15.11, kernel file path is in /live/vmlinuz and initrd path is /live/initrd.lz. The important thing is the boot options, as that is the secret.

Icon


Download this icon and save it as deepin.png in /boot/grub/themes/invader/icons/.



Code Screenshot


See picture below to make sure where to put the codes.



Bootloader


When booting, now your USB will display Deepin as an entry and you can run it.


Result


Successful multiboot can run deepin 15 in LiveCD mode like below. Congrats!



This article is licensed under CC BY-SA 3.0.