|
|
21 hours ago | |
|---|---|---|
| LICENSE | 3 weeks ago | |
| README.md | 2 weeks ago | |
| customize_iso.sh | 21 hours ago | |
| download_myfiles.py | 3 weeks ago | |
| excluded.txt | 3 weeks ago | |
| excluded_tags.txt | 3 weeks ago | |
| firmware.sh | 2 weeks ago | |
| incremental_backup.sh | 21 hours ago | |
| lfs.sh | 21 hours ago | |
| lfs32.conf | 2 weeks ago | |
| lfs32dev.conf | 21 hours ago | |
| lfs64.conf | 2 weeks ago | |
| lfs64dev.conf | 21 hours ago | |
| lfsdev.sh | 21 hours ago | |
| preseed.cfg | 2 weeks ago | |
| preseedvmlfs.cfg | 2 weeks ago | |
| preseedvmlfsdev.cfg | 21 hours ago | |
| wanted-full.txt | 3 weeks ago | |
| wanted-lfs.txt | 21 hours ago | |
| wanted-station.txt | 2 weeks ago | |
| wanted.txt | 2 weeks ago | |
README.md
customize_debian_iso
Build an iso with all your deb favorite package and you personnal files in it. With dependencies.
Concepts
Those scripts are intended to customise an existing debian installer iso.
The initial idea is to anticipate the end of i386 architecture ( bookworm is the last release to include this architecture ) and be able to reinstall i386 hosts in the future with the last existing release even in future (retroxxxx). Those servers will no more have security fixes, so a local/offline usage is recommanded.
The goals are :
- to be able to install a debian on a specific arch in full offline mode
- to store everything you need and will need without network on a cd or usb disk
- to have all package dependencies included
- to include package you want
- to exclude package tags you don't want
- to exclude package you don't want
You may also include :
- recommended packages of a package
- suggested packages of a package
- suggestions from popcon
Requirements
It doesn't need admin rights but apt should be configured properly. If you want to include a package in contrib, contrib must be available in sources.list.
You need to execute it on the same architecture as the target. You need to execute it on the same debian version as the target.
It can be executed on an existing host or in a virtual machine.
Copy all files on your home directory. Adjust wanted.txt, excluded.txt and exclude_tags.txt to your needs.
Execute customize_iso.sh with the iso as argument.
Internal
customize_iso.sh :
- mount iso as temp
- select and download packages
- prepare a custom preseed
- copy the downloaded packages
- generate the custom iso you can write on a disk or a usb key
In offline mode, the custom iso provide a script local-apt-repository.sh that automatically :
- allow install of packages from installation medium (apt-cdrom)
- install and configure local-apt-repository to install packages you added to the medium
download_myfiles.py :
- load existing package of the original iso
- download wanted packages
- ask to include recommanded, suggested and popcon packages
- simulate an apt cache to integrate all dependencies
The script download_myfiles.py may be used by itself if you provide the needed arguments.
You can add a preseed to automate the installation.
You can add a script to custom manually :
- add firmwares, add zips
- add scripts on the medium to automate post-installation ( add user, add files )
Known bugs
The script download_myfiles.py use apt to search for dependencies. Dependencies is a complex subject, and some dependencies may give some problems : virtual packages and or_dependency.
To avoid them, don't ask for virtual packages. And provide the or_dependency you want. But the script will continue to try to download all or_dependencies ...
You can refuse to install the recommanded/suggested packages you don't want or exclude them directly in the excluded file ... But yes it's a bug :( .
Usage
You can give some arguments to the script (--help) but the most controlled usage is :
$ bash customize_iso.sh --configfile myconfigfile.conf
...