Un buon modo sarebbe quello di creare un CD live da un'installazione corrente. Questo può essere fatto usando una macchina virtuale (basta non installare alcun tool VM nel SO guest)
Quindi, per prima cosa abbiamo bisogno di una nuova installazione (se non puoi installarla per davvero, prova a usare una macchina virtuale) con solo le cose di cui hai bisogno (nel tuo caso thunderbird, samba e ssh). Quindi modifichiamo il sistema e registriamo dove sono le modifiche (ad es. Cambiate lo sfondo del desktop, le impostazioni sono in ~ / .gconf o aggiungete i collegamenti di Firefox, si trovano in ~ / Desktop). Questo è necessario per il passaggio 4.
Imposta alcune variabili:
export WORK=~/temp
export CD=~/livecd
export FORMAT=squashfs
export FS_DIR=casper
Sostituisci ~ / temp con un percorso a una directory temporanea in cui lavoreremo. Sostituisci ~ / livecd con un percorso all'albero del CD.
Crea la struttura delle cartelle. sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
Ora dovremo installare alcuni pacchetti:
sudo apt-get install grub2 xorriso squashfs-tools
Ora copieremo l'installazione corrente, modificheremo i flag di esclusione per adattarli alle tue esigenze:
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 hai una partizione di avvio separata, esegui questa operazione: sudo cp -av /boot/* ${WORK}/rootfs/boot
nel tuo caso, vuoi copiare le impostazioni e alcuni file dalla home directory. Per prima cosa, definisci quali directory vogliamo copiare: CONFIG = '. Config .gconf Desktop someotherfolder andanotherfolder' E ora copiamo che:
cd ~ && for i in $CONFIG
do
sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
done
Ora entriamo nel nuovo sistema e lo modifichiamo.
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
I seguenti comandi vengono eseguiti in chroot:
LANG=
apt-get update
apt-get install casper
Casper contiene script dal vivo. Se vuoi anche un programma di installazione, esegui questo:
apt-get install ubiquity ubiquity-frontend-gtk
O se vuoi KDE:
apt-get install ubiquity ubiquity-frontend-kde
Aggiorna moduli.dep e initramfs:
depmod -a $(uname -r)
update-initramfs -u -k $(uname -r)
Rimuovi utenti non di sistema - non preoccuparti, abbiamo copiato le impostazioni e i dati nello "scheletro" degli utenti. Ciò significa che tutti i nuovi utenti li avranno.
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
Pulire:
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
Esci da chroot. exit
Ora copiamo il 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 hai installato il programma di installazione, dovrai farlo, in modo che il programma di installazione non installi cose come 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
Smonta ciò che abbiamo montato:
sudo umount ${WORK}/rootfs/proc
sudo umount ${WORK}/rootfs/sys
sudo umount ${WORK}/rootfs/dev/pts
sudo umount ${WORK}/rootfs/dev
Converti in squashfs:
sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
Crea 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
Ora grub.cfg:
sudo nano ${CD}/boot/grub/grub.cfg
(sostituisci nano con il tuo editor di testo preferito, non importa) Incolla questo e salva:
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 lo desideri, puoi aggiungere un'ulteriore voce di menu, che ti consente di saltare direttamente a Ubiquity.
menuentry "Install Ubuntu" {
linux /boot/vmlinuz boot=casper only-ubiquity quiet splash
initrd /boot/initrd.img
}
Crea il CD / DVD!
sudo grub-mkrescue -o ~/live-cd.iso ${CD}
Provalo usando una macchina virtuale!