====== Remastering TC ====== This guide assumes you are comfortable with the command line. In the core there is a gzipped cpio archive. This can then be bundled along with the kernel for the boot method you like, for example an ISO image. The remaster process can be done from inside TC (with advcomp.tcz loaded, and mkisofs-tools.tcz if you want to create an ISO image), or from any other Linux distribution that has the required tools (cpio, tar, gzip, advdef, mkisofs if making an ISO) Note: advcomp is optional. If not installed, skip all the advdef commands. ===== Unpacking ===== First, get the kernel and ''core.gz'' from the iso: sudo mkdir /mnt/tmp sudo mount tinycore.iso /mnt/tmp -o loop,ro cp /mnt/tmp/boot/vmlinuz /mnt/tmp/boot/core.gz /tmp sudo umount /mnt/tmp If you are going to create an ISO image, instead of copying only two files, copy everything: sudo mkdir /mnt/tmp sudo mount tinycore.iso /mnt/tmp -o loop,ro cp -a /mnt/tmp/boot /tmp mv /tmp/boot/tinycore.gz /tmp sudo umount /mnt/tmp Then, extract ''core.gz'' for adding/removing something: mkdir /tmp/extract cd /tmp/extract zcat /tmp/core.gz | sudo cpio -i -H newc -d Now, the full filesystem is in ''/tmp/extract''. Feel free to add, remove, or edit anything you like. ==== Alternative approach to adding extensions. (Overlay using cat) ==== As per [[http://forum.tinycorelinux.net/index.php?topic=8437.0 | Forum topic - Overlay using cat ]] an interesting alternative to unpacking, editing and repacking files is simply to, using the cat command, concatenate multiple gzipped cpio archives together. You should be aware that this way results in a slightly slower boot, and likely bigger initramfs size. For example: cat microcore.gz Xlibs.gz Xprogs.gz Xvesa.gz > my_xcore.gz would add a graphical desktop to microcore less a windows manager and menu bar which are currently extensions: flwm_topside.tcz and wbar.tcz but if converted these extensions could be added as well. Extension .tcz files can be unpacked using the unsquashfs tool and repacked using the gzip tool in order to make the process of adding ready-built extensions to your custom initramfs file system. ===== Packing ===== If you are remastering 2.x where x <= 1 and you added any kernel modules then execute sudo chroot /tmp/extract depmod -a 2.6.29.1-tinycore You must use chroot because "depmod -b /tmp/extract" will not follow the kernel.tclocal symbolic link to find modules under /usr/local. For versions 2.x where x >= 2 and later (replace the kernel uname with the right one): sudo depmod -a -b /tmp/extract 2.6.29.1-tinycore If you added shared libraries then execute sudo ldconfig -r /tmp/extract Afterwards, pack it up: cd /tmp/extract sudo find | sudo cpio -o -H newc | gzip -2 > ../tinycore.gz cd /tmp advdef -z4 tinycore.gz It is packed at level 2 to save time. advdef -z4 is equivalent to about -11 on gzip. You now have a modified ''tinycore.gz''. If booting from other than a CD, copy tinycore.gz and the kernel to your boot device. ==== Creating an iso ==== If you would like to create an ISO image: cd /tmp mv tinycore.gz boot mkdir newiso mv boot newiso mkisofs -l -J -R -V TC-custom -no-emul-boot -boot-load-size 4 \ -boot-info-table -b boot/isolinux/isolinux.bin \ -c boot/isolinux/boot.cat -o TC-remastered.iso newiso rm -rf newiso ''Note 1:'' the mkisofs command line example above spans three lines, but is actually entered as ONE line ''Note 2:'' the -r option should be added to avoid permissions errors if the new iso is being built outside a TinyCore environment ''TC-remastered.iso'' can now be burned or started in a virtual machine. ==== GUI Tools ==== You may find [[http://www.littlesvr.ca/isomaster/|ISO Master]] useful. Its a GUI disk image editing tool, available in the repository as a .tcz extension. ===== Possible Errors When Booting ===== * //Loading /boot/vmlinuz.... Could not find ramdisk image: /boot/.gz// - There seems to be a limit on the number of characters in the name of the ramdisk image file (if it's >= 10 chars it failed for all my tries, but 7 chars worked). [[wiki:dynamic_root_filesystem_remastering|Follow dynamic root fs remastering here]]