====== Scratchbook ======
Archivio dei documenti che riportano come costruire passo passo un mini LiveCD GNU/LINUX e le istruzioni per installarlo.
===== Introduzione =====
Lo scratchbook ti permette di seguire la creazione della prima release pubblica di SliTaz e fae u viaggio fino al cuore di GNU/LINUX. Ti renderà capace di customizzare il tuo sistema come di creare una tua distro completamente autonoma capace di girare nella memoria di sistema (RAM), ma anche completamente installabile su disco fisso o su una chiavetta USB.
Una volta avviata potrai rimuovere il CD-ROM e comunque avere una SliTaz funzionante. SliTaz può anche essere usata come ambiente verso cui fare chroot e il suo cdrom può essere usato per multitasking. L'unico prerequisito è una distribuzione ospite in cui salvare le librerie, usare il compilatore e gli strumenti di sviluppo, ecc. ecc. Il sistema ospite può essere un ambiente di sviluppo chrootato, una distro minimale, SLitaz installata su un disco fisso o una distro generica come una Debian, Slackware, Fedora, Gentoo, Mandriva, Arch, eccetera. Considera che comunque niente verrà installato nel sistema ospite a causa dei nostri comandi.
SliTaz usa quel gran "coltellino svizzero" di BusyBox come base per il sistema e il kernel. Busybox gira embedded nel sistema usando una piccola quantità di memoria e fornendo molti files. BusyBox è la nostra maggior fonte di informazioni ed è un utility del Debian project che trattiamo con riguardo.
SliTaz usa come bootloader Syslinux e un archived initramfs compresso con cpio. Questo archivio viene poi esploso nella memoria al bott dal kernel in un sistema di grandezza variabile, conservando il controllo sul init. Quando le applicazioni vengono copiate o compilate usiamo strip per ripulire i repository. Le immagini iso vengono create con genisoimage e mkisofd. Infine, puoi testare l'iso prodotta con Qemu o scriverla su un disco riscrivibile.
===== Organizzare una directory di lavoro =====
Per creare SliTaz, abbiamo bisogno di una directory di lavoro e diverse sottodirectory. Che tu abbia un ambiente di sviluppo chrootato o un sistema ospite, ti suggeriamo di usare una directory chiamata //distro/// in cui lavorare. La directory distro/ può essere una semplice cartella o una partizione, ovviamente hai massima libertà nel metterla dove meglio credi.
=== distro/ ===
Contenuti della directory di lavoro:
* rootfs/ --> Il filesystem root - Questo è il system root, progettato per lavorare nella RAM, è usato per generare l'immagine initramfs.
* rootfs.gz --> L'immagine initramfs del nostro sistema - un archivio cpio compresso con gzip.
* rootcd/ --> The rootcd. La root dei file del CD-ROM
* src/ --> I sorgenti, Kernel, Syslinux, Busybox, Dropbear, eccetera... (può anche essere un link simbolico).
Successivamente, l'initramfs e la ISO avviabile (slitaz-cooking.iso) verranno create nella directory radice del nostro lavoro, chiamata SliTaz/.
=== Opzione: rootfs.ext2 - usare un harddisk virtuale ===
Opzione: rootfs.ext2 (root filesystem in ext2) è un hard disk virtuale formattato con ext2 e montato su un (rootfs) loop. Un device loop permette a un file di essere usato come un device standard (hard drive, floppy, etc) per poterci creare un filesystem dentro. Questo file può essere grande a piacere, noi suggeriamo 20,480, che corrisponde a 20MB:
# dd if=/dev/zero of=rootfs.ext2 bs=1k count=20480
Crea un filesystem //ext2// chiamato //rootfs.ext2//, l'opzione //-F// formatta il file. Nota che //-m 0// non alloca alcuno spazio per la root dell'utente - di default questa occuperà approssimativamente il 5% e //-t// definisce il tipo di filesystem da usare, per esempio ext2 o ext3:
# mkfs -t ext2 -F -m 0 rootfs.ext2
Possiamo ora assemblare //rootfs.ext2// con un loop, grazie alla //-o loop option// messa a disposizione dal comando di mount nella directory //rootfs///. Per controllare che l'operazione sia andata a buon fine: //df-h//
# mkdir rootfs
# mount -o loop rootfs.ext2 rootfs
# df -h
Alla fine della sessione il filesystem può essere smontato con umount.
# umount rootfs
Adesso possiamo procedere alla creazione del [[base-system|Sistema base SliTaz]].