Я відповів "Як налаштувати живий компакт-диск Ubuntu?" із способом створення живих компакт-дисків з поточних установок. Це означає, що вам не потрібно буде завантажувати всі пакунки заново. Цей посібник може здатися довгим і важким, але це здебільшого "слідування" та "копіювання та вставка". Ось це, скопійовано та відредаговане трохи:
Хорошим способом було б створення живого компакт-диска з поточної установки. Це можна зробити за допомогою віртуальної машини (просто не встановлюйте жодних інструментів VM всередині гостьової ОС)
Отже, спочатку нам потрібна нова установка (якщо ви не можете встановити її реально, спробуйте скористатися віртуальною машиною) лише з потрібними вам речами (у вашому випадку thunderbird, samba та ssh). Тоді ми налаштовуємо систему та записуємо, де налаштовано (наприклад, ви змінюєте фон робочого столу, налаштування знаходяться в ~ / .gconf або додаєте ярлики firefox, вони розташовані в ~ / Desktop). Це потрібно для кроку 4.
Налаштування деяких змінних:
export WORK=~/temp
export CD=~/livecd
export FORMAT=squashfs
export FS_DIR=casper
Замініть ~ / temp на шлях до тимчасового каталогу, в якому ми будемо працювати. Замініть ~ / livecd на шлях до дерева CD.
Складіть структуру папки. sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
Тепер нам потрібно буде встановити кілька пакунків:
sudo apt-get install grub2 xorriso squashfs-tools
Тепер ми скопіюємо поточну установку, змінимо прапорці виключення відповідно до ваших потреб:
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
Якщо у вас є окремий завантажувальний розділ, виконайте це: sudo cp -av /boot/* ${WORK}/rootfs/boot
Якщо ви хочете скопіювати свої користувальницькі конфігурації та файли, змініть цей список за необхідності: CONFIG = '. Config .gconf Desktop деяка інша папка andanotherfolder' І тепер ми копіюємо ваші конфігурації та файли:
cd ~ && for i in $CONFIG
do
sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
done
Тепер ми переходимо до нової системи та модифікуємо її.
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
Наступні команди виконуються chroot:
LANG=
apt-get update
apt-get install casper
Casper містить живі сценарії. Тепер інсталятор (версія gnome) apt-get install ubiquity ubiquity-frontend-gtk Або якщо ви хочете KDE:
apt-get install ubiquity ubiquity-frontend-kde
Оновіть module.dep та initramfs:
depmod -a $(uname -r)
update-initramfs -u -k $(uname -r)
Видаліть несистемних користувачів - не хвилюйтесь, ми скопіювали налаштування та дані в «скелет» користувачів. Це означає, що всі нові користувачі матимуть їх.
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
Прибирати:
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
Вихід із хроту. exit
Тепер ми копіюємо ядро:
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
Щоб інсталятор не встановлював такі речі, як каспер:
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
Демонтуйте те, що ми встановили:
sudo umount ${WORK}/rootfs/proc
sudo umount ${WORK}/rootfs/sys
sudo umount ${WORK}/rootfs/dev/pts
sudo umount ${WORK}/rootfs/dev
Перетворити на сквош:
sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
Зробити filesystem.size:
echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print $1}') | sudo tee ${CD}/casper/filesystem.size
І md5: find ${CD} -type f -print0 | xargs -0 md5sum | sed "s@${CD}@.@" | grep -v md5sum.txt |sudo tee ${CD}/md5sum.txt
Зараз grub.cfg:
sudo nano ${CD}/boot/grub/grub.cfg
(замініть нано на ваш редактор текстових файлів, не має значення) Вставте це та збережіть:
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
}
Зробіть CD / DVD!
sudo grub-mkrescue -o ~/live-cd.iso ${CD}
Перевірте його за допомогою віртуальної машини!