Katılımsız bir Ubuntu yüklemesini nasıl oluşturabilirim?


91

Ubuntu'yu tamamen başsız bir makineye yükleyecek bir CD veya USB belleğe ihtiyacım var. CD'yi takın ve yeniden başlatın, klavye veya ekran kullanılmamalıdır.

Birkaç engel var:

  1. CD'yi ilk açtığınızda dil seçim menüsü.
  2. CD menüsü bekler aslında.
  3. Yükleyici yükleme sırasında sorular soruyor.


Bu yüzden bunu yaptım. ubunutu sunucumu yeniden başlattığımda yeni kickstart iso ile ancak aşağıdaki hatayı alıyorum ubuntu amd-ucode / microcode_amd.bin dosyasını yüklemeyi başaramadı. .. onu bulmak ve onu yeniden ne zaman hata mesajı alamadım
Rayman81

Yanıtlar:


83

Tam çözüm:

Bir CD'yi Remaster, yani grafiksel olmayan bir ubuntu kurulumu ISO (sunucu veya alternatif kurulum CD'si) indirin, takın

$ sudo su -
# mkdir -p /mnt/iso
# mount -o loop ubuntu.iso /mnt/iso

İlgili dosyaları farklı bir dizine kopyalayın

# mkdir -p /opt/ubuntuiso
# cp -rT /mnt/iso /opt/ubuntuiso

Dil seçim menüsünün görünmesini önleme

# cd /opt/ubuntuiso
# echo en >isolinux/lang

Adında bir kickstart dosyası eklemek için GUI programını kullanın ks.cfg

# apt-get install system-config-kickstart
# system-config-kickstart # save file to ks.cfg

Kurulum için paketler eklemek %packageiçin ks.cfgkickstart dosyasına bir bölüm ekleyin, ks.cfgdosyanın sonuna bunun gibi bir şey ekleyin .

%packages
@ ubuntu-server
openssh-server
ftp
build-essential

Bu ubuntu-server "paket" kuracak ve katacak openssh-server, ftpve build-essentialpaketler.

Diğer soruları bastırmak için önceden hazırlanmış bir dosya ekleyin

# echo 'd-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
select Finish partitioning and write changes to disk
d-i partman/confirm boolean true' > ks.preseed

Kickstart ve preseed dosyalarını kullanmak için boot komut satırını ayarlayın.

# vi isolinux/txt.cfg

Aramak

label install
  menu label ^Install Ubuntu Server
  kernel /install/vmlinuz
  append  file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --

ekle ks=cdrom:/ks.cfgve ekle preseed/file=/cdrom/ks.preseedsatırına. quietVe vga=788kelimeleri kaldırabilirsiniz . Gibi görünmeli

  append file=/cdrom/preseed/ubuntu-server.seed \
     initrd=/install/initrd.gz \
     ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --

Şimdi yeni bir iso oluştur

# mkisofs -D -r -V "ATTENDLESS_UBUNTU" \
     -cache-inodes -J -l -b isolinux/isolinux.bin \
     -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 \
     -boot-info-table -o /opt/autoinstall.iso /opt/ubuntuiso

Bu kadar. Tek bir tuşa basmak zorunda kalmadan, önyüklemeden bir Ubuntu sistemi kuracak bir CD'niz olacak.


1
Büyük açıklama için teşekkür ederim, çok yararlı! Ancak, önceden belirtilen dosyayı belirtmeye gerek olmadığını buldum, sadece ks.cfg dosyasındakiler yeterliydi (aynı zamanda kickstart aracılığıyla içerdiği bölümler vb.). [ubuntu 10.04 64bit]
symaedr

1
Hala açıldığında enter tuşuna basmam gerekiyor gibi görünüyor.
Catskul

5
Açılışta enter'a basma ihtiyacını atlamak için zaman aşımı değerini 0'dan 10'a değiştirin /isolinux/isolinux.cfg: zaman aşımı 10 10 değerinin 1 saniyeyi temsil ettiğini unutmayın.
digitalsanctum

1
isolinux/langAyarı beğendim , teşekkür ederim.
Chu-Siang Lai,

5
Bir USB çubuğundan yüklemek için, ISO'yu önyüklenebilir bir USB formatına dönüştürmek için bir adım daha yapmanız yeterlidir:# isohybrid path/to/image.iso
jjnebeker

5

Bu sorudaki talimatlar EFI önyüklenebilir ISO oluşturma sürecini kapsar (resmi Ubuntu x86_64 ISO gibi):

Ubuntu'nun özelleştirilmiş bir sürümünün EFI önyüklenebilir ISO'sunu nasıl oluşturabilirim?

Önemli farklar bunu önceden ayarlanmış dosya olarak ayarlıyor:

d-i partman-auto/method string lvm
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/confirm_write_new_label     boolean true
d-i partman/choose_partition            select  finish
d-i partman/confirm_nooverwrite         boolean true
d-i partman/confirm                     boolean true
d-i partman-auto/purge_lvm_from_device  boolean true
d-i partman-lvm/device_remove_lvm       boolean true
d-i partman-lvm/confirm                 boolean true
d-i partman-lvm/confirm_nooverwrite     boolean true
d-i partman-auto/init_automatically_partition       select      Guided - use entire disk and set up LVM
d-i partman/choose_partition                select      Finish partitioning and write changes to disk
d-i partman-auto-lvm/no_boot            boolean true
d-i partman-md/device_remove_md         boolean true
d-i partman-md/confirm                  boolean true
d-i partman-md/confirm_nooverwrite      boolean true

Bunu kickstart dosyası olarak kullanın:

lang en_US
langsupport en_US
keyboard us
mouse
timezone America/Los_Angeles
rootpw --disabled
user USERNAME --fullname "USERNAME" --password "PASSWORD"
reboot
text
install
cdrom
auth  --useshadow  --enablemd5 
network --bootproto=dhcp --device=eth0
firewall --disabled 
skipx
%packages
@ ubuntu-server
openssh-server

ISO için grub EFI önyükleme yapılandırmasını düzenleyin:

sudo nano ~/ubuntu/boot/grub/grub.cfg

Ayarlanır:

if loadfont /boot/grub/font.pf2 ; then
    set gfxmode=auto
    insmod efi_gop
    insmod efi_uga
    insmod gfxterm
    terminal_output gfxterm
fi

set menu_color_normal=white/light-blue
set menu_color_highlight=light-blue/light-gray
set timeout=10
set default=0

menuentry "Automatically Install Ubuntu Server with Custom Config" {
    set gfxpayload=keep
    linux   /install/vmlinuz  file=/cdrom/preseed/ubuntu-server.seed quiet ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
    initrd  /install/initrd.gz
}
menuentry "OEM install (for manufacturers)" {
    set gfxpayload=keep
    linux   /install/vmlinuz  file=/cdrom/preseed/ubuntu-server.seed quiet oem-config/enable=true --
    initrd  /install/initrd.gz
}
menuentry "Multiple server install with MAAS" {
    set gfxpayload=keep
    linux   /install/vmlinuz  modules=maas-enlist-udeb vga=788 initrd=/install/initrd.gz quiet --
    initrd  /install/initrd.gz
}
menuentry "Check disc for defects" {
    set gfxpayload=keep
    linux   /install/vmlinuz  MENU=/bin/cdrom-checker-menu quiet --
    initrd  /install/initrd.gz
}
menuentry "Rescue a broken system" {
    set gfxpayload=keep
    linux   /install/vmlinuz  rescue/enable=true --
    initrd  /install/initrd.gz
}

İsolinux / txt.cfg dosyasını şöyle ayarlayın:

default install
label install
  menu label ^Install Ubuntu Server with Custom Config
  kernel /install/vmlinuz
  append file=/cdrom/preseed/ubuntu-server.seed initrd=/install/initrd.gz ks=cdrom:/ks.cfg preseed/file=/cdrom/ks.preseed --
label cloud
  menu label ^Multiple server install with MAAS
  kernel /install/vmlinuz
  append   modules=maas-enlist-udeb vga=788 initrd=/install/initrd.gz quiet --
label check
  menu label ^Check disc for defects
  kernel /install/vmlinuz
  append   MENU=/bin/cdrom-checker-menu vga=788 initrd=/install/initrd.gz quiet --
label memtest
  menu label Test ^memory
  kernel /install/mt86plus
label hd
  menu label ^Boot from first hard disk
  localboot 0x80

İkili önyükleme kataloğu ISO oluşturun:

sudo mkisofs -U -A "Custom1404" -V "Custom1404" -volset "Custom1404" -J -joliet-long -r -v -T -o ../Custom1404.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot .

EFI önyüklenebilir bir ISO oluşturulduğunu doğrulayın:

dumpet -i Custom1404.iso 

Çıktılar:

Validation Entry:
    Header Indicator: 0x01 (Validation Entry)
    PlatformId: 0x00 (80x86)
    ID: ""
    Checksum: 0x55aa
    Key bytes: 0x55aa
Boot Catalog Default Entry:
    Entry is bootable
    Boot Media emulation type: no emulation
    Media load segment: 0x0 (0000:7c00)
    System type: 0 (0x00)
    Load Sectors: 4 (0x0004)
    Load LBA: 3100 (0x00000c1c)
Section Header Entry:
    Header Indicator: 0x91 (Final Section Header Entry)
    PlatformId: 0xef (EFI)
    Section Entries: 1
    ID: ""
Boot Catalog Section Entry:
    Entry is bootable
    Boot Media emulation type: no emulation
    Media load address: 0 (0x0000)
    System type: 0 (0x00)
    Load Sectors: 4672 (0x1240)
    Load LBA: 1932 (0x0000078c)

5

İşte bu prosedürü uygulayan bir kabuk betiği, giriş için teşekkürler: http://www.utech.de/2013/05/shell-script-creating-a-cd-for-unattended-ubuntu-server-installations/

Bağlantıyı takip ettiğiniz komut dosyası temel olarak @Elazar'ın tarif ettiği prosedürü uygular, bu nedenle temel kısımlar yukarıda sadece bir ekrandır. Birine zaman kazandırmak ve Ubuntu'nun diğer sürümleri için bunu tekrarlamayı biraz kolaylaştırmak için bağlantıyı ekledim.


2
Ubuntu'ya Sormaya Hoş Geldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
Oyibo

1
Anlıyorum. Bağlantıyı takip ettiğiniz komut dosyası, temel olarak Elazar'nın tarif ettiği prosedürü uygular, bu nedenle temel kısımlar yukarıda sadece bir ekrandır. Birine zaman kazandırmak ve Ubuntu'nun diğer sürümleri için bunu tekrarlamayı biraz kolaylaştırmak için bağlantıyı ekledim.
Michael,

1
Lütfen açıklamanızı yorumunuzdan cevabınıza ekleyin.
guntbert

3
Bağlantı kopmuş gibi görünüyor.
Reggie

2
Senaryo şimdi nerede?
civcivler

1

AskUbuntu'da bir cevaba aşağıdaki linkte oldukça basit bir yöntem anlatılmıştır.

Önyüklenebilir, katılımsız USB geri yükleme diskini nasıl yapabilirim?

  • İstediğiniz sistemi , örneğin istediğiniz gibi taşınabilir ağ bağlantısı ile oluşturun .

  • Sistemin [sıkıştırılmış] bir dd-görüntü dosyasını oluşturun (bunun yeniden yapılanmadan daha kolay olduğunu düşünüyorum).

  • Bir kabuk komut dosyası hazırlayın ve bu açıklamaya göre kalıcı bir canlı sistemde 'autostart' ile çağırın . Minimal değişikliklerle yapabilir (belki yalnızca sıkıştırılmış resim dosyasının adıyla eşleşebilir) veya özel durumunuza uyacak şekilde değiştirebilirsiniz.

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.