Bagaimana cara membuat ISO Ubuntu Server yang Disesuaikan?

42

Saya ingin membuat Ubuntu Server 12.04 ISO yang disesuaikan tetapi tidak dapat menemukan pendekatan yang jelas tentang bagaimana melakukannya. Saya melihat bahwa Ubuntu-builder adalah aplikasi yang sangat bagus untuk membuat Desktop Ubuntu yang disesuaikan, tetapi bagaimana dengan Ubuntu Server?

Shadin
sumber

Jawaban:

61

Unduh

Unduh ISO server Ubuntu dari lokasi ini . Anda memiliki opsi untuk menggunakan 32-bit atau 64-bit. Nama file untuk edisi server akan terlihat mirip dengan ini:

ubuntu-13.10-server-i386.iso 
ubuntu-13.10-server-amd64.iso 

Saya akan menganggap versi 13.10 64-bit dalam instruksi berikut, jadi sesuaikan perintah dengan unduhan yang Anda lakukan. Simpan salinan unduhan Anda sehingga Anda dapat membuat beberapa versi baru dari unduhan asli jika Anda perlu meningkatkan proyek Anda. Saya juga akan menganggap kita gunakan ~/Downloads/untuk melakukan semua pekerjaan kita.

Pengaturan awal

Ini akan membuat 2 direktori "iso" dan "isoNew" di dalam direktori Unduhan Anda, pasang ISO dan salin konten dari "iso" ke "isoNew" untuk memulai proyek baru.

Masukkan ini ke file teks, simpan, buat itu bisa dieksekusi, dan jalankan:

# Ubuntu custom server 
# rinzwind askubuntu.com
# topic: http://askubuntu.com/questions/409607/how-to-create-a-customized-ubuntu-server-iso/409651#409651
cd ~/Downloads/    
mkdir -p iso newIso
sudo mount -o loop ./ubuntu-13.10-server-amd64.iso ./iso    
sudo cp -r ./iso/* ./newIso/
sudo cp -r ./iso/.disk/ ./newIso/    
sudo umount ./iso/
cd ~/Downloads/newIso/
  • Ini akan melempar 1 pesan kesalahan: mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only

Contoh gambar tentang bagaimana ini akan terlihat seperti:

Mengeksekusi:

Mengeksekusi

Hasil:

Hasil

Menambahkan Opsi Menu Booting

Opsi menu untuk penginstal disimpan di isolinux/txt.cfgdan Anda dapat membuat opsi baru di antara default installdan label install.

Ini akan membuat opsi baru yang disebut "Instal Custom Ubuntu server" dan itu akan menambahkan file kickstart (file kickstart digunakan untuk mengubah opsi; dijelaskan di bawah):

label myownoption
  menu label ^Install Custom Ubuntu Server
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/ubuntu-custom.seed initrd=/install/initrd.gz quiet ks=cdrom:/preseed/ks-custom.cfg --
  • myownoption hanyalah label yang dapat Anda gunakan untuk mengidentifikasi opsi Anda.
  • "Instal Custom Ubuntu Server" adalah teks yang akan muncul di menu boot.
  • Jika Anda ingin menjadikan opsi menu Anda pilihan default, Anda hanya perlu mengubah default installto default myownoption.

Contoh:

masukkan deskripsi gambar di sini

dan mengedit file (saya menggunakan nano tetapi jika tersedia gunakan gedit, vim atau editor lain). Ini adalah tambahan saya untuk file ini di mana saya menggunakan "lampserver" sebagai label dan seed saya akan dinamai "lampserver" juga.

masukkan deskripsi gambar di sini

Kickstart (mengatur file konfigurasi secara grafis)

Metode instalasi Red Hat Kickstart digunakan terutama (tetapi tidak secara eksklusif) oleh sistem operasi Red Hat Enterprise Linux untuk secara otomatis melakukan instalasi dan konfigurasi sistem operasi yang tidak dijaga.

Dokumentasi tentang preseeding / kickstart untuk Ubuntu . Ubuntu memiliki dukungan terbatas untuk kickstart (dan preseeding); salah satu hal yang hilang adalah antarmuka grafis untuk pra-pembudidayaan. Kickstart memang memiliki opsi untuk ini (lihat gambar) tetapi ini sepertinya tidak berfungsi di Ubuntu. Anda dapat melakukan ini secara manual (lihat Preseeding di bawah).

Instalasi dan mulai kickstart:

sudo apt-get install system-config-kickstart
ksconfig

** PERINGATAN **

kickstart disadap di Ubuntu 13.10 dan ketika memulai, kesalahan keluar. Ini adalah perbaikan . Masukkan tambalan di komentar ke dalam file teks, simpan (saya menamakannya "tambalan") dan lakukan:

masukkan deskripsi gambar di sini

Setelah itu ksconfigberhasil dan itu akan memulai editor konfigurasi yang memungkinkan Anda untuk memanipulasi banyak opsi.

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Lihat Red Hat Linux 7.2: Panduan Kustomisasi Red Hat Linux Resmi untuk deskripsi untuk semua opsi yang dapat Anda atur.

Setelah Anda selesai, simpan perubahan ke ks.cfgfile dan salin ke ISO yang sedang kami ubah:

sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
  • Jika Anda mengubah apa pun di sini, penginstal akan BERLAKU meminta informasi itu jika dianggap sah. Jika Anda tidak mengubah opsi, penginstal masih akan meminta Anda untuk menjawab.
  • Anda juga dapat mengunduh file kickstart dan menyimpannya seperti ks-custom.cfgdi ~/Downloads/newIso/preseed/.

Contoh tempat saya memasukkan kredensial saya. Saya memulainya dengan sudo ksconfigdari commandline.

masukkan deskripsi gambar di sini

Dan menyimpannya ke proyek:

masukkan deskripsi gambar di sini

Preseeding (secara manual mengatur file konfigurasi)

Preseeding menyediakan cara untuk mengatur jawaban atas pertanyaan yang diajukan selama proses instalasi, tanpa harus memasukkan jawaban secara manual saat instalasi sedang berjalan. Ini memungkinkan untuk mengotomatisasi sebagian besar jenis instalasi dan bahkan menawarkan beberapa fitur yang tidak tersedia selama instalasi normal.

Salin preseed untuk pemasangan normal ke label Anda sendiri:

sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
  • ubah myownoptionke apa yang Anda gunakan.

Sekarang untuk mengubah pengaturan. Menggunakan debconf-get-selectionsdari debconf-utilsAnda dapat menyelidiki parameter apa yang dapat Anda gunakan dengan perangkat lunak tertentu.

Contoh pengaturan ini:

masukkan deskripsi gambar di sini

Dan menambahkan lamp-server untuk diinstal dengan tasksel:

masukkan deskripsi gambar di sini

  • Jika Anda ingin menambahkan paket "openssh" dan "build-essential" Anda dapat memasukkan ini dalam file seed:

    d-i pkgsel/include string openssh-server build-essential
    
  • Contoh untuk openssh:

    debconf-get-selections | grep openssh
    openssh-server  ssh/vulnerable_host_keys    note
    openssh-server  ssh/use_old_init_script boolean true
    openssh-server  ssh/encrypted_host_key_but_no_keygen    note
    openssh-server  ssh/disable_cr_auth boolean false
    
  • Anda dapat menambahkan opsi ini ke custom-iso/preseed/ubuntu-myownoption.seed.

  • Penjelasan / contoh menggunakan pengaturan debconf .
  • Contoh file preseed
  • Contoh tentang: Lokalisasi, Konfigurasi jaringan, Konsol jaringan, Jam dan waktu, partisi
  • Di akhir file preseed Anda dapat menambahkan paket (contoh acak) seperti ini:

    % paket openssh-server mysql-server apache2

Instalasi offline

Jika Anda menambahkan paket-paket dan BUKAN dalam ISO, pemasang akan mengunduh ini dari repositori. Jika Anda tidak memiliki koneksi internet aktif ini akan bermasalah sehingga Anda perlu menambahkan semua paket (dan dependensi) ke proyek Anda dan membakarnya ke DVD. Untungnya, server normal ISO memiliki banyak ruang tetapi waspadalah: CD dan / atau DVD memiliki ukuran terbatas.

Unduh semua paket DEB yang Anda butuhkan dan simpan ~/Downloads/. 2 direktori ini diperlukan pada ISO baru:

mkdir -p ~/Downloads/newIso/dists/stable/extras/binary-i386
mkdir -p ~/Downloads/newIso/pool/extras/
sudo cp ~/Downloads/*.deb newIso/pool/extras/

Dan ini akan memperbarui proyek kami dengan paket-paket baru:

cd ~/Downloads/newIso
sudo apt-ftparchive packages ./pool/extras/ > dists/stable/extras/binary-i386/Packages
sudo gzip -c ./dists/stable/extras/binary-i386/Packages | tee ./dists/stable/extras/binary-i386/Packages.gz > /dev/null
cd ~/Downloads/

Buat ISO

cd ~/Downloads/     
sudo md5sum `find ! -name “md5sum.txt” ! -path “./isolinux/*” -follow -type f` > md5sum.txt
sudo mkisofs -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -z -iso-level 4 -c isolinux/isolinux.cat -o ./ubuntu-13.10-myowninstall-amd64.iso -joliet-long newIso/
  • baris ke-2 menciptakan checksum baru dan hanya diperlukan saat menambahkan paket.
  • yang ke-3 membuat ISO dari proyek Anda yang dapat Anda bakar ke DVD.

Hasil:

masukkan deskripsi gambar di sini

Dan sekarang Anda dapat mencobanya dengan benar-benar membakar dan menginstalnya. Saya akan menyarankan untuk digunakan sebagai mesin virtual karena akan lebih cepat untuk menguji ISO yang dibuat awal (jika tidak Anda tetap reboot).

Dan setelah menginstal VirtualBox saya mendapatkan menu berikut:

masukkan deskripsi gambar di sini

Perburuan serangga

Terjadi 1 masalah saat menginstal: default tidak dipilih.

Shadin. Dari file seed Anda di komentar

### Package Selection
tasksel tasksel/first multiselect Custom-Ubuntu-Server
d-i pkgsel/include string openssh-server build-essential
%packages openssh-server postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3

mungkin perlu seperti ini:

### Package Selection
tasksel tasksel/first multiselect lamp-server
d-i pkgsel/include string openssh-server build-essential postgresql-9.1 postgresql-client-9.1 postgresql-contrib-9.1 libpq-dev postgresql-server-dev-9.1 pgadmin3

Parit baris tasksel Anda tidak ingin server LAMP (mis. Apache, Mysql, Php)

Rinzwind
sumber
Apakah ini dapat digunakan untuk versi desktop?
Braiam
TERIMA KASIH BANYAK!! Saya benar-benar tidak bisa cukup berterima kasih karena membuat proses ini mudah dan lancar! Saya hanya punya satu masalah, setelah saya menginstal VirtualBox dan memilih untuk menginstal server khusus saya, saya mendapat pesan kesalahan ini! XHTML yang valid .
Shadin
Ya saya lakukan. sebenarnya saya lebih suka jika Anda melihat file seed saya [ megafileupload.com/en/file/493602/... Saya tidak yakin tentang cara saya menambahkan paket di akhir file
Shadin
oh! Terima kasih! Saya akan mencobanya dan kembali kepada Anda. Saya juga ingin tahu apakah ada cara untuk menghapus server tambahan selama proses ini dari gambar seperti server mail, server web, JBOSS .. dll. Saya hanya ingin memasukkan postgresql dan paket-paketnya.
Shadin
2
@shadin tidak apa-apa, perhatikan bagaimana Lucio melakukan itu ;-) Membersihkan komentar. Braiam: ya itu bisa. Meskipun ada lebih banyak hal untuk diubah di desktop, ini adalah permulaan (kickstart juga berfungsi jika Anda menambalnya tetapi masih terbatas didukung oleh Ubuntu).
Rinzwind