7 changed files with 83 additions and 105 deletions
@ -1,19 +1,22 @@ |
|||||
# MiniOS Live |
# MiniOS Live |
||||
|
|
||||
Этот скрипт собирает загружаемый ISO образ MiniOS. |
Этот скрипт собирает загружаемый ISO образ MiniOS. |
||||
|
|
||||
Поддерживаемые команды : setup_host build_bootstrap build_chroot build_live build_iso |
**Поддерживаемые команды:** `setup_host build_bootstrap build_chroot build_live build_iso` |
||||
|
|
||||
|
**Синтаксис:** `./install [start_cmd] [-] [end_cmd]` |
||||
|
|
||||
Синтаксис: |
Синтаксис: |
||||
$./install [start_cmd] [-] [end_cmd] |
$./install [start_cmd] [-] [end_cmd] |
||||
$ minios-install [start_cmd] [-] [end_cmd] |
$ minios-install [start_cmd] [-] [end_cmd] |
||||
>запуск от start_cmd до end_cmd |
- запуск от start_cmd до end_cmd |
||||
>если start_cmd опущен, выполняются все команды, начиная с первой |
- если start_cmd опущен, выполняются все команды, начиная с первой |
||||
>если end_cmd опущен, выполняются все команды до последней |
- если end_cmd опущен, выполняются все команды до последней |
||||
>введите одну команду, чтобы запустить определенную команду |
- введите одну команду, чтобы запустить определенную команду |
||||
>введите '-' как единственный аргумент для запуска всех команд |
- введите '-' как единственный аргумент для запуска всех команд |
||||
|
|
||||
Примеры:./install build_bootstrap - build_chroot |
Примеры:./install build_bootstrap - build_chroot |
||||
./install - build_chroot |
./install - build_chroot |
||||
./install build_bootstrap - |
./install build_bootstrap - |
||||
./install cleanup |
./install build_iso |
||||
./install - |
./install - |
||||
|
@ -0,0 +1,9 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
apt-get update |
||||
|
apt-get install -y \ |
||||
|
xorg |
||||
|
xterm \ |
||||
|
blackbox |
||||
|
|
||||
|
savechanges /02-xorg.sb |
@ -1,79 +1,48 @@ |
|||||
#!/bin/bash |
#!/bin/bash |
||||
|
|
||||
CWD=$(pwd) |
. /run/initramfs/lib/config || exit 1 |
||||
SOURCE=/run/initramfs/memory |
|
||||
TEMP=/tmp |
|
||||
REGEX='^$' |
|
||||
|
|
||||
if [ "$1" = "-e" ]; then |
|
||||
REGEX="$2" |
|
||||
shift |
|
||||
shift |
|
||||
fi |
|
||||
|
|
||||
TARGET="$(readlink -f "$1")" |
TMP=/tmp/changes$$ |
||||
|
EXCLUDE="^\$|/\$|[.]wh[.][.]wh[.]orph/|^[.]wh[.][.]wh[.]plnk/|^[.]wh[.][.]wh[.]aufs|^var/cache/|^var/backups/|^var/tmp/|^var/log/|^var/lib/apt/|^var/lib/dhcp/|^var/lib/systemd/|^sbin/fsck[.]aufs|^etc/resolv[.]conf|^root/[.]Xauthority|^root/[.]xsession-errors|^root/[.]fehbg|^root/[.]fluxbox/lastwallpaper|^root/[.]fluxbox/menu_resolution|^etc/mtab|^etc/fstab|^boot/|^dev/|^mnt/|^proc/|^run/|^sys/|^tmp/" |
||||
|
CHANGES=/run/initramfs/memory/changes |
||||
|
|
||||
if [ "$TARGET" = "" ]; then |
if [ "$1" = "" ]; then |
||||
echo "" |
echo "" |
||||
echo "Generate MiniOS ISO image, adding specified modules" |
echo "savechanges - save all changed files in a compressed filesystem bundle" |
||||
echo "Regular expression is used to exclude any existing path or file with -e regex" |
echo " - excluding some predefined files such as /etc/mtab," |
||||
|
echo " temp & log files, empty directories, apt cache, and such" |
||||
echo "" |
echo "" |
||||
echo "Usage:" |
echo "Usage:" |
||||
echo " $0 [[ -e regex ]] target.iso [[module.sb]] [[module.sb]] ..." |
echo " $0 [ target_file.sb ] [ changes_directory ]" |
||||
echo "" |
echo "" |
||||
echo "Examples:" |
echo "If changes_directory is not specified, /run/initramfs/memory/changes is used." |
||||
echo " # to create MiniOS iso without chromium.sb module:" |
|
||||
echo " $0 -e 'chromium' minios_without_chromium.iso" |
|
||||
echo "" |
echo "" |
||||
echo " # to create MiniOS text-mode core only:" |
|
||||
echo " $0 -e 'firmware|xorg|desktop|apps|chromium' minios_textmode.iso" |
|
||||
exit 1 |
exit 1 |
||||
fi |
fi |
||||
|
|
||||
if [ -e "$SOURCE/data/boot/syslinux/isolinux.bin" ]; then |
if [ ! "$2" = "" ]; then |
||||
MINIOS=$SOURCE/data |
CHANGES="$2" |
||||
fi |
|
||||
|
|
||||
if [ "$MINIOS" = "" ]; then |
|
||||
echo "Cannot find boot/isolinux.bin in MiniOS data" >&2 |
|
||||
exit 2 |
|
||||
fi |
fi |
||||
|
|
||||
VER=2021 |
# exclude the save_file itself of course |
||||
DATE=$(date +%Y-%m-%d-%H-%M) |
EXCLUDE="$EXCLUDE|^""$(readlink -f "$1" | cut -b 2- | sed -r "s/[.]/[.]/")""\$" |
||||
DIR=$MINIOS ; ISO=$TEMP/minios_$DATE.iso |
|
||||
[ -n "$1" ] && ISO="$1" |
|
||||
|
|
||||
B="-b boot/syslinux/isolinux.bin -c boot/syslinux/boot.cat" |
CWD=$(pwd) |
||||
C="-no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot" |
|
||||
|
|
||||
if [ -x "$(which xorriso 2> /dev/null)" ]; then |
cd $CHANGES || exit |
||||
M="xorriso -as mkisofs -isohybrid-mbr $DIR/boot/syslinux/isohdpfx.bin" |
|
||||
D=" -isohybrid-gpt-basdat -e" |
|
||||
elif [ -x "$(which genisoimage 2> /dev/null)" ]; then |
|
||||
M=genisoimage ; D="-efi-boot" |
|
||||
else |
|
||||
M=mkisofs ; D="-eltorito-platform 0xEF -eltorito-boot" |
|
||||
fi |
|
||||
|
|
||||
E="EFI/boot/efiboot.img -no-emul-boot" |
mkdir -p $TMP |
||||
|
mount -t tmpfs tmpfs $TMP |
||||
|
|
||||
VER="MiniOS $VER" |
find \( -type d -printf "%p/\n" , -not -type d -print \) \ |
||||
|
| sed -r "s/^[.]\\///" | egrep -v "$EXCLUDE" \ |
||||
|
| while read FILE; do |
||||
|
cp --parents -afr "$FILE" "$TMP" |
||||
|
done |
||||
|
|
||||
if ! $M -hide-rr-moved -f -r -J -l -V "$VER" -A "$VER" \ |
cd $CWD |
||||
$B $C $D $E -o $ISO $DIR ; then |
|
||||
exit 1 |
|
||||
fi |
|
||||
|
|
||||
echo ">>> $ISO created" |
mksquashfs $TMP "$1" -comp $COMP_TYPE -b 1024K -always-use-fragments -noappend |
||||
|
|
||||
# xorriso has hybridization built-in |
|
||||
if [ "$(echo $M | cut -d" " -f1)" != "xorriso" ]; then |
|
||||
if [ -x "$(which isohybrid 2> /dev/null)" ]; then |
|
||||
isohybrid -uefi $ISO |
|
||||
else |
|
||||
echo ">>> No isohybrid to hybridize this ISO" |
|
||||
fi |
|
||||
fi |
|
||||
|
|
||||
exit 0 |
umount $TMP |
||||
|
rmdir $TMP |
Loading…
Reference in new issue