{"id":28640705,"url":"https://github.com/neurobin/jlivecd","last_synced_at":"2025-07-20T07:04:47.626Z","repository":{"id":20363956,"uuid":"23639174","full_name":"neurobin/JLIVECD","owner":"neurobin","description":"Live cd/dvd customization tool","archived":false,"fork":false,"pushed_at":"2021-03-12T04:05:25.000Z","size":182,"stargazers_count":94,"open_issues_count":12,"forks_count":25,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-06-12T20:08:04.006Z","etag":null,"topics":["arch-linux","archlinux","archlinux-images","bootable-live-cd","bootable-live-dvd","chroot","chroot-terminal","debian","distro","iso-image","jlivecd","linux-mint","linux-mint-livecd","linuxmint","livecd","os","shell","ubuntu","ubuntu-livecd","xubuntu"],"latest_commit_sha":null,"homepage":"https://neurobin.org/projects/softwares/unix/JLIVECD/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neurobin.png","metadata":{"files":{"readme":"README.md","changelog":"changelog","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-03T21:57:58.000Z","updated_at":"2025-05-14T21:41:51.000Z","dependencies_parsed_at":"2022-08-03T05:01:02.470Z","dependency_job_id":null,"html_url":"https://github.com/neurobin/JLIVECD","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/neurobin/JLIVECD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobin%2FJLIVECD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobin%2FJLIVECD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobin%2FJLIVECD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobin%2FJLIVECD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neurobin","download_url":"https://codeload.github.com/neurobin/JLIVECD/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neurobin%2FJLIVECD/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266081239,"owners_count":23873511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arch-linux","archlinux","archlinux-images","bootable-live-cd","bootable-live-dvd","chroot","chroot-terminal","debian","distro","iso-image","jlivecd","linux-mint","linux-mint-livecd","linuxmint","livecd","os","shell","ubuntu","ubuntu-livecd","xubuntu"],"created_at":"2025-06-12T20:08:02.198Z","updated_at":"2025-07-20T07:04:47.536Z","avatar_url":"https://github.com/neurobin.png","language":"Shell","readme":"# Disclaimer\n\nCustomized ISOs for personal use are fine. If you want to share your customization with others, whether for free or for purchase, you'll have to rename it; remove all distro specific artwork, branding, and other identity elements; and you can't confuse your intended users about the customization being associated in any way with the base distro.\n\nYou're free to use the softwares without renaming those, as they are licensed under GPL. But otherwise, it will be your own creation and no longer you base distros'.\n\nThe name and identity elements of a distro are trademarked and copyrighted. Unless you have approval from appropriate authorization you can't use those (identity elements and name).\n\n# Description:\n\nThis is a simple command line tool to customize live cd/dvd of **Debian**, **Archlinux**, **Ubuntu family**, **Linux Mint** and some of their derivatives. It does not require that the host system and the target system be the same, i.e you can modify debian live cd sitting on ubuntu or archlinux, or modify archlinux live cd sitting on ubuntu and so on.\n\nIt gives you a chroot environment for modification and creates the modified iso image. You need to do all the customizations on your own, JLIVECD itself does not do any modifications.\n\n\u003e It is developed with the help of the documentation found on: \n\u003e \n\u003e 1. https://help.ubuntu.com/community/LiveCDCustomization\n\u003e 2. https://wiki.debian.org/DebianInstaller/Modify/CD\n\u003e 3. https://wiki.archlinux.org/index.php/Remastering_the_Install_ISO\n\u003e \n\u003e This tool is intended primarily for personal use.\n\n\n\u003cmark\u003ePlease read through the \u003ca href=\"#additional-info\"\u003eAdditional info\u003c/a\u003e section before you start with a Ubuntu or Linux Mint ISO for the first time.\u003c/mark\u003e\n\n# Mentionables:\n\n## Resume capability\n\nIt works as project basis. For a JLIVECD project, you need to use your base ISO only once to extract it and deploy the project. After that, you can keep changing things and building and testing ISOs built on those changes.\n\n## Project and Global configuration\n\nIt works with both global and local configuration files. Using config files, you can skip prompts that need answers from user input. Local (project wise) config is prioritized over global config.\n\nGlobal configuration file: `/usr/local/JLIVECD/.config`\n\nLocal configuration file: `config.conf` file in your project directory.\n\n\n# Dependencies:\n\n1. bash (This is generally installed by default in most Linux distros)\n2. squashfs-tools\n3. genisoimage\n4. syslinux, syslinux-utils (If you want hybrid ISO image (default))\n5. rsync\n6. xterm (optional)\n7. dosfstools (archlinux)\n\nInstall requirements with the following command in debian like systems:\n\n```sh\nsudo apt-get install squashfs-tools genisoimage syslinux syslinux-utils rsync xterm\n```\nand the following command in Archlinux:\n\n```bash\nsudo pacman -S squashfs-tools cdrkit syslinux rsync xterm dosfstools\n```\n\n# Installation:\n\nrun the `install.sh` file in terminal:\n\n```sh\nchmod +x ./install.sh\nsudo ./install.sh\n```\n\n# How to use:\n\nRun `JLstart` as root in a terminal or run it from `menu-\u003eDevelopment-\u003eJLIVECD`.\n\n\u003cimg alt=\"JLIVECD menu image\" src=\"https://neurobin.org/img/runjlivecd.png\"\u003e\u003c/img\u003e\n\nExample:\n\n```bash\n~$ sudo JLstart\n[sudo] password for user: \n\n**************** JLIVECD******************\n*Tips:\n*   1. Paths must be absolute. (~ allowed)\n*   2. Inputs are literal\n*   3. Do not use NTFS partition\n******************************************\n\n\n=== Is this a new project: (y/n)?: \n\n...............................\n```\n**Hints are given on the go, follow them to successfully create a customized live cd/dvd.**\n\n\u003e It prompts for OSMODE (debian, ubuntu or archlinux) for new projects and saves it in project specific .config file so that next time it doesn't require you to specify the OS again. Make sure you don't change it in the .config file.\n\nIf you want to run JLIVECD in specific OSMODE, there's three option for you:\n\nOption | Alt. option | Detail\n------ | ----------- | ------\n`-ub` | `--ubuntu` | Ubuntu mode (for Ubuntu family \u0026 Linux Mint)\n`-db` | `--debian` | Debian mode (Debian family)\n`-al` | `--archlinux` | Archlinux mode (Archlinux family)\n\n**Note** If you run JLIVECD in a specific OSMODE and it doesn't match with what's in .config file, it will throw error and exit.\n\n**Examples of running JLIVECD in specific OSMODE:**\n\n```bash\nsudo JLstart -ub #ubuntu\nsudo JLstart -db #debian\nsudo JLstart -al #archlinux\n```\n\n# Directories \u0026 Files:\n\nIn your project directory, you will find some default files/directories. Don't change their names.\n\n**The directories are:**\n\n* `debcache`: `.deb` or `pkg` files are kept here. See the [cache management](#cache-management) section for more details.\n* `edit`: This is the root filesystem (i.e `/`) for the live system (chroot system). Any change you make here will appear in the finalized ISO.\n* `extracted`: This is where the original ISO is extracted. You can change several things here, like Diskname, release, date, splash screen, etc.\n* `mnt`: A directory used only for mounting ISO image.\n* `mydir`: A directory with 777 permission. This directory is moved inside `edit/` during chroot, thus in chroot it will be available as `/mydir`. Use this directory to store/install packages and files that you need to store for future but do not want to include them in the ISO.\n\n**The files are:**\n\n* `.config`: configuration of the corresponding project i.e `DISKNAME` and some other defaults (for internal use)\n* `config.conf`: Configuration managed by user. This is essentially a bash script and thus you can make intelligent use of it and set dynamic options. Any non-empty value set to a variable (option) will bypass its input prompt.\n\n\n# Things to care:\n\n1. Paths must be absolute. JLIVECD **does not** run in the current directory. `~` is respected.\n2. **Quotation in prompts are taken as literal.** `~/\"some folder\"` and `\"~/some folder\"` are different. If you want spaces then give it as it is: `~/some folder`.\n3. **Do not use NTFS partition.**\n4. The default is `n` for all `y/n` type prompts unless specified otherwise.\n\n# Some Tips \u0026 Tricks:\n\n1. If you are not being able to get connected to internet in chroot, you can try running the code: `sudo JLopt -rn` in another terminal in your main system. This may happen if you start JLIVECD before connecting your pc to the internet.\n2. If you want to change the timeout value then run this code in a terminal in your main system: `JLopt -t timeout_value`. \"timeout_value\" should be replaced with your desired time in seconds. Ex: for 12 seconds timeout: `JLopt -t 12`\n3. JLIVECD seems to have problem running the `mate-terminal` properly. For mate DE, install `xterm` instead ( `sudo apt-get install xterm`).\n4. You can change the default terminal JLIVECD uses for chroot. To change the primary default terminal run this code in a terminal in your main system: `JLopt -t1 actual-terminal-command`. To change the secondary default terminal: `JLopt -t2 actual-terminal-command`. For Ex. `JLopt -t1 gnome-terminal`\n5. You don't need to give the full name/path to the base iso prompt: `enter base iso path: ~/Downloads/x`. As there is only one file that matches 'x in my Downloads folder is `xubuntu-14.04.1-x64.iso`, it will take that file as the input.\n6. You can use full path with or without `.iso`.\n\n# Archlinux specific tips\n\n* Do not manually clean pacman cache (`pacman -Scc`). JLIVECD cleans `pacman` cache after backing up the `pkg` files to reduce future downloads. If you do clean manually, the `pkg` cache will not be available anymore and you will have to redownload the same packages again when installing/reinstalling next time around.\n\n# Cache management\n\n1. Put your `.deb` files in *edit/var/cache/apt/archives* folder (or `pkg` files in *edit/var/cache/pacman/pkg/*) so that they don't get downloaded again in the software installation process.\n2. They will be moved automatically to a folder named debcache (located in the same directory as \"edit\") prior to image creation so that they won't be included in the iso image.\n3. You never need to delete `.deb` or `pkg` files from *edit/var/cache/apt/archives* manually and you shouldn't (not even with package manager cache clean program unless you want it that way for disk space constraint).\n4. Alternatively, you can put the `.deb` or `pkg` files in **debcache** folder too, but in that case you need to run JLIVECD after you have finished copying files to this folder.\n\n\n# New features:\n\n* Support for Archlinux live ISO.\n\n# Customization help:\n\nCustomization related documents can be found on [JLIVECD github wiki](https://github.com/neurobin/JLIVECD/wiki).\n\n# Creating bootable USB\n\nBy default JLIVECD creates hybrid image. You can either use tools like `unetbootin` or something like `dd` to create the bootable USB. If you want to use `dd`, be careful about mistyping and what you are doing. For example, you could end up wiping your hard disk if you mistype `/dev/sdb` as `/dev/sda`. For this, I have another script ([chibu](https://github.com/neurobin/chibu)) that checks the validity of the usb device and makes sure it's a USB device not something else like a partition on your hard drive. After cheking validity it runs a `dd` command to create the bootable USB.\n\n**Note:** **chibu** or **dd** will destory existing data on the USB\n\nWith `chibu`, it's like this:\n\n```bash\nsudo chibu iso_path /dev/sdx\n```\nwhere `/dev/sdx` (not `/dev/sdx1` etc..) is your usb device, (x is a letter)\n\nYou can find the device id with:\n\n```bash\nsudo fdisk -l\n```\nlook for the usb device in the output of the above command.\n\n**Notes:**\n\n* USB created with `unetbootin` may not have its boot flag set. Check with `gparted` and set the boot flag if not set.\n* USB created with `unetbootin` may fail to boot with its first default boot option, choose `failsafe` option.\n* If `unetbootin` doesn't work, try `dd` (preferably [chibu](https://github.com/neurobin/chibu))\n* `unetbootin` won't work for archlinux, use `dd` (preferably [chibu](https://github.com/neurobin/chibu))\n\n# Tested OS:\n\n* Debian (xfce) testing (stretch) @ Thu Mar 23 13:31:53 UTC 2017\n* Debian (xfce) 8.7.1 Jessie\n* Archlinux 2017.05.01 x86_64\n* Xubuntu 16.04 LTS\n* Linux Mint 17 cinnamon\n* Linux Mint 17 XFCE\n* Xubuntu 14.04.1 LTS\n* Ubuntu 14.04.1 LTS\n* Ubuntu 14.04.3 LTS\n* Kubuntu 14.04.1 LTS\n\n\u003cdiv id=\"additional-info\"\u003e\u003c/div\u003e\n\n# Additonal info:\n\n1.In Linux Mint 17 XFCE there's a bug. To fix this edit `/usr/sbin/invoke-rc.d` file (in chroot) as:\nreplace `exit 100` with `exit 0` at line `285` and `421`, then apply upgrade. after upgrading revert this modification (must).\n\n2.In Linux Mint 17 xfce, if you install nautilus then it will set gnome-session as default session and if gnome desktop is not installed then no desktop window will show up in live session. change the link `/usr/bin/x-session-manager` to point to `/usr/bin/xfce4-session`.\n\n3.In xubuntu 14.04.1 there's another bug: Can't open /scripts/casper-functions\" error) to fix this, run this code in chroot:\n\n```sh\nln -s /usr/share/initramfs-tools/scripts /scripts\n```\n\nFollow the following link for bug report:\n\nhttps://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1325142\n\n4.In Ubuntu 14.04 Gnome LTS you might encounter two more bugs:\n\nOne should be solved by editing:\n\n```sh\n/var/lib/dpkg/info/whoopsie.prerm\n/var/lib/dpkg/info/libpam-systemd\\:amd64.prerm\n/var/lib/dpkg/info/libpam-systemd\\:amd64.postinst\n```\n\n(change `exit $?` to `exit 0` in the invoke-rc.d lines)\n\nOther one should be solved by editing:\n\n```sh\n/etc/kernel/postrm.d/zz-update-grub\n/etc/kernel/postinst.d/zz-update-grub\n```\n\nfind the following and comment out the if and fi line:\n\n```sh\nif [ -e /boot/grub/grub.cfg ]; then\n   #exec update-grub\nfi\n```\n\nRevert these changes before exiting the chroot.\n\nFollow the following link for bug report for more details:\n\nhttps://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1325142\n\n5.You may encounter another bug: `Ubiquity installer, hang/freeze on harddisk detection`. This bug can be solved by editing the file `edit/usr/share/applications/ubiquity-gtkui.desktop` and changing the section `exex` from\n\n```sh\nsh -c 'ubiquity gtk_ui'\n```\n\nto\n\n```sh\nsh -c 'sudo ubiquity gtk_ui'\n```y\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneurobin%2Fjlivecd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneurobin%2Fjlivecd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneurobin%2Fjlivecd/lists"}