web-dev-qa-db-fra.com

Comment créer une image ISO Ubuntu personnalisée pour les installations entièrement hors ligne?

Je suis basé en Inde et nous n’avons pas d’Internet fiable partout. J'aimerais créer un fichier ISO d'installation d'Ubuntu avec les fonctionnalités suivantes:

  • Tous les pilotes propriétaires doivent être disponibles hors connexion
  • Au moins un module linguistique complet (par exemple anglais/États-Unis) devrait être disponible hors connexion
  • Certains forfaits supplémentaires
  • Enfin, des éléments tels que flashinstaller ou Chrome, qui téléchargent des données du Web lors de l’installation, devraient également fonctionner.

Comment puis-je construire quelque chose comme ça? -

4
curiousboy

Testez ceci: Personnalisez le CD de bureau Ubuntu. Installez les outils nécessaires.

Sudo su

apt-get install squashfs-tools genisoimage

Téléchargez un CD officiel à partir de http://releases.ubuntu.com/ Copiez-le dans un répertoire vide

mkdir ~/livecdtmp

mv ubuntu-14.04.1-desktop-i386.iso ~/livecdtmp

cd ~/livecdtmp

Monter le bureau .iso

Sudo su

mkdir mnt

mount -o loop ubuntu-14.04.1-desktop-i386.iso mnt

Extraire le contenu .iso dans le répertoire 'extract-cd'

Sudo su

mkdir extract-cd

rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Extraire le système Desktop et le système de fichiers SquashFS

Sudo su

unsquashfs mnt/casper/filesystem.squashfs

mv squashfs-root edit

Préparer et chroot

Sudo su

cp /etc/resolv.conf edit/etc/

cp /etc/hosts edit/etc/

mount --bind /dev/ edit/dev

chroot edit

mount -t proc none /proc

mount -t sysfs none /sys

mount -t devpts none /dev/pts

export HOME=/root

export LC_ALL=C

Personnalisations Avant d'installer ou de mettre à niveau des packages, vous devez exécuter

dbus-uuidgen > /var/lib/dbus/machine-id

dpkg-divert --local --rename --add /sbin/initctl

ln -s /bin/true /sbin/initctl

Supprimer, installer et mettre à jour les paquets.

Si vous avez modifié le noyau, les scripts d'initialisation ou ajouté de nouveaux modules, vous devez reconstruire le fichier initrd.lz et le remplacer dans le répertoire casper.

Sudo su

chroot edit mkinitramfs -o /initrd.gz 3.13.0-25-generic

(remplacez la version du noyau par celle avec laquelle le CD va démarrer - cela se trouve dans edit/lib/modules)

Quittez la prison chroot et déplacez ce fichier vers extract-cd/casper:

exit

mv edit/initrd.lz extract-cd/casper/

Supprimez tous les fichiers temporaires qui ne sont plus nécessaires.

apt-get clean
Or
rm -rf /tmp/* ~/.bash_history

Si vous avez installé le logiciel, assurez-vous de lancer

rm /var/lib/dbus/machine-id
&
rm /sbin/initctl

dpkg-divert --rename --remove /sbin/initctl

Démontez les systèmes de fichiers spéciaux et quittez chroot

umount /proc || umount -lf /proc

umount /sys

umount /dev/pts

exit

Sudo su 

umount edit/dev

Produire l'image du CD et compresser le système de fichiers

Sudo su

chmod +w extract-cd/casper/filesystem.manifest

chroot edit dpkg-query -W --showformat='${Package} ${Version}\n' > extract-cd/casper/filesystem.manifest

cp extract-cd/casper/filesystem.manifest extract-cd/casper/filesystem.manifest-desktop

sed -i '/ubiquity/d' extract-cd/casper/filesystem.manifest-desktop

sed -i '/casper/d' extract-cd/casper/filesystem.manifest-desktop

rm extract-cd/casper/filesystem.squashfs

mksquashfs edit extract-cd/casper/filesystem.squashfs -comp xz -e edit/boot

printf $(Sudo du -sx --block-size=1 edit | cut -f1) > extract-cd/casper/filesystem.size

nano extract-cd/README.diskdefines

cd extract-cd

rm md5sum.txt

find -type f -print0 | Sudo xargs -0 md5sum | grep -v isolinux/boot.cat | Sudo tee md5sum.txt

mkisofs -D -r -V "$IMAGE_NAME" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../ubuntu-14.04.1-desktop-i386-custom.iso .

Graver l'image sur un CD

cdrecord dev=/dev/cdrom ubuntu-14.04.1-desktop-i386-custom.iso
9
kyodake