Una buena manera sería hacer un CD en vivo desde una instalación actual. Esto se puede hacer usando una máquina virtual (simplemente no instale ninguna herramienta VM dentro del SO huésped)
Entonces, primero necesitamos una instalación nueva (si no puede instalarla de verdad, intente usar una máquina virtual) con solo lo que necesita (en su caso, Thunderbird, Samba y SSH). Luego ajustamos el sistema y registramos dónde están los ajustes (por ejemplo, si cambia el fondo de su escritorio, la configuración está en ~ / .gconf o agrega accesos directos de Firefox, están ubicados en ~ / Escritorio). Esto es necesario para el paso 4.
Configure algunas variables:
export WORK=~/temp
export CD=~/livecd
export FORMAT=squashfs
export FS_DIR=casper
Reemplace ~ / temp con una ruta a un directorio temporal en el que trabajaremos. Reemplace ~ / livecd con una ruta al árbol de CD.
Haz la estructura de la carpeta. sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
Ahora necesitaremos instalar algunos paquetes:
sudo apt-get install grub2 xorriso squashfs-tools
Ahora copiaremos la instalación actual, modificaremos los indicadores de exclusión para que se ajusten a sus necesidades:
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
Si tiene una partición de arranque separada, ejecute esto: sudo cp -av /boot/* ${WORK}/rootfs/boot
en su caso, desea copiar la configuración y algunos archivos del directorio de inicio. Primero, defina qué directorios queremos copiar: CONFIG = '. Config .gconf Desktop someotherfolder andanotherfolder' Y ahora copiamos eso:
cd ~ && for i in $CONFIG
do
sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
done
Ahora ingresamos al nuevo sistema y lo 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
Los siguientes comandos se realizan en chroot:
LANG=
apt-get update
apt-get install casper
Casper contiene scripts en vivo. Si también quieres un instalador, ejecuta esto:
apt-get install ubiquity ubiquity-frontend-gtk
O si quieres KDE:
apt-get install ubiquity ubiquity-frontend-kde
Actualizar modules.dep e initramfs:
depmod -a $(uname -r)
update-initramfs -u -k $(uname -r)
Elimine usuarios que no son del sistema: no se preocupe, hemos copiado la configuración y los datos en el "esqueleto" de los usuarios. Eso significa que todos los nuevos usuarios los tendrán.
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
Limpiar:
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
Salir de chroot. exit
Ahora copiamos el núcleo:
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
Si ha instalado el instalador, deberá hacerlo para que el instalador no instale elementos 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
Desmonta lo que hemos montado:
sudo umount ${WORK}/rootfs/proc
sudo umount ${WORK}/rootfs/sys
sudo umount ${WORK}/rootfs/dev/pts
sudo umount ${WORK}/rootfs/dev
Convierte a squashfs:
sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
Hacer filesystem.size:
echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print $1}') | sudo tee ${CD}/casper/filesystem.size
Y md5: find ${CD} -type f -print0 | xargs -0 md5sum | sed "s@${CD}@.@" | grep -v md5sum.txt |sudo tee ${CD}/md5sum.txt
Ahora grub.cfg:
sudo nano ${CD}/boot/grub/grub.cfg
(reemplace nano con su editor de texto favorito, no importa) Pegue esto y guarde:
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
}
Si lo desea, puede agregar una entrada de menú adicional, que le permite saltar directamente a Ubiquity.
menuentry "Install Ubuntu" {
linux /boot/vmlinuz boot=casper only-ubiquity quiet splash
initrd /boot/initrd.img
}
¡Haz el CD / DVD!
sudo grub-mkrescue -o ~/live-cd.iso ${CD}
¡Pruébalo con una máquina virtual!