Uma boa maneira seria criar um CD ao vivo a partir de uma instalação atual. Isso pode ser feito usando uma máquina virtual (apenas não instale nenhuma ferramenta de VM no sistema operacional convidado)
Portanto, primeiro precisamos de uma nova instalação (se você não conseguir instalá-la de verdade, tente usar uma máquina virtual) com apenas as coisas que você precisa (no seu caso, thunderbird, samba e ssh). Depois ajustamos o sistema e registramos onde estão os ajustes (por exemplo, você altera o plano de fundo da área de trabalho, as configurações estão em ~ / .gconf ou você adiciona atalhos do firefox, eles estão localizados em ~ / Desktop). Isso é necessário para a etapa 4.
Configure algumas variáveis:
export WORK=~/temp
export CD=~/livecd
export FORMAT=squashfs
export FS_DIR=casper
Substitua ~ / temp por um caminho para um diretório temporário no qual trabalharemos. Substitua ~ / livecd por um caminho para a árvore do CD.
Faça a estrutura da pasta. sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
Agora precisaremos instalar alguns pacotes:
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
Se você tiver uma partição de inicialização separada, execute o seguinte: sudo cp -av /boot/* ${WORK}/rootfs/boot
No seu caso, você deseja copiar configurações e alguns arquivos do diretório inicial. Primeiro, defina quais diretórios queremos copiar: CONFIG = '. Config .gconf Desktop someotherfolder andanotherfolder' E agora copiamos isso:
cd ~ && for i in $CONFIG
do
sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
done
Agora, entramos 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 no chroot:
LANG=
apt-get update
apt-get install casper
Casper contém scripts ao vivo. Se você deseja um instalador também, execute o seguinte:
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 no "esqueleto" dos usuários. Isso significa que todos os novos usuários os terão.
for i in `cat /etc/passwd | awk -F":" '{print $1}'`
do
uid=`cat /etc/passwd | grep "^${i}:" | awk -F":" '{print $3}'`
[ "$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
Desmonte 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 em squashfs:
sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
Crie filesystem.size:
echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print $1}') | 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 favorito, não importa) Cole isso 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
}
Se desejar, você pode adicionar uma entrada de menu adicional, que permite acessar diretamente o Ubiquity.
menuentry "Install Ubuntu" {
linux /boot/vmlinuz boot=casper only-ubiquity quiet splash
initrd /boot/initrd.img
}
Faça o CD / DVD!
sudo grub-mkrescue -o ~/live-cd.iso ${CD}
Teste-o usando uma máquina virtual!