52 votes

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

Objectif

Je souhaite installer Ubuntu Desktop 16.04.1 LTS sans aucune assistance. Mettre le CD ISO dans le lecteur et s'en aller.

Enjeux

  • Paramètres de démarrage incorrects
  • Des questions sont encore posées et nécessitent des clics de souris
  • Réponses compliquées à l'aide de kickstart/preseed
  • Exemples de documentation ne fonctionnant pas comme prévu, notamment de la part de Partman et d'ubunutu

Je suis tombée sur ce post aquí et il était proche de ce dont j'avais besoin, mais n'accomplissait pas tout à fait ce dont j'avais besoin puisqu'il s'agissait d'Ubuntu Server. L'article suggère d'utiliser une installation Ubuntu "non graphique", mais je n'ai pas trouvé d'installation non graphique pour Ubuntu Desktop, ce qui est logique. J'ai essayé d'adapter les étapes et de les faire fonctionner pour Ubuntu Desktop 16.04.1 LTS.

Documentation utilisée

J'ai utilisé toutes les ressources suivantes...

Apparemment, je ne peux pas inclure toutes mes ressources car askubuntu n'autorise pas plus de 2 liens. Ce n'est pas très utile, alors voici une liste :

  • AskUbuntu
  • Ubuntu install.fr.pdf
  • Exemples de semences
  • Documentation de l'installateur Ubiquity
  • Documentation et exemples de Partman
  • Recette de partition Explication des 3 nombres et de leur pondération
  • Un exemple plus complexe de présemis

Solution actuelle

J'ai créé une installation sans surveillance, mais je ne suis pas sûr qu'elle soit correcte - ce qui signifie que j'aurais dû éditer le fichier isolinux/isolinux.cfg.

Il y avait de nombreuses différences entre l'article que j'ai mis en lien et l'image du bureau Ubuntu. Voici ma solution :

Étape 1

Montage de l'ISO Ubuntu pour pouvoir copier le contenu dans un autre répertoire et éditer les fichiers pertinents.

mkdir -p /mnt/iso
mount -o loop ubuntu.iso /mnt/iso

Étape 2

J'ai ensuite copié les fichiers ISO dans un autre répertoire pour les éditer.

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

Étape 3

J'ai édité le isolinux/isolinux.cfg et remplacé tout ce qui s'y trouve par ce qui suit :

default live-install
label live-install
  menu label ^Install Ubuntu
  kernel /casper/vmlinuz.efi
  append  file=/cdrom/ks.preseed auto=true priority=critical debian-installer/locale=en_US keyboard-configuration/layoutcode=us ubiquity/reboot=true languagechooser/language-name=English countrychooser/shortlist=US localechooser/supported-locales=en_US.UTF-8 boot=casper automatic-ubiquity initrd=/casper/initrd.lz quiet splash noprompt noshell ---

La ligne append est très longue, donc pour faciliter la lecture, voici toutes les options que j'ai utilisées :

file=/cdrom/ks.preseed 
auto=true 
priority=critical 
debian-installer/locale=en_US 
keyboard-configuration/layoutcode=us 
ubiquity/reboot=true 
languagechooser/language-name=English 
countrychooser/shortlist=US 
localechooser/supported-locales=en_US.UTF-8 
boot=casper 
automatic-ubiquity 
initrd=/casper/initrd.lz 
quiet 
splash 
noprompt 
noshell

J'ai constaté que tous ces paramètres de démarrage étaient nécessaires pour obtenir une installation sans assistance. Pour Ubuntu Server, c'est peut-être différent.

Étape 4

J'ai essayé d'utiliser et de créer de nombreux fichiers de présélection, mais j'ai constaté que plus ils étaient complexes, plus il y avait de risques d'erreurs. Voici actuellement mon fichier de présélection simple qui fonctionne avec ce qui précède isolinux.cfg fichier.

### Partitioning
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-auto/choose_recipe select atomic

# This makes partman automatically partition without confirmation
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# Locale
d-i debian-installer/locale string en_US
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us

# Network
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain
d-i netcfg/choose_interface select auto

# Clock
d-i clock-setup/utc-auto boolean true
d-i clock-setup/utc boolean true
d-i time/zone string US/Pacific
d-i clock-setup/ntp boolean true

# Packages, Mirrors, Image
d-i base-installer/kernel/override-image string linux-server
d-i base-installer/kernel/override-image string linux-image-amd64
d-i mirror/country string US
d-i mirror/http/proxy string
d-i apt-setup/restricted boolean true
d-i apt-setup/universe boolean true
d-i pkgsel/install-language-support boolean false
tasksel tasksel/first multiselect ubuntu-desktop

# Users
d-i passwd/user-fullname string Liason
d-i passwd/username string liason
d-i passwd/user-password-crypted password [crpyt 3]
d-i passwd/root-login boolean true
d-i passwd/root-password-crypted password [crypt 3]
d-i user-setup/allow-password-weak boolean true

# Grub
d-i grub-installer/grub2_instead_of_grub_legacy boolean true
d-i grub-installer/only_debian boolean true
d-i finish-install/reboot_in_progress note

# Custom Commands

Je n'ai pas inclus mes mots de passe cryptés, donc si vous essayez ce fichier de présélection, veuillez les changer pour un mot de passe crypté. Ici Il y a 3 façons de créer le mot de passe.

Étape 5

J'ai créé la nouvelle ISO à partir du fichier /opt/ubuntuiso/ répertoire.

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

Étape 6

Je l'ai finalement testé avec Virtualbox et l'installation s'est déroulée sans aucune assistance.

Questions

Dois-je éditer le isolinux/isolinux.cfg fichier ?

Dans l'autre message, il semble qu'ils soient en mesure d'éditer le fichier isolinux/txt.cfg et sont en mesure de le faire fonctionner. J'ai essayé pendant environ une heure d'utiliser le fichier isolinux/txt.cfg mais cela n'a pas fonctionné.

Quelqu'un a-t-il une recette de partman plus complexe qui spécifie directement les partitions ? Ou une configuration LVM qui fonctionne ? J'ai essayé d'utiliser une configuration LVM simple, mais après le redémarrage, il ne démarrait pas et restait sur un écran noir. De plus, aucun des exemples de preseed que j'ai listés dans la documentation n'a fonctionné non plus.

Merci de votre aide.

0voto

Owen Zhang Points 1

Merci beaucoup ! C'est la meilleure réponse que j'ai trouvée à cette question jusqu'à présent. L'installation automatique fonctionne à merveille. Je voudrais juste ajouter quelque chose à propos de la création d'un nouveau fichier iso. L'image iso créée avec la commande dans votre réponse fonctionne parfaitement pour l'installation de la VM dans mes tests, mais pas pour les lecteurs de démarrage USB. Celle que j'ai essayée ci-dessous fonctionne bien pour créer un média d'installation USB et démarrer en mode UEFI.

OLD_IMAGE=/path/to/iso
MBR_FILE=/tmp/ubuntu_isohybrid_mbr.img
dd if="$OLD_IMAGE" bs=1 count=446 of="$MBR_FILE"

IMAGE=custom.iso
BUILD=/mnt/iso

xorriso -as mkisofs -r -V "Custom Ubuntu Install CD" \
            -cache-inodes -J -l \
            -isohybrid-mbr "$MBR_FILE" \
            -c isolinux/boot.cat \
            -b isolinux/isolinux.bin \
               -no-emul-boot -boot-load-size 4 -boot-info-table \
            -eltorito-alt-boot \
            -e boot/grub/efi.img \
               -no-emul-boot -isohybrid-gpt-basdat \
            -o "$IMAGE" \
            "$BUILD"

rm "$MBR_FILE"

Et pour que l'automatisation fonctionne en mode UEFI, vous devez également éditer boot/grub/grub.cfg dans l'image à peu près de la même manière que la fonction isolinux.cfg mentionné dans la réponse ci-dessus. Le mien ressemble à

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/black
set menu_color_highlight=black/light-gray

menuentry "Customized Automatic Install" {
    set gfxpayload=keep
    linux   /casper/vmlinuz  file=/cdrom/preseed/custom.seed boot=casper automatic-ubiquity initrd=/casper/initrd quiet splash noprompt noshell ---
    initrd  /casper/initrd
}

custom.seed est le fichier preseed que j'utilise, et j'ai placé certains paramètres linguistiques dans le fichier preseed au lieu de les laisser dans cette ligne.

-1voto

iplustech.net Points 55

N'ESSAYEZ PAS CETTE MÉTHODE. NE FONCTIONNE PAS (SAUF SI VOUS ESSAYEZ DE TUER LE TEMPS) :

J'ai vu la réponse à cette question partout. Je vais vous donner la solution la plus courante. Je ne l'ai jamais essayée moi-même, il se peut donc qu'elle soit dépassée. Je ne comprends vraiment pas l'intérêt de cette solution, car il serait plus simple de procéder à une installation manuelle, mais bon...

Se connecter en tant que root ou exécuter $ sudo su -

Téléchargez et montez l'ISO. N'effectuez PAS cette opération manuellement à partir du site web d'Ubuntu.

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

sauvegarder et déplacer les fichiers pertinents.

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

Bloquer l'apparition de la partie linguistique de l'interface graphique

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

Ajouter un fichier "Kickstart".

# apt install system-config-kickstart
# system-config-kickstart

[OPTIONNEL] Ajouter des paquets pour votre installation

# vim /path/to/ks.cfg #[OPTIONAL]

Vous pouvez également le rechercher dans vos fichiers et le modifier directement. Ajouter le %packages et placez vos paquets sous cette section.

%packages
# Add your packages below. Example:
@ ubuntu-server
apache2
mysql-server
php7.0
php-pear
libapache2-mod-php7.0 
php7.0-mysql
php7.0-curl
php7.0-json
php7.0-cgi

Comme je l'ai dit, je n'ai jamais fait cela moi-même, donc si vous avez une configuration comme celle ci-dessus, il se peut que la pile LAMP ne soit pas installée et que vous deviez le faire manuellement plus tard.

Supprimer les questions avec un fichier "preseed".

# 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

Activer les fichiers :

# vi isolinux/txt.cfg

Ensuite, il faut chercher :

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

Vous devrez ensuite ajouter ks=cdrom:/ks.cfg y preseed/file=/cdrom/ks.preseed . Supprimer les mots quiet y vga=788 Il se présente donc comme suit :

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

Vous pouvez maintenant créer la nouvelle réponse :

# 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

Et voilà !

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