:: Re: [DNG] How to integrate devuan-i…
Top Page
Delete this message
Reply to this message
Author: aitor_czr
Date:  
To: Ozi Traveller, dng
Subject: Re: [DNG] How to integrate devuan-installer in an existing devuan based system
I forgot umounting the partitions:

umount chroot/proc
umount chroot/sys
umount chroot/dev/pts

after exiting from the chroot jail. Be sure that chroot/proc and
chroot/sys are empty, because sometimes they are busy. Otherwise,
restart the computer.

    Aitor.


On 11/21/2015 01:27 PM, aitor_czr wrote:
> Hi all,
>
> This example is for amd64 architecture.
>
> I genuinely apologize for the length of the post !!
>
>
> *1.-**_MODIFYING THE FILESYSTEM.SQUASHFS_*
>
> Download the iso distribution: ExeGnuLinux, Refracta, Star... or
> whatever you want, and extract the content.
>
> You will find a squashfs file in it (there are exceptions like
> knoppix, which uses loop). This file is named filesystem.squashfs in
> the most of the cases.
>
> Mount the file into a chroot jail and enter move up to it:
>
> $ mkdir /tmp/squashfs
> $ sudo su
> # mount -t squashfs -o loop filesystem.squashfs /tmp/squashfs
> # rsync -v -rlt -a /tmp/squashfs/ chroot
> # umount /tmp/squashfs/
> # mount -t none -o bind /proc chroot/proc
> # mount -t none -o bind /sys chroot/sys
> # mount -t none -o bind /dev/pts chroot/dev/pts
> # xhost +
>
> If you don't type xhost+, you will can't be able to run graphical
> applications into the jail.
>
> Copy the following files:
>
> # cp /etc/hostname chroot/etc/hostname
> # cp /etc/hostname/hosts chroot/etc/hostname/hosts
> # cp /etc/hostname/resolv.conf chroot/etc/resolv.conf
>
> Now you will have network connection into the jail.
>
> Move up to the jail:
>
> # chroot chroot
>
> Do all the changes you want in the system. The following three points
> are very important:
>
> i) The kernel in the system and the kernel in the installer must be
> the same.
>
> ii) Install all the grub dependencies, but not the grub.
>
> iii) Remove /etc/fstab... Yes, kick it! If you don't remove this file,
> doing a manual partition during the installation, your personal folder
> will not be created (this is a bug in debian-installer).
>
> Install the following packages:
>
> root@devuan:~# apt-get install live-boot live-boot-initramfs-tools
> live-tools live-config live-config-sysvinit
>
> Create a file "/etc/live/config.conf" containing something like that:
>
> LIVE_HOSTNAME=devuan
> LIVE_USERNAME=devuan
> LIVE_USER_FULLNAME="Devuan"
> LIVE_USER_DEFAULT_GROUPS="cdrom floppy audio dip video plugdev fuse
> bluetooth netdev scanner"
>
> Make a backup of your sources.list:
>
> root@devuan:~# cp /etc/apt/sources.list /etc/apt/sources.list-back
>
> Don't rename this file.
>
> Create an executable /usr/bin/preseed-hack:
>
> #! /bin/bash
>
> dpkg --purge live-boot live-boot-initramfs-tools live-tools
> live-config live-config-sysvinit
> rm -rf /etc/live
> rm -f /etc/apt/sources.list
> mv /etc/apt/sources.list-back /apt/sources.list
>
> FILE=/etc/fstab
> if grep "^/dev/sd" ${FILE} | grep "/media/" | grep "auto"
> then
>     LINE1=`grep "^/dev/sd" ${FILE} | grep "/media/" | grep "auto"`
>     LINE2="## ${LINE1}"
>     rpl -q "${LINE1}" "${LINE2}" ${FILE}
> fi
> if grep "^/dev/sr" ${FILE} | grep "/media/cdrom"
> then
>     LINE3=`grep "^/dev/" ${FILE} | grep "/media/cdrom"`
>     LINE4="## ${LINE3}"
>     rpl -q "${LINE3}" "${LINE4}" ${FILE}
> fi
> exit 0

>
> The above script fixes another bug in debian-installer.
>
> Clean the system and exit:
>
> root@devuan:~# apt-get autoremove --purge
> root@devuan:~# apt-get autoclean
>
> You can use 'mksquashfs' for getting the new filesystem.squashfs, but
> i prefer to use live-build.
>
> Using live-build we will get a better compression (Ozi and Frits are
> working on that).
>
>
> *2.- *_*GETTING THE NEW FILESYSTEM.SQUASHFS WITH LIVE-BUILD*_
>
> Install 'live-build' and 'squashfs-tools' packages, and type:
>
> $ mkdir live-build
> $ cd live-build
> $ sudo su
> # lb init
>
> Here you are an example for lb-config (choose your nearest mirror):
>
> # lb config -a amd64 \
>       --binary-images iso \
>       --distribution jessie \
>       --win32-loader false \
>       --checksums md5 \
>       --archive-areas "main" \
>       --apt-recommends false \
>       --apt aptitude \
>       --apt-options --yes \
>       --build-with-chroot false \
>       --parent-mirror-bootstrap "deb 
> http://es.mirror.devuan.org/merged/" \
>       --parent-mirror-binary "deb http://es.mirror.devuan.org/merged/" \
>       --mirror-bootstrap "deb http://es.mirror.devuan.org/merged/" \
>       --mirror-binary "deb http://es.mirror.devuan.org/merged/"

>
> # lb bootstrap && lb chroot
>
> Now you will have the following folders:
>
> .build
> cache
> chroot
> config
>
> Make a backup of the chroot folder and replace it by the chroot
> containing your distribution, or create a simbolic link pointing to it.
>
> Build the system:
>
> # lb binary
>
> And you will get your new filesystem.squashfs !!
>
> Now we are going to include it in the iso.
>
>
> *3.-**_GENERATING THE ISO_*
>
> Install 'genisoimage', 'syslinux' and 'syslinux-utils' packages.
>
> Download the following live image of Devuan:
>
> gnuinos.org/devuan
>
> Extract it with file-roller or isomaster in a file named 'DEVUAN', and
> replace the following files:
>
> live/filesystem.squashfs
> live/initrd.img
> live/vmlinuz
>
> You can also customize the splash, etc...
>
> The following script will generate the new *.iso image and the *.iso.md5:
>
> #!/bin/sh
>
> WORKDIR="$HOME"
> ISOTMP="DEVUAN"
>
> CREATEISO="`which mkisofs`"
> if [ "$CREATEISO" = "" ]; then
> CREATEISO="`which genisoimage`"
> fi
>
> LIVECDLABEL="unofficial Devuan 1.0 Alpha2"
> CUSTOMISO="unofficial-Devuan-1.0-Alpha2_amd64.iso"
>
> find $WORKDIR/$ISOTMP -xdev -type f -print0 | xargs -0 md5sum > md5sums
> $CREATEISO    \
>  -quiet \
>  -r    \
>  -V "$LIVECDLABEL"    \
>  -cache-inodes    \
>  -J    \
>  -l    \
>  -b isolinux/isolinux.bin    \
>  -c isolinux/boot.cat    \
>  -no-emul-boot    \
>  -boot-load-size 4    \
>  -boot-info-table    \
>  -o $WORKDIR/$CUSTOMISO "$WORKDIR/$ISOTMP"

>
> isohybrid $WORKDIR/$CUSTOMISO
> md5sum $WORKDIR/$CUSTOMISO > $WORKDIR/$CUSTOMISO.md5
>
> To sum up, i will explain how to customize the appearance of the
> installer.
>
>
> 4.- _*HOW TO CUSTOMIZE TE APPEARANCE OF d-i*_
>
> We will do that using CPIO.
>
> Copy 'install/gtk/initrd.gz' file in a new directory and move up to it.
>
> Now type:
>
> $ gunzip initrd.gz
> $ mkdir tmp
> $ cd tmp
> $ sudo su
> # cpio -id < ../initrd
>
> Now you can customize the following folders (i will not go into details):
>
> usr/share/themes
> usr/share/graphics
>
> Generate tne new initrd.gz:
>
> # rm -f ../initrd
> # find . | cpio --create --format='newc' > ../initrd
> # cd ..
> # gzip initrd
>
> ... And that's all :)
>
> HTP
>
> Aitor.
>
> P.D.- I genuinely apologize again for the length of the post !!