Özelleştirilmiş bir Ubuntu Sunucusu ISO nasıl oluşturulur?


42

Özelleştirilmiş bir Ubuntu Sunucusu 12.04 ISO oluşturmak istiyorum ancak nasıl yapılacağı konusunda net bir yaklaşım bulamadım. Ubuntu oluşturucusunun, özelleştirilmiş bir Ubuntu Masaüstü oluşturmak için çok iyi bir uygulama olduğunu görüyorum, peki ya Ubuntu Sunucusu?

Yanıtlar:


61

İndir

Ubuntu sunucusu ISO'yu bu konumdan indirin . 32-bit veya 64-bit seçeneğine sahipsiniz. Sunucu baskısının dosya adı şuna benzer:

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

Aşağıdaki talimatlarda 13.10 64-bit sürümü kullanacağım, bu yüzden komutları yaptığınız indirmeye göre ayarlayacağım. İndirme işleminizin bir kopyasını saklayın, böylece projenizi geliştirmeniz gerekebilir diye orijinal indirme işleminden birden çok yeni sürüm oluşturabilirsiniz. ~/Downloads/Tüm işimizi yapmak için kullandığımızı da varsayacağım .

İlk kurulum

Bu, İndirilenler dizininizde 2 dizin "iso" ve "isoNew" oluşturur, ISO'yu bağlar ve yeni bir proje başlatmak için içeriği "iso" dan "isoNew" a kopyalar.

Bunu bir metin dosyasına koyun, kaydedin, çalıştırılabilir hale getirin ve çalıştırın:

# 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/
  • 1 hata mesajı verecek: mount: block device /discworld/Downloads/ubuntu-13.10-server-amd64.iso is write-protected, mounting read-only

Bunun nasıl görüneceğine dair örnek resimler:

yürütülmesi:

yürütme

Sonuç:

Sonuç

Önyükleme Menüsü Seçeneği Ekleme

Yükleyici için menü seçenekleri saklanır isolinux/txt.cfgve arasında default installve arasında yeni seçenekler oluşturabilirsiniz label install.

Bu "Install Custom Ubuntu server" adlı yeni bir seçenek yaratacak ve bir kickstart dosyası ekleyecektir (kickstart dosyası seçenekleri değiştirmek için kullanılır; aşağıda açıklanmıştır):

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 sadece seçeneğinizi belirlemek için kullanabileceğiniz bir etikettir.
  • "Özel Ubuntu Sunucusunu Kur" önyükleme menüsünde görünecek metindir.
  • Menü seçeneğinizi varsayılan seçenek yapmak istiyorsanız, sadece işaretini değiştirmeniz yeterli default installolacaktır default myownoption.

Örnek:

görüntü tanımını buraya girin

ve dosyayı düzenleme (nano kullandım ancak varsa gedit, vim veya başka bir editör kullanın). İşte etiket olarak "lampserver" ı kullandığım ve ekimde "lampserver" olarak adlandırdığım bu dosyaya ekim.

görüntü tanımını buraya girin

Kickstart (grafiksel olarak bir konfigürasyon dosyası oluşturmak)

Red Hat Kickstart kurulum yöntemi, öncelikle (yalnızca özel olarak değil) Red Hat Enterprise Linux işletim sistemi tarafından katılımsız işletim sistemi kurulumunu ve yapılandırmasını otomatik olarak gerçekleştirmek için kullanılır.

Ubuntu için preseeding / kickstart ile ilgili belgeler . Ubuntu'nun kickstart (ve preseeding) için sınırlı desteği var; eksik olan şeylerden biri preseeding için grafiksel bir arayüz. Kickstart yapar (resme bakın) bunun için seçenekler vardır ama bunlar Ubuntu üzerinde çalışmaya görünmüyor. Ancak bunu manuel olarak yapabilirsiniz (bkz. Aşağıda Preseeding).

Kurulum ve başlatma hızlı başlama:

sudo apt-get install system-config-kickstart
ksconfig

** UYARI **

kickstart Ubuntu 13.10'a tıkandı ve başlatırken hata veriyor. İşte bir düzeltme . Yamayı yoruma bir metin dosyasına yerleştirin, kaydedin ("yama" olarak adlandırdım) ve kaydedin:

görüntü tanımını buraya girin

Bundan sonra ksconfigçalıştı ve birçok seçeneği değiştirmenize izin veren bir konfigürasyon düzenleyicisi başlatır.

görüntü tanımını buraya girin

görüntü tanımını buraya girin

Bkz resmi Red Hat Linux Özelleştirme Kılavuzu: Red Hat Linux 7.2 ayarlayabileceğiniz seçenekleri için bir açıklama için.

Tamamladıktan sonra, değişiklikleri bir ks.cfgdosyaya kaydedin ve değiştirdiğimiz ISO'ya kopyalayın:

sudo cp ks.cfg ~/Downloads/newIso/preseed/ks-custom.cfg
  • Buradaki herhangi bir şeyi değiştirirseniz, yükleyici geçerli olduğunu düşünürse SKIP bu bilgiyi ister. Bir seçeneği değiştirmediyseniz, yükleyici sizden cevap vermenizi isteyecektir.
  • Ayrıca kickstart indirebilirsiniz dosyaları gibi bu tasarruf ks-custom.cfgiçinde ~/Downloads/newIso/preseed/.

Kimlik bilgilerimi girdiğim örnek. sudo ksconfigKomut satırından başladım .

görüntü tanımını buraya girin

Ve bunu projeye kaydetme:

görüntü tanımını buraya girin

Hazırlama (bir yapılandırma dosyasını elle ayarlama)

Preseeding , kurulum işlemi sırasında sorulan soruların cevaplarını, kurulum çalışırken cevapları manuel olarak girmek zorunda kalmadan ayarlamak için bir yol sağlar. Bu, çoğu kurulum türünü tamamen otomatik hale getirmeyi mümkün kılar ve normal kurulumlarda bulunmayan bazı özellikler sunar.

Normal kurulum için preseed'i kendi etiketinize kopyalayın:

sudo cp newIso/preseed/ubuntu-server.seed newIso/preseed/ubuntu-myownoption.seed
  • myownoptionkullandığın şeyi değiştir .

Şimdi ayarları değiştirmek için. Sizden kullanarak debconf-get-selections, debconf-utilsbelirli bir yazılımla hangi parametreleri kullanabileceğinizi inceleyebilirsiniz.

Bunu ayarlayan örnek:

görüntü tanımını buraya girin

Ve taskel ile kurulacak lamba sunucusu ekleme:

görüntü tanımını buraya girin

  • "Openssh" ve "build-essential" paketleri eklemek istiyorsanız, bunu tohum dosyasına ekleyebilirsiniz:

    d-i pkgsel/include string openssh-server build-essential
    
  • Openssh için bir örnek:

    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
    
  • Bu seçenekleri ekleyebilirsin custom-iso/preseed/ubuntu-myownoption.seed.

  • Debconf ayarlarını kullanarak açıklama / örnekler .
  • Örnek bir preseed dosyası
  • İlgili örnekler : Yerelleştirme, Ağ yapılandırması, Ağ konsolu, Saat ve saat, bölümleme
  • Hazırlanan dosyanın sonuna şöyle paketler (rastgele örnekler) ekleyebilirsiniz:

    % paket, openssh-server mysql-server apache2

Çevrimdışı yükleme

Paketler eklerseniz ve bunlar ISO’da DEĞİLDİRLERse, yükleyici bunları depodan indirecektir. Aktif bir internet bağlantınız yoksa, bu problemli olacaktır, bu nedenle tüm bu paketleri (ve bağımlılıkları) projenize eklemeniz ve onları bir DVD'ye yazmanız gerekir. Neyse ki normal sunucu ISO'da çok fazla alan var ama dikkat: CD ve / veya DVD'lerin sınırlı bir boyutu var.

İhtiyacınız olan tüm DEB paketlerini indirin ve saklayın ~/Downloads/. Yeni ISO'da bu 2 klasöre ihtiyaç var:

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

Bu da projemizi yeni paketlerle güncelleyecektir:

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/

ISO’yu oluşturun

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/
  • 2. satır yeni bir sağlama toplamı oluşturur ve yalnızca paket eklerken gerekir.
  • Üçüncü projenizde bir DVD'ye yazabileceğiniz bir ISO yapar.

Sonuç:

görüntü tanımını buraya girin

Ve şimdi, onu yakıp yükleyerek deneyebilirsiniz. Sanal makine olarak kullanılmasını öneririm çünkü oluşturulan ISO'yu test etmek için daha hızlı olacaktır (aksi halde yeniden başlatmaya devam edersiniz).

Ve VirtualBox kurduktan sonra aşağıdaki menüyü alıyorum:

görüntü tanımını buraya girin

Böcek avı

Yükleme sırasında 1 sorunla karşılaştı: varsayılan seçilmedi.

Shadin. Senin itibaren tohum dosyasında yorumunda

### 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

muhtemelen böyle olması gerekiyor:

### 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

Görev dizinizi LAMP sunucusu istemiyorsanız hendeleyin (örn. Apache, Mysql, Php)


Bu masaüstü sürümleri için kullanılabilir mi?
Braiam

ÇOK TEŞEKKÜR EDERİM!! Bu süreci kolay ve sorunsuz hale getirdiğiniz için size gerçekten yeterince teşekkür edemiyorum! Sadece bir problemim vardı, VirtualBox'u kurduktan ve özelleştirilmiş sunucumu kurmayı seçtikten sonra bu hata mesajını aldım! Geçerli XHTML .
Shadin

Evet yaptım. aslında benim tohum dosyama bir göz atmayı tercih ediyorum [ megafileupload.com/en/file/493602/… Dosyanın sonuna paketleri ekleme yöntemimden emin değilim
Shadin

ah! Teşekkürler! Bunu deneyeceğim ve size geri döneceğim. Ayrıca, bu işlem sırasında posta sunucusu, web sunucusu, JBOSS vb. gibi herhangi bir ek sunucuyu kaldırmanın bir yolu olup olmadığını da bilmek istiyorum. Yalnızca postgresql ve paketlerini içermesini istiyorum.
Shadin

2
Tamam @shadin Lucio'nun nasıl yaptığını izleyin ;-) Yorumları temizle. Braiam: Evet yapabilir. Masaüstünde değiştirilecek daha birçok şey olsa da, bu bir başlangıçtır (yamayı düzeltirseniz kickstart da işe yarıyor ama yine de Ubuntu tarafından destekleniyor.)
Rinzwind
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.