Kisah ini dimulai ketika canonical mengeluarkan versi pengembangan Ubuntu 12.04 - Precise Pangolin, selanjutnya akan disebut precise saja, dimana pada saat itu setelah berjuang cukup keras menghabiskan bandwidth, saya berhasil mengunduh dan memasangnya pada sistem. Hari demi hari berlalu telah banyak hal yang saya lakukan bersama dengan precise mulai dari mencoba Unity 5.0, Head-Up Display (HUD), dan mencoba beberapa perangkat lunak lainnya, namun kesenangan itu sirna setelah saya dihadapkan dengan sebuah kenyataan yang mengharuskan saya menghapus precise dari sistem, padahal precise yang terpasang pada sistem telah mengalami perubahan yang cukup pesat dibandingkan dengan saat dia masih fresh install dari image(.ISO), karena merasa sayang dengan precise yang telah menemani keseharian dan untuk berjaga jika sewaktu-waktu kembali membutuhkannya, saya memutuskan untuk menyegelnya kembali menjadi image(.ISO),
ok dehh langsung aja, sebelumnya pastikan sistem dapat terhubung keinternet untuk mengunduh paket perangkat lunak yang dibutuhkan, melalui terminal jalankan perintah berikut,
sudo apt-get install syslinux squashfs-tools genisoimage
Setelah selesai memasang perangkat lunak persiapkan direktori yang akan menampung jiwa dari precise, bebas mau dibuat dimana saja, yang penting terdapat ruang kosong yang cukup,
sudo mkdir -p /home/backup/{precise,cdfs}; sudo mkdir -p /home/backup/cdfs/{casper,isolinux,preseed}
Buat sebuah berkas dengan nama exclude.lst isikan dengan perintah berikut,
/boot/grub/* /dev/* /etc/fstab /etc/mtab /etc/hosts /etc/X11/xorg.conf* /etc/gdm/custom.conf /home/* /host /media/* /mnt/* /lost+found /proc/* /root/* /sys/* /tmp/* /var/lib/dbus/* /var/tmp/* /var/mail/* /var/spool/* *.deb *.bak *.log
Salin sistem menggunakan rsync kedalam direktori yang telah disiapkan, berikan opsi exclude-from dan lokasi berkas exclude.lst yang telah dibuat sebelumnya,
sudo rsync -av --exclude-from=exclude.lst / /home/backup/precise/
Proses rsync selesai |
Proses rsync akan memakan waktu yang cukup lama, *tergantung dari banyaknya data dan perangkat lunak yang terpasang pada sistem,
Pemasangan perangkat lunak pada lingkungan chroot |
Setelah proses rsync selesai, proses selanjutnya akan dilakukan pada lingkungan chroot /home/backup/precise/ , mount filesystem yang dibutuhkan dan lakukan chroot pada direktori yang berisi salinan sistem,
sudo mount --bind /dev /home/backup/precise/dev; sudo chroot /home/backup/precise/
mount -t proc none /proc; mount -t sysfs none /sys; mount -t devpts none /dev/pts
Didalam lingkungan chroot jalankan perintah berikut dan update repository
export HOME=/root; export LC_ALL=C; apt-get update
Pasang paket perangkat lunak casper dan kawan-kawan yang dibutuhkan untuk membuat live filesystem,
apt-get install casper lupin-casper gparted xfsprogs reiser4progs jfsutils gpart ubiquity ubiquity-frontend-gtk ubiquity-slideshow-ubuntu
Jika dibutuhkan lakukan perubahan pada username dan hostname yang akan digunakan pada live filesystem, untuk melakukan hal tersebut modifikasi berkas /etc/casper.conf menggunakan editor text,
nano /etc/casper.conf
# This file should go in /etc/casper.conf # Supported variables are: # USERNAME, USERFULLNAME, HOST, BUILD_SYSTEM export USERNAME="ubuntu" export USERFULLNAME="Live session user" export HOST="ubuntu" export BUILD_SYSTEM="Ubuntu"
Agar live filesystem dapat berjalan dengan baik, hapus non system user, (tersimpan di /etc/passwd ) , user yang dihapus biasanya memiliki (user id) uid > 998 , untuk melakukan hal tersebut jalankan perintah berikut pada terminal,
for i in `cat /etc/passwd | awk -F":" '{print $1}'` do uid=`cat /etc/passwd | grep "^${i}:" | awk -F":" '{print $3}'` [ "$uid" -gt "998" -a "$uid" -ne "65534" ] && userdel --force ${i} 2>/dev/null done
Setelah selesai melakukan konfigurasi casper.conf update initramfs, *proses update initramfs bertujuan menambahkan live-script dan konfigurasi live-session pada initrd.img, yang dibutuhkan dalam proses boot live filesystem,
export kversion=`cd /boot; ls vmlinuz-* | sed 's@vmlinuz-@@'`; depmod -a ${kversion}; update-initramfs -u -k ${kversion}
Bersihkan sistem dari berkas-berkas yang tidak diperlukan,
apt-get clean; rm /etc/resolv.conf /etc/hostname; rm -rf /tmp/*
Setelah selesai umount dan keluar dari lingkungan chroot,
umount -lf /proc; umount -lf /sys; umount -lf /dev/pts; exit
sudo umount -lf /home/backup/precise/dev
Selesai dengan live filesystem, lanjutkan dengan mempersiapkan dan menyalin berkas-berkas yang dibutuhkan kedalam direktori cdfs, direktori cdfs nantinya akan dikemas menjadi image (.ISO), hal yang pertama dilakukan adalah menyalin kernel dan initrd image dari direktori /boot lingkungan chroot kedalam direktori cdfs,
export kversion=`cd /home/backup/precise/boot; ls -1 vmlinuz-* | tail -1 | sed 's@vmlinuz-@@'`
sudo cp -vp /home/backup/precise/boot/vmlinuz-${kversion} /home/backup/cdfs/casper/vmlinuz; sudo cp -vp /home/backup/precise/boot/initrd.img-${kversion} /home/backup/cdfs/casper/initrd.lz
Tambahkan memtest pada LiveCD sebagai alat tambahan, *opsional
sudo cp -vp /boot/memtest86+.bin /home/backup/cdfs/casper/memtest
Buat berkas filesystem.manifest yang berisi daftar nama seluruh paket perangkat lunak yang terdapat pada live filesystem dan filesystem.manifest-desktop yang berisi daftar nama paket perangkat lunak yang akan dipasang pada saat proses pemasangan LiveCD,
sudo chroot /home/backup/precise/ dpkg-query -W --showformat='${Package} ${Version}\n' | sudo tee /home/backup/cdfs/casper/filesystem.manifest; sudo cp -v /home/backup/cdfs/casper/filesystem.manifest{,-desktop}
REMOVE='ubiquity casper user-setup os-prober ubiquity-slideshow-ubuntu libdebian-installer4' for i in $REMOVE do sudo sed -i "/${i}/d" /home/backup/cdfs/casper/filesystem.manifest-desktop done
Kompres live filesystem (lingkungan chroot) menggunakan squashfs-tools,
sudo mksquashfs /home/backup/precise /home/backup/cdfs/casper/filesystem.squashfs
Buat berkas dengan nama filesystem.size untuk menyimpan ukuran dari live filesystem (lingkungan chroot),
printf $(sudo du -sx --block-size=1 /home/backup/precise | cut -f1) >> /home/backup/cdfs/casper/filesystem.size
Selanjutnya pada direktori preseed buat sebuah berkas dengan nama ubuntu.seed isikan dengan perintah berikut, * saya salin dari ubuntu.seed milik ubuntu 12.04 LiveCD
Salin syslinux yang akan digunakan sebagai bootloader pada LiveCD kedirektori cdfs/isolinux
Buat berkas yang berisi konfigurasi bootloader simpan dengan nama isolinux.cfg pada direktori cdfs/isolinux/isolinux.cfg, isikan dengan perintah dibawah ini,
# Enable extras.ubuntu.com. d-i apt-setup/extras boolean true # Install the Ubuntu desktop. tasksel tasksel/first multiselect ubuntu-desktop # On live DVDs, don't spend huge amounts of time removing substantial # application packages pulled in by language packs. Given that we clearly # have the space to include them on the DVD, they're useful and we might as # well keep them installed. ubiquity ubiquity/keep-installed string icedtea6-plugin openoffice.org
Awalnya mencoba tidak menggunakan preseed dan dapat berjalan normal, namun setelah mengetahui kegunaan preseed dari https://help.ubuntu.com/community/Installation/FromLinux
The preseed tells the installer what kind of system you are trying to install and it automatically selects some options for you during installation. For instance, using the ubuntu.seed file tells the installer that you want to install a full "desktop" system, with Gnome and everything. If you do not select a preseed file, it is unclear what the installer thinks, ....Saya putuskan untuk menggunakan pressed, :D
Salin syslinux yang akan digunakan sebagai bootloader pada LiveCD kedirektori cdfs/isolinux
sudo cp -v /usr/lib/syslinux/{vesamenu.c32,isolinux.bin} /home/backup/cdfs/isolinux/
default vesamenu.c32 timeout 100 menu background splash.jpg menu title Welcome to Ubuntu 12.04 Backup (05022012) menu color border 0 #00eeeeee #00000000 menu color sel 7 #ffffffff #33eeeeee menu color title 0 #ffeeeeee #00000000 menu color tabmsg 0 #ffeeeeee #00000000 menu color unsel 0 #ffeeeeee #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color timeout_msg 0 #ffffffff #00000000 menu color timeout 0 #ffffffff #00000000 menu color cmdline 0 #ffffffff #00000000 menu hidden menu hiddenrow 6 label live menu label ^Try Ubuntu without installing kernel /casper/vmlinuz append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash -- label live-install menu label ^Install Ubuntu kernel /casper/vmlinuz append file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity initrd=/casper/initrd.lz quiet splash -- label check menu label ^Check disc for defects kernel /casper/vmlinuz append boot=casper integrity-check initrd=/casper/initrd.lz quiet splash -- label memtest menu label Test ^memory kernel /install/mt86plus label hd menu label ^Boot from first hard disk localboot 0x80
Saya menggunakan gambar dibawah ini sebagai boot menu background ,
find /home/backup/cdfs/ -type f -print0 | sudo xargs -0 md5sum | sudo tee /home/backup/cdfs/md5sum.txt
Setelah selesai, bungkus direktori cdfs yang telah siap menjadi binary image(ISO) menggunakan mkisofs,
sudo mkisofs -D -r -V "Ubuntu_Precise" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o precise-backup-20120202.iso cdfs
Setelah selesai image(.ISO) yang telah jadi dapat langsung diuji menggunakan virtual mesin,
Bootmenu Ubuntu 12.04 hasil backup |
Proses installasi Ubuntu 12.04 hasil backup berjalan di virtual mesin |
Installasi Ubuntu 12.04 hasil backup - Selesai berjalan di virtual mesin |
Semoga bermanfaat dan selamat berkreasi, :D
Brotip:
Jika mengalami galat dan merasa agak ribet dengan cara diatas, dapat menggunakan perangkat bantu seperti remastersys dan menunggu hingga Ubuntu 12.04 stable release ;)
Rujukan :
https://help.ubuntu.com/community/LiveCDCustomizationFromScratch , 02/2012
https://help.ubuntu.com/community/LiveCDCustomization ,02/2012
http://ubuntuforums.org/showthread.php?t=688872 ,02/2012
https://help.ubuntu.com/community/Installation/FromLinux ,02/2012
7 komentar:
waaahhhh....panjang kali lebar caranya :(
wew,, nice post bang..
bisa dipraktek`in buat oneiric g ya...
Bisa untuk oneiric ubuntu 11.10, :)
hehe,, singkat aja ko bro,, :D
folder exclude.lst taruh dmn gan.....kok ak coba eror permission denied
ditaruh dimana saja boleh, ntar tinggal menyesuaikan aja path/lokasi tempat exclude.lst disimpan, misalnya exclude.lst saya simpan didirektori home saya (/home/wagung),
rsync -av --exclude-from=/home/wagung/exclude.lst / /home/backup/precise/
klo muncul pesan permission denied, kemungkinan ada masalah dengan hak akses, coba gunakan jalankan dengan hak akses root (sudo), menjadi
sudo rsync -av --exclude-from=exclude.lst / /home/backup/precise/
,,
genisoimage :no such file or directory
padahal udh ngikutin cara yg sama kyk d atas + udh d instal semua
kok masih gk bisa boss??
Post a Comment
Note: Only a member of this blog may post a comment.