Bagaimana cara membuat instalasi Ubuntu yang benar-benar tanpa pengawasan?

91

Saya memerlukan CD atau USB stick, yang akan menginstal Ubuntu pada mesin yang benar-benar tanpa kepala. Masukkan CD dan nyalakan kembali, tidak ada papan ketik atau layar yang terlibat.

Ada beberapa kendala:

  1. Menu pemilihan bahasa saat Anda pertama kali mem-boot CD.
  2. Fakta bahwa menu CD menunggu.
  3. Pemasang mengajukan pertanyaan selama instalasi.
Elazar Leibovich
sumber
Tautan yang berguna
Nanne
Jadi saya melakukan ini. namun dengan iso kickstart baru ketika saya me-restart server ubunutu saya, saya mendapatkan error ubuntu berikut gagal memuat file amd-ucode / microcode_amd.bin Saya mencoba mencari file di server ubunutu saya yang "teratur" tetapi saya tidak bisa menemukannya .. dan saya tidak mendapatkan pesan kesalahan ketika saya reboot
Rayman81

Jawaban:

83

Solusi lengkapnya adalah:

Remaster CD, yaitu, unduh ISO instalasi ubuntu non-grafis (server atau CD instalasi alternatif), pasang

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

Salin file yang relevan ke direktori yang berbeda

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

Cegah menu pemilihan bahasa agar tidak muncul

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

Gunakan program GUI untuk menambahkan file kickstart bernama ks.cfg

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

Untuk menambahkan paket untuk instalasi, tambahkan %packagebagian ke ks.cfgfile kickstart, tambahkan ke akhir ks.cfgfile sesuatu seperti ini.

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

Ini akan menginstal "bundle" ubuntu-server, dan akan menambahkan openssh-server, ftpdan build-essentialpaket.

Tambahkan file preseed, untuk menekan pertanyaan lain

# 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

Setel baris perintah booting untuk menggunakan kickstart dan file yang sudah dipreparasi

# vi isolinux/txt.cfg

Pencarian untuk

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

tambahkan ks=cdrom:/ks.cfgdan preseed/file=/cdrom/ks.preseedke baris append. Anda dapat menghapus quietdan vga=788kata - kata. Seharusnya terlihat seperti

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

Sekarang buat iso baru

# 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

Itu dia. Anda akan memiliki CD yang akan menginstal sistem Ubuntu setelah Anda mem-boot darinya, tanpa memerlukan satu penekanan tombol.

Elazar Leibovich
sumber
1
Terima kasih atas penjelasannya, sangat berguna! Namun saya menemukan bahwa seseorang tidak perlu menentukan file preseed, cukup isi file ks.cfg sudah cukup (juga menentukan partisi dll di sana melalui kickstart). [ubuntu 10.04 64bit]
symaedr
1
Sepertinya saya masih perlu menekan enter ketika boot.
Catskul
5
Untuk memintas kebutuhan untuk menekan enter pada boot, ubah nilai timeout dari 0 menjadi 10 in /isolinux/isolinux.cfg: timeout 10 Perhatikan bahwa nilai 10 mewakili 1 detik.
digitalsanctum
1
Saya suka isolinux/langpengaturannya, terima kasih.
Chu-Siang Lai
5
Untuk menginstal dari stik USB, Anda hanya perlu satu langkah lagi untuk mengubah ISO ke format bootable drive USB:# isohybrid path/to/image.iso
jjnebeker
5

Instruksi pada pertanyaan ini mencakup proses untuk membuat ISO bootable EFI (seperti Ubuntu x86_64 ISO resmi) .:

Bagaimana cara membuat ISO EFI-bootable dari versi khusus Ubuntu?

Perbedaan utama adalah menyetel ini sebagai file preseed:

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

Gunakan ini sebagai file kickstart:

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

Edit konfigurasi boot EFI grub untuk ISO:

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

Mulai:

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
}

Atur isolinux / txt.cfg seperti ini:

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

Buat katalog dual boot ISO:

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 .

Verifikasi ISO EFI-bootable telah dibuat:

dumpet -i Custom1404.iso 

Output:

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)
anothermh
sumber
5

Berikut ini adalah skrip shell yang melakukan prosedur ini, terima kasih untuk pengantar: http://www.utech.de/2013/05/shell-script-creating-a-cd-for-unattended-ubuntu-server-installations/

Skrip yang Anda temukan setelah tautan pada dasarnya mengimplementasikan prosedur yang dijelaskan oleh Elazar, jadi bagian-bagian penting hanyalah layar di atas. Saya menambahkan tautan untuk menghemat waktu, dan membuatnya lebih mudah untuk mengulanginya untuk versi Ubuntu lainnya.

Michael
sumber
2
Selamat Datang di Tanya Ubuntu! Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Oyibo
1
Saya melihat. Skrip yang Anda temukan setelah tautan pada dasarnya mengimplementasikan prosedur yang dijelaskan Elazar, jadi bagian-bagian penting hanyalah layar di atas. Saya menambahkan tautan untuk menghemat waktu, dan membuatnya lebih mudah untuk mengulanginya untuk versi Ubuntu lainnya.
Michael
1
Silakan tambahkan penjelasan dari komentar Anda ke jawaban Anda.
guntbert
3
Tautan sepertinya rusak.
Reggie
2
Di mana skripnya sekarang?
anak ayam
1

Metode yang agak sederhana dijelaskan pada tautan berikut ke jawaban di AskUbuntu,

Bagaimana saya bisa membuat disk pemulihan USB yang dapat di-boot dan tidak dijaga?

  • Buat sistem yang Anda inginkan dengan koneksi jaringan portabel, misalnya sesuai dengan

  • Buat file [image] dd-image dari sistem (saya pikir ini lebih mudah daripada remastering).

  • Buat shellscript dan panggil melalui 'autostart' dalam sistem live persisten sesuai dengan deskripsi ini . Anda dapat melakukannya dengan modifikasi minimal (mungkin hanya cocok dengan nama file gambar terkompresi), atau Anda dapat memodifikasinya agar sesuai dengan kasus khusus Anda.

sudodus
sumber