O live CD é geralmente criado com um sistema de arquivos chamado squashfs. O Squashfs é um sistema de arquivos comprimido somente para leitura que nos permite espremer nosso sistema em um único CD. Observe que seu sistema precisa ter cerca de 2 GB (isso pode exigir algum erro e tentativa) para produzir uma imagem compactada que caiba no CD. Caso contrário, você terá que usar um DVD
Criando um CD ao vivo a partir de uma instalação existente / nova
Siga o procedimento para criar um CD ao vivo a partir da sua instalação atual.
-
Configure algumas variáveis:
export WORK=~/temp export CD=~/livecd export FORMAT=squashfs export FS_DIR=casper
Substitua ~ / temp por um caminho para um temporário diretório em que trabalharemos. Substitua ~ / livecd por um caminho para o Árvore de CD.
-
Crie a estrutura de pastas.
sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
-
Agora precisaremos instalar alguns pacotes:
sudo apt-get update && sudo apt-get install grub2 xorriso squashfs-tools
-
Agora vamos copiar a instalação atual, modificar os sinalizadores de exclusão para atender às suas necessidades:
sudo rsync -av --one-file-system --exclude=/proc/* --exclude=/dev/* \ --exclude=/sys/* --exclude=/tmp/* --exclude=/home/* --exclude=/lost+found \ --exclude=/var/tmp/* --exclude=/boot/grub/* --exclude=/root/* \ --exclude=/var/mail/* --exclude=/var/spool/* --exclude=${WORK}/rootfs \ --exclude=/etc/fstab --exclude=/etc/mtab --exclude=/etc/hosts \ --exclude=/etc/timezone --exclude=/etc/shadow* --exclude=/etc/gshadow* \ --exclude=/etc/X11/xorg.conf* --exclude=/etc/gdm/custom.conf \ / ${WORK}/rootfs
Nota -Se você tiver uma partição de inicialização separada, execute isto: sudo cp -av /boot/* ${WORK}/rootfs/boot
Nota -Se você deseja copiar configurações e alguns arquivos do diretório pessoal, em primeiro lugar, defina quais diretórios queremos copiar:
CONFIG='.config .gconf Desktop "some-other-folder" "and-another-folder"'
E agora copiamos isso:
cd ~ && for i in $CONFIG
do
sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
done
O Nautilus armazena suas configurações em um diretório chamado .config
no diretório inicial, então eu adicionei .config
à variável $ CONFIG:
-
Agora fazemos o chroot no novo sistema e o modificamos.
sudo mount --bind /dev/ ${WORK}/rootfs/dev sudo mount -t proc proc ${WORK}/rootfs/proc sudo mount -t sysfs sysfs ${WORK}/rootfs/sys sudo mount -t devpts devpts ${WORK}/rootfs/dev/pts sudo chroot ${WORK}/rootfs /bin/bash
Os próximos comandos são feitos em chroot:
LANG= apt-get update apt-get install casper
Casper contém scripts ativos. Se você quiser um instalador também, execute isto:
apt-get install ubiquity ubiquity-frontend-gtk
Ou se você quiser o KDE:
apt-get install ubiquity ubiquity-frontend-kde
-
Atualize modules.dep e initramfs:
depmod -a $(uname -r) update-initramfs -u -k $(uname -r)
-
Remova usuários que não são do sistema - não se preocupe, copiamos as configurações e os dados para o "esqueleto" dos usuários. Isso significa que todos os novos usuários os terão.
for i in 'cat /etc/passwd | awk -F":" '{print }'' do uid='cat /etc/passwd | grep "^${i}:" | awk -F":" '{print }'' [ "$uid" -gt "999" -a "$uid" -ne "65534" ] && userdel --force ${i} 2>/dev/null done
-
Limpar:
apt-get clean find /var/log -regex '.*?[0-9].*?' -exec rm -v {} \; find /var/log -type f | while read file do cat /dev/null | tee $file done rm /etc/resolv.conf /etc/hostname
-
Saia do chroot.
exit
-
Agora, copiamos o kernel:
export kversion='cd ${WORK}/rootfs/boot && ls -1 vmlinuz-* | tail -1 | sed 's@vmlinuz-@@'' sudo cp -vp ${WORK}/rootfs/boot/vmlinuz-${kversion} ${CD}/boot/vmlinuz sudo cp -vp ${WORK}/rootfs/boot/initrd.img-${kversion} ${CD}/boot/initrd.img sudo cp -vp ${WORK}/rootfs/boot/memtest86+.bin ${CD}/boot
-
Se você instalou o instalador, precisará fazer isso, para que o instalador não instale coisas como casper:
sudo chroot ${WORK}/rootfs dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee ${CD}/${FS_DIR}/filesystem.manifest sudo cp -v ${CD}/${FS_DIR}/filesystem.manifest{,-desktop} REMOVE='ubiquity casper user-setup os-prober libdebian-installer4' for i in $REMOVE do sudo sed -i "/${i}/d" ${CD}/${FS_DIR}/filesystem.manifest-desktop done
-
Desmontar o que montamos:
sudo umount ${WORK}/rootfs/proc sudo umount ${WORK}/rootfs/sys sudo umount ${WORK}/rootfs/dev/pts sudo umount ${WORK}/rootfs/dev
-
Converta para o squashfs:
sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
-
Crie o filesystem.size:
echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print }') | sudo tee ${CD}/casper/filesystem.size
-
e md5:
find ${CD} -type f -print0 | xargs -0 md5sum | sed "s@${CD}@.@" | grep -v md5sum.txt |sudo tee ${CD}/md5sum.txt
-
Agora grub.cfg:
sudo nano ${CD}/boot/grub/grub.cfg
(substitua o nano pelo seu editor de texto fav, não importa) Cole e salve:
set default="0" set timeout=10 menuentry "Ubuntu GUI" { linux /boot/vmlinuz boot=casper quiet splash initrd /boot/initrd.img } menuentry "Ubuntu in safe mode" { linux /boot/vmlinuz boot=casper xforcevesa quiet splash initrd /boot/initrd.img } menuentry "Ubuntu CLI" { linux /boot/vmlinuz boot=casper textonly quiet splash initrd /boot/initrd.img } menuentry "Ubuntu GUI persistent mode" { linux /boot/vmlinuz boot=casper boot=casper persistent quiet splash initrd /boot/initrd.img } menuentry "Ubuntu GUI from RAM" { linux /boot/vmlinuz boot=casper nopersistent toram quiet splash initrd /boot/initrd.img } menuentry "Check Disk for Defects" { linux /boot/vmlinuz boot=casper integrity-check quiet splash initrd /boot/initrd.img } menuentry "Memory Test" { linux16 /boot/memtest86+.bin } menuentry "Boot from the first hard disk" { set root=(hd0) chainloader +1 }
-
Faça o CD / DVD!
sudo grub-mkrescue -o ~/live-cd.iso ${CD}
-
Teste-o usando uma máquina virtual!
Todo o crédito vai para o capink, porque o guia é de aqui .
Eu copiei de aqui e fiz algumas edições