Bisakah saya membuat ISO Ubuntu dari manifes?

Jawaban:

21

Filesystem.manifest dihasilkan dengan perintah:

dpkg-query -W --showformat='${Package} ${Version}\n' > casper/filesystem.manifest

Sintaksnya demikian package_name version, Contoh:

 xserver-xorg-video-nouveau  1:0.0.16+git20110411+8378443-1

Formatnya dpkg --get-selectionssedikit berbeda,package_name install

Contoh

xserver-xorg-video-nouveau  install 

Jadi Anda dapat menggunakan file, mungkin lebih dari satu cara,

apt-get install -y $(awk '{print $1}' filesystem.manifest)

Sejujurnya, setelah membuat beberapa iso kustom selama bertahun-tahun, ada kurva belajar tentang cara kerjanya. Setelah Anda memahami beberapa hal, itu tidak terlalu sulit, itu hanya pengetahuan yang cukup besar dan tidak ada sumber informasi yang mutakhir.

Anda menggunakan 2 direktori build

~/custom - build directory for the iso
~/rootfs - build directory for the root file system.

custom - direktori ini berisi semua file yang akan masuk ke iso final. Ini berisi sistem file root, kernel, initramfs, dan isolinux.

rootfs - direktori ini berisi sistem file CD langsung dan Anda kompres direktori ini (menggunakan mksquashfs) dan memasukkannya ke dalam CD. Anda bisa membuatnya dengan debootstrap (live D dari awal) atau mengekstrak sistem file dari ubuntu-desktop.iso (menyesuaikan CD langsung). Lihat tautan wiki ubuntu di bawah untuk detailnya.

poin kunci

1) Memahami mksquashfs - Anda menggunakan mksquashfs untuk mengompresi sistem file rootcasper/filesystem.squashfs

sudo mksquashfs /home/bodhi/rootfs custom/casper/filesystem.squashfs

2) Memahami isolinux - ini membuat iso bootable, serta menu CD (boot) Anda. Lihat Arch Linux Wiki syslinux .

Anda dapat menggunakan grub2 sebagai pengganti isolinux, tetapi Anda harus memahami cara kerja grub2;). Kebanyakan live CD masih menggunakan isolinux.

3) Cara membuat initramfs. Initramfs adalah sistem file kedua, yang digunakan untuk boot. Seringkali ketika Anda mengalami masalah (custom boot image tidak berfungsi, modul kernel tidak memuat), dan Anda tidak bisa mengerti mengapa melihat sistem file root Anda, jawabannya sangat mungkin di initramfs.

#extract to a working_directory , I use ~/initrd
cd ~/initrd
lzma -dc -S .lz ../initrd.lz | cpio -imvd --no-absolute-filenames

# Make your edits / adjustments
# Package
cd ~/initrd
find . | cpio --quiet --dereference -o -H newc | lzma -7 > ../custom.initrd.lz

Anda kemudian memindahkan initrd.lz baru Anda ke direktori build khusus Anda, custom/casper/initrd.lz

4) casper. Casper, dan skrip casper terletak di 3 lokasi, dan ketiganya dapat memainkan peran. Itu semua adalah skrip bash, dan pada titik tertentu Anda hampir pasti ingin melihatnya.

A. tuan rumah - /usr/share/initramfs-tools/scripts/casper

B. sistem file root - custom / usr / share / initramfs-tools / scripts / casper

C. di initramfs - Lihat direktori / skrip.

Lihat Ubuntu man casper

5) Anda membuat penyesuaian pada antarmuka pengguna / aplikasi di /usr/share, /usr/share/gnome*misalnya, lokasi yang tepat berbeda dengan rilis, /usr/share/gnome-background-properties/ubuntu-wallpapers.xmladalah klasik dan cukup standar di berbagai versi.

6) Jika Anda tidak dapat membuat penyesuaian /usr/share/, gunakan /etc/skel, di sini /etc/skel/.bashrcadalah klasik, file itu akan disalin ke ~ / .bashrc. Anda dapat meletakkan berbagai file confg di sana, untuk firefox atau gnome atau yang tidak, tetapi / usr / share lebih baik jika memungkinkan (bervariasi tergantung pengaturan).

7) mkisofs - Anda menggunakan mkisofs untuk mengubah direktori build Anda menjadi iso

cd ~/custom
sudo mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-12.04-custom.iso .

8) Kegigihan. Anda dapat menggunakan ketekunan dengan banyak live CD, termasuk ubuntu-desktop cd dan custom cd, ini diterapkan oleh casper.

A. root - casper akan memasang partisi atau file yang berlabel sebagai casper-rwoverlay sapi pada /. Jika Anda menginstal paket, atau memodifikasi file config, perubahan akan tetap terjadi setelah reboot.

Gunakan ini dengan hemat. Jika Anda memperbarui semua paket, itu akan memakan banyak ruang. Saya juga menemukan bahwa metode ini kadang-kadang bermasalah.

B. Home - Casper masih memasang partisi atau file berlabel aas home-rwsebagai overlay sapi di / home.

Saya lebih suka ini karena bookmark firefox dan data pribadi saya akan disimpan di seluruh boot dan saya merasa lebih dapat diandalkan.

Persistent home (ganti ke casper-rw untuk persistent /)

# this is a 1 Gb file, increase or decrease the count to make it larger or smaller
dd if=/dev/zero of=home-rw bs=1M count=1000

# make a file system
mkfs.ext4 home-rw
mke2fs 1.41.14 (22-Dec-2010)
home-rw is not a block special device.
Proceed anyway? (y,n) y <-- ANSWER 'y' here

#tune the file system to remove reserved blocks and label it 'home-rw'
tune2fs -m 0 -L home-rw home-rw

Masukkan home-rw/ (di direktori root partisi) atau ke flash drive (bukan di sub direktori).

Ketika Anda mem-boot live CD, tekan F6tombol, mereka Esc, tambahkan opsi persistentke parameter boot, di depan '-'

quiet splash persistent --

Script boot casper kemudian akan menemukan mount secara otomatis.

Lihat Ubuntu wiki Persistence - Halaman wiki ubuntu hanya membahas casper-rw, tetapi home-rw direferensikan dalam skrip casper dan bekerja dengan cara yang sama, hanya nama yang telah diubah.

Lihat Posting ini di forum Ubuntu untuk melihat screenshot (walaupun dengan opsi yang berbeda).

C. Anda dapat mengaktifkan kegigihan dengan beberapa alat grafis, misalnya unetbootin. Alat grafis (sejauh yang saya tahu) gunakan casper-rw.

OK, sekarang setelah Anda memahami semua itu, kedua halaman ini akan mulai lebih masuk akal

Ubuntu wiki live cd dari awal

Ubuntu wiki menyesuaikan live CD

Google

Anda harus ke google. Anda akan menemukan potongan-potongan saran di seluruh internet.

Contoh: Cara mengubah splash screen Live CD

Debian Live

Sekarang setelah Anda memahami semua itu, gunakan skrip Debian Live . Jangan biarkan nama membodohi Anda, skrip ini berfungsi dengan baik pada sistem .deb apa pun, termasuk Mint dan Ubuntu.

Untuk memasang

sudo apt-get install live-build

Ada antarmuka grafis

sudo apt-get install live-magic

sihir hidup

Pahami bahwa gui sihir hidup mungkin gagal, sama seperti remasterys dan guis lainnya gagal. Jika demikian, Anda kembali ke skrip live-build (live-magic akan menghasilkan direktori build).

Butuh waktu untuk mempelajari skrip live-build dan tata letak / struktur direktori

Lihat Debian Live Manuel Aye, itu panjang, hanya bekerja melaluinya satu per satu.

Keuntungan dari skrip live-build, setelah Anda memahami komponen-komponen dari live CD, skrip mengotomatiskan 90+% dari build, dan membuat perubahan adalah mengedit sederhana ke file konfigurasi (biasanya) atau kadang-kadang membangun initramfs.

Terlalu panjang

Jika itu terlalu lama untuk Anda, ambil napas dalam-dalam, rileks, dan kerjakan informasi itu satu per satu. Saya berjanji itu akan mulai masuk akal dan Anda akan menemukan waktu yang layak.

Jika Anda mulai dengan set alat lain, kembali ke set alat ini dan setelah beberapa iso Anda akan menghargai set instruksi ini;)

Membangun 12,04 kustom saya, mendukung gma500, hanya 2d (no 3d) di luar kotak (akan membuat iso tersedia untuk umum untuk kerumunan 500 gma dalam beberapa hari ke depan).

gma 500

bodhi.zazen
sumber
1
Astaga. Ini jawaban yang bagus. Saya tahu apa yang saya lakukan malam ini.
jrg
Bagus. Jika ini tidak mendapatkan 40 suara, tidak ada yang harus mendapatkannya;)
Rinzwind
Bagi siapa pun yang tertarik, saya membuat respin tersedia, lihat blog saya (ada di Ubuntu Planet juga) untuk rincian dan unduh. blog.bodhizazen.net/linux/ubuntu-gma500-live-cd
Panther