You are not logged in.

#1 2013-07-28 11:26:54

g3n3r1c
Member
Registered: 2013-07-16
Posts: 17

[SOLVED] Remastering official install live iso - how to create initrd?

The wiki entry about Remastering the Install ISO does not mention how to generate a custom initrd with mkinitcpio for the live cd.

Update: Thanks to djgera's answer i have been able to make it work:

Environment:

mkdir -p ~/arch/{iso,custom}
sudo mount -t iso9660 -o loop ~/archlinux-2013.07.01-dual.iso ~/arch/iso
cp -av ~/arch/iso/* ~/arch/custom && sync && sudo umount ~/arch/iso
unsquashfs -d ~/arch/custom/arch/x86_64/squashfs-root ~/arch/custom/arch/x86_64/root-image.fs.sfs

Mount:

mkdir ~/arch/custom/arch/x86_64/squashfs-root/mnt
sudo mount ~/arch/custom/arch/x86_64/squashfs-root/root-image.fs ~/arch/custom/arch/x86_64/squashfs-root/mnt
sudo mount -vB /dev ~/arch/custom/arch/x86_64/squashfs-root/mnt/dev
sudo mount -vB /sys ~/arch/custom/arch/x86_64/squashfs-root/mnt/sys
sudo mount -vt proc none ~/arch/custom/arch/x86_64/squashfs-root/mnt/proc

Copied kernel to environment:

cp ~/arch/custom/arch/boot/x86_64/vmlinuz ~/arch/custom/arch/x86_64/squashfs-root/mnt/boot/vmlinuz-linux

Chroot:

sudo chroot ~/arch/custom/arch/x86_64/squashfs-root/mnt /bin/bash

# make changes to the live system

export LC_ALL='en_US.UTF-8'
locale-gen
mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img
rm /boot/vmlinuz-linux
exit

Moved new initrd out of environment:

mv ~/arch/custom/arch/x86_64/squashfs-root/mnt/boot/archiso.img ~/arch/custom/arch/boot/x86_64/archiso.img

Unmount:

sudo umount ~/arch/custom/arch/x86_64/squashfs-root/mnt/{dev,sys,proc}
sudo umount ~/arch/custom/arch/x86_64/squashfs-root/mnt

Create squashfs:

rm ~/arch/custom/arch/x86_64/root-image.fs.sfs
mksquashfs ~/arch/custom/arch/x86_64/squashfs-root ~/arch/custom/arch/x86_64/root-image.fs.sfs
rm -rf ~/arch/custom/arch/x86_64/squashfs-root

Create iso:

genisoimage -l -r -J -V "ARCH_201307" -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o ~/arch/archlinux-2013.07.01-dual_custom.iso ~/arch/custom

Last edited by g3n3r1c (2013-07-28 16:26:16)

Offline

#2 2013-07-28 13:15:35

djgera
Developer
From: Buenos Aires - Argentina
Registered: 2008-12-24
Posts: 694
Website

Re: [SOLVED] Remastering official install live iso - how to create initrd?

Hello

Run inside chroot:

mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img

But doing these steps are too much complex, do not remaster (also such wiki is outdated). Just create a new customized one using archiso::releng profile.

pacman -S archiso
cd /tmp # or any other working directory with at least 3G free
cp -r /usr/share/archiso/configs/releng .
cd releng
# cutomize what you want here (look on root-image/ directory and build.sh to see how things works)
# sed 's/i686//' build.sh Do this if you not want also i686 on final iso.
./build.sh

I suggest to build a new one without any cuztomizations to see how things works, next start to cuztomize it.

Offline

#3 2013-07-28 15:21:39

g3n3r1c
Member
Registered: 2013-07-16
Posts: 17

Re: [SOLVED] Remastering official install live iso - how to create initrd?

Thank you djgera!

mkinitcpio -c /etc/mkinitcpio-archiso.conf -k /boot/vmlinuz-linux -g /boot/archiso.img

was exactly what was needed!

About the archiso packet: I think I'll keep up my way of doing this because it can be done without the script with any linux distro.

Offline

Board footer

Powered by FluxBB