98 votes

Comment créer une installation complètement autonome d'Ubuntu ?

J'ai besoin d'un CD ou d'une clé USB qui installe Ubuntu sur une machine complètement sans tête. Il suffit d'insérer le CD et de redémarrer. Aucun clavier ou écran ne doit être utilisé.

Il y a quelques obstacles :

  1. Le menu de sélection de la langue lorsque vous démarrez le CD pour la première fois.
  2. Le fait que le menu du CD attende.
  3. L'installateur pose des questions pendant l'installation.

91voto

Tundey Points 2145

La solution complète est :

Remasteriser un CD, c'est-à-dire télécharger un ISO d'installation ubuntu non graphique (CD d'installation serveur ou alternatif), le monter.

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

Copiez les fichiers pertinents dans un autre répertoire

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

Empêcher l'apparition du menu de sélection de la langue

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

Utilisez le programme GUI pour ajouter un fichier kickstart nommé ks.cfg

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

Pour ajouter des paquets pour l'installation, ajoutez un %package à la section ks.cfg le fichier de démarrage, ajoutez à la fin du fichier ks.cfg quelque chose comme ça.

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

Cela installera le "bundle" ubuntu-server, et ajoutera le fichier openssh-server , ftp y build-essential paquets.

Ajouter un fichier de présélection, pour supprimer les autres questions

# 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

Configurer la ligne de commande de démarrage pour utiliser les fichiers kickstart et preseed

# vi isolinux/txt.cfg

Recherche de

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

ajouter ks=cdrom:/ks.cfg y preseed/file=/cdrom/ks.preseed à la ligne append. Vous pouvez supprimer le quiet y vga=788 mots. Cela devrait ressembler à

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

Maintenant, créez un nouvel iso

# 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

Voilà, c'est fait. Vous aurez un CD qui installera un système Ubuntu dès que vous démarrerez, sans avoir besoin de taper une seule touche.

6voto

anothermh Points 341

Les instructions à cette question couvrent le processus de création d'un ISO amorçable EFI (comme l'ISO officiel d'Ubuntu x86_64) :

Comment créer un ISO amorçable par EFI d'une version personnalisée d'Ubuntu ?

La principale différence réside dans le fait qu'il s'agit du fichier de présélection :

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

Utilisez-le comme fichier de démarrage :

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

Editez la configuration de démarrage EFI Grub pour l'ISO :

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

Réglé sur :

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
}

Configurez isolinux/txt.cfg comme ceci :

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

Créez un catalogue ISO de double démarrage :

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 .

Vérifiez qu'un ISO amorçable par EFI a été créé :

dumpet -i Custom1404.iso 

Sorties :

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)

5voto

Michael Points 67

Voici un Shell Shell qui réalise cette procédure, merci pour l'introduction : http://www.utech.de/2013/05/Shell-Shell-creating-a-cd-for-unattended-ubuntu-server-installations/

Le script que vous trouvez en suivant le lien implémente essentiellement la procédure que @Elazar a décrite, donc les parties essentielles sont juste un écran au-dessus. J'ai ajouté le lien pour faire gagner du temps à quelqu'un, et pour qu'il soit un peu plus facile de répéter cela pour d'autres versions d'Ubuntu.

1voto

sudodus Points 39902

Une méthode assez simple est décrite dans le lien suivant vers une réponse à AskUbuntu,

Comment puis-je créer un disque de restauration USB amorçable et sans surveillance ?

  • Créez le système que vous souhaitez avec une connexion réseau portable, par exemple selon

  • Créer un fichier dd-image [compressé]. du système (je pense que c'est plus facile que la remasterisation).

  • Créer un script shell et l'appeler via 'autostart' dans un système vivant persistant. en fonction de cette description . Vous pouvez le faire avec des modifications minimales (peut-être ne faire correspondre que le nom du fichier image compressé), ou vous pouvez le modifier pour l'adapter à votre cas particulier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X