Saya menjawab "Bagaimana cara menyesuaikan CD Ubuntu langsung?" dengan cara membuat CD langsung dari instalasi saat ini. Ini artinya Anda tidak perlu mengunduh semua paket lagi. Panduan ini mungkin tampak panjang dan sulit, tetapi sebagian besar "ikuti" dan "salin dan tempel". Ini dia, disalin dan diedit sedikit:
Cara yang baik adalah membuat CD langsung dari instalasi saat ini. Ini dapat dilakukan dengan menggunakan mesin virtual (hanya saja jangan menginstal alat VM di dalam OS tamu)
Jadi, pertama-tama kita perlu instalasi baru (jika Anda tidak dapat menginstalnya secara nyata, coba gunakan mesin virtual) dengan hanya hal-hal yang Anda butuhkan (dalam kasus Anda thunderbird, samba, dan ssh). Kemudian kita men-tweak sistem dan merekam di mana tweak berada (misalnya Anda mengubah latar belakang desktop Anda, pengaturannya ada di ~ / .gconf atau Anda menambahkan pintasan firefox, mereka berada di ~ / Desktop). Ini diperlukan untuk langkah 4.
Siapkan beberapa variabel:
export WORK=~/temp
export CD=~/livecd
export FORMAT=squashfs
export FS_DIR=casper
Ganti ~ / temp dengan path ke direktori sementara di mana kita akan bekerja. Ganti ~ / livecd dengan path ke pohon CD.
Buat struktur folder. sudo mkdir -p ${CD}/{${FS_DIR},boot/grub} ${WORK}/rootfs
Sekarang kita perlu menginstal beberapa paket:
sudo apt-get install grub2 xorriso squashfs-tools
Sekarang kami akan menyalin instalasi saat ini, memodifikasi tanda pengecualian agar sesuai dengan kebutuhan Anda:
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
Jika Anda memiliki partisi boot terpisah, jalankan ini: sudo cp -av /boot/* ${WORK}/rootfs/boot
Jika Anda ingin menyalin konfigurasi dan file pengguna Anda, modifikasi daftar ini sesuai kebutuhan: CONFIG = '. Config .gconf Desktop someotherfolder andanotherfolder' Dan sekarang kami salin konfigurasi dan file Anda:
cd ~ && for i in $CONFIG
do
sudo cp -rpv --parents $i ${WORK}/rootfs/etc/skel
done
Sekarang kita chroot ke sistem baru dan memodifikasinya.
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
Perintah selanjutnya dilakukan di chroot:
LANG=
apt-get update
apt-get install casper
Casper berisi skrip langsung. Sekarang installer (versi gnome) apt-get install ubiquity ubiquity-frontend-gtk Atau jika Anda menginginkan KDE:
apt-get install ubiquity ubiquity-frontend-kde
Perbarui modules.dep dan initramfs:
depmod -a $(uname -r)
update-initramfs -u -k $(uname -r)
Hapus pengguna non-sistem - jangan khawatir, kami telah menyalin pengaturan dan data ke "kerangka" pengguna. Itu berarti semua pengguna baru akan memilikinya.
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
Membersihkan:
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
Keluar dari chroot. exit
Sekarang, kami menyalin 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
Agar penginstal tidak menginstal hal-hal seperti 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
Lepas dari apa yang telah kami pasang:
sudo umount ${WORK}/rootfs/proc
sudo umount ${WORK}/rootfs/sys
sudo umount ${WORK}/rootfs/dev/pts
sudo umount ${WORK}/rootfs/dev
Konversikan ke squashfs:
sudo mksquashfs ${WORK}/rootfs ${CD}/${FS_DIR}/filesystem.${FORMAT}
Buat filesystem.size:
echo -n $(sudo du -s --block-size=1 ${WORK}/rootfs | tail -1 | awk '{print $1}') | sudo tee ${CD}/casper/filesystem.size
Dan md5: find ${CD} -type f -print0 | xargs -0 md5sum | sed "s@${CD}@.@" | grep -v md5sum.txt |sudo tee ${CD}/md5sum.txt
Sekarang grub.cfg:
sudo nano ${CD}/boot/grub/grub.cfg
(ganti nano dengan editor teks favorit Anda, tidak masalah) Tempel ini dan simpan:
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
}
Buat CD / DVD!
sudo grub-mkrescue -o ~/live-cd.iso ${CD}
Uji menggunakan mesin virtual!