J'ai besoin d'un CD ou d'une clé USB pour installer Ubuntu sur une machine complètement sans tête. Insérez le CD et redémarrez-le, aucun clavier ni écran ne doit être impliqué.
Il y a quelques obstacles:
La solution complète est:
Remasterisez un CD, c’est-à-dire téléchargez un fichier ISO d’installation ubuntu non graphique (CD-ROM serveur ou autre), montez-le
$ Sudo su -
# mkdir -p /mnt/iso
# mount -o loop ubuntu.iso /mnt/iso
Copiez les fichiers pertinents dans un répertoire différent
# mkdir -p /opt/ubuntuiso
# cp -rT /mnt/iso /opt/ubuntuiso
Empêcher l'affichage du menu de sélection de la langue
# cd /opt/ubuntuiso
# echo en >isolinux/lang
Utilisez le programme graphique 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 packages pour l'installation, ajoutez une section %package
au fichier kickstart ks.cfg
, ajoutez quelque chose de ce type à la fin du fichier ks.cfg
.
%packages
@ ubuntu-server
openssh-server
ftp
build-essential
Ceci installera le "paquet" du serveur ubuntu, et ajoutera les paquets openssh-server
, ftp
et build-essential
.
Ajouter un fichier de préconfiguration pour supprimer d'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
Définissez la ligne de commande de démarrage pour utiliser les fichiers kickstart et preseed
# vi isolinux/txt.cfg
Rechercher
label install
menu label ^Install Ubuntu Server
kernel /install/vmlinuz
append file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
ajoutez ks=cdrom:/ks.cfg
et preseed/file=/cdrom/ks.preseed
à la ligne d’ajout. Vous pouvez supprimer les mots quiet
et vga=788
. Il 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 une nouvelle 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
C'est tout. Vous aurez un CD qui installerait un système Ubuntu une fois que vous en avez démarré, sans qu'il soit nécessaire d'appuyer sur une seule touche.
Voici un script Shell qui effectue cette procédure, merci pour l’introduction: http://www.utech.de/2013/05/Shell-script-creating-a-cd-for-unattended-ubuntu-server -installations /
Le script que vous trouvez en suivant le lien met en œuvre la procédure décrite par @Elazar. Les parties essentielles ne sont donc qu'un écran ci-dessus. J'ai ajouté le lien pour gagner du temps et pour le rendre un peu plus facile à répéter pour d'autres versions d'Ubuntu.
Les instructions de cette question couvrent le processus de création d’une ISO amorçable EFI (comme l’ISO officielle Ubuntu x86_64):
Comment créer une image ISO amorçable EFI d’une version personnalisée d’Ubuntu?
Les principales différences sont de définir ceci comme fichier 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
Utilisez ceci comme fichier 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
Editez la configuration de démarrage EFI Grub pour l'ISO:
Sudo nano ~/ubuntu/boot/grub/grub.cfg
Mis à:
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
}
Définissez 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 à double démarrage 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 .
Vérifiez qu'une image ISO amorçable EFI a été créée:
dumpet -i Custom1404.iso
Les 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)
Une méthode assez simple est décrite au lien suivant pour une réponse à AskUbuntu,
Comment puis-je créer un disque de restauration USB amorçable sans surveillance?
Créez le système souhaité avec une connexion réseau portable, par exemple en fonction de
Créez un fichier dd-image [compressé] du système (je pense que c'est plus facile que de remasteriser).
Créez un shellscript et appelez-le via 'autostart' dans un système en direct persistant selon cette description . Vous pouvez le faire avec des modifications minimes (peut-être ne faire correspondre que le nom du fichier image compressé) ou le modifier pour l'adapter à votre cas particulier.