Code Monkey home page Code Monkey logo

make_centos's Introduction

make_centos

make_centos allows one to create a customized CentOS 7 ISO image with additional packages if wished and Kickstart files to automate the installation process.

Requirements

In order to create a customized CentOS ISO image, you need to have the following:

  • A running Fedora or CentOS machine
  • A broadband internet connection to download the source ISO image
  • Disk space from 2 GB to 20 GB (depending on your preferences (Minimal, DVD, or Everything)

Setup

A bunch of packages needs to be installed on the system you are using to create the ISO image:

sudo dnf -y install wget createrepo isomd5sum genisoimage syslinux

Usage

The script is make_centos.sh handles all tasks. -h displays some details about the usage:

usage:
        make_centos.sh [options] command
options:
  -h              Show this help

commands:
  check           Check the ISO image
  clean           Clean up folders
  fetch           Fetch the ISO image that acts as source
  create          Create the new ISO image

Before running the script please update the variables. The directory layout looks like this:

.
├── config --------- The isolinux.cfg is stored here
├── iso ------------ This folder will store the downloaded ISO images
├── kickstart ------ All kickstart files will end up on the ISO image
├── rpms ----------- Place all custom RPMS inthis folder
└── unpacked ------- Here is the original ISO image content stored

Test your ISO

There are many way to run the created ISO file, one is qemu:

qemu-system-x86_64 -boot d  -m 1024 -cdrom your.iso

Credits

This project was inspired by the work of:

License

make_centos licensed under MIT, for more details check LICENSE.

make_centos's People

Contributors

fabaff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

make_centos's Issues

Questions after testing & CentOS 8 Stream

Hello Fabian,

thanks for sharing this code!

I've tried it, and also tried to make some changes towards CentOS 8 Stream, here are my 5 cts. Environment: CentOS 7.

Run script "as-is" for CentOS 7.9.2009

  • for some reason, "fetch" says "Server denied you to change to the given directory", possibly due to changed path
  • "create" still works and ISO is created
  • geniso (?) seems to install packages of the local system to the new ISO. Maybe this should be a configurable option. Which params/calls do trigger that actually?
  • you let the script install for example curl on the fly; on my system dnf was not available, so I installed in manually to avoid script failure.

Try for CentOS 8 Stream

The trivial changes to find and adjust (however name schemes seem to have changed in the URLs so I just pasted proper values) was rather easy going so I could start the ISO creation.

Then following problems occured:

  1. The path of comps.xml file / its path seem to have changed (maybe if it's only related to the cleanup, not a big issue):
"Cleaning up unpacked ...
+ find unpacked -name TRANS.TBL -exec rm '{}' ';'
+ mv 'unpacked/repodata/*-cS-x86_64-comps.xml' unpacked/repodata/comps.xml
mv: cannot stat ‘unpacked/repodata/*-cS-x86_64-comps.xml’: No such file or directory
  1. This file is as it seems no more availalble and the following causes another error:
discinfo=`head -1 $DVD_LAYOUT/.discinfo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.