Cet article vous fournira des informations de base sur la création d'une image isohybride personnalisée Ubuntu Live démarrable pour vous permettre de démarrer avec votre propre spin-off de distribution Ubuntu. L'image de sortie sera une image live Ubuntu personnalisée amd64, capable de démarrer dans les trois modes de démarrage :Legacy Bios, UEFI et SecureBoot.
L'article n'entrera pas dans les détails sur la façon d'effectuer la personnalisation réelle du système squashfs. Cependant, il se concentrera plutôt sur toutes les étapes concernant le déballage de l'Iso officiel d'Ubuntu et le remontage de toutes les pièces pour produire une image isohybride amorçable prenant en charge les modes Legacy Bios, UEFI et SecureBoot.
Prérequis
Comme toujours, nous commençons par les prérequis et l'installation facultative du package :
$ sudo apt-get install dumpet xorriso squashfs-tools gddrescue
Téléchargement de l'image ISO d'Ubuntu
La première partie de la création de votre propre distribution Linux personnalisée basée sur Ubuntu Linux consiste à télécharger l'image ISO officielle d'Ubuntu. Créez un nouveau répertoire custom-ubuntu
pour contenir tous les fichiers requis par ce projet. EFI et sa fonction SecureBoot ne sont pas pris en charge sur l'architecture i386. Téléchargez donc n'importe quelle version amd64 de l'image ISO d'Ubuntu et stockez-la dans custom-ubuntu
répertoire :
$ mkdir custom-ubuntu$ cd custom-ubuntu/$ wget http://url/to/ubuntu/image.iso
Extraire le contenu ISO
À ce stade, nous devons monter et extraire tout le contenu de l'image ISO officielle d'Ubuntu. Pour cela, nous utilisons xorriso
commande. Le xorriso
ci-dessous la commande extraira tous les fichiers de l'image ISO d'origine dans custom-iso
annuaire. Ex. :
$ xorriso -osirrox sur -indev ubuntu-16.04-desktop-amd64.iso -extract / custom-iso
Processus de personnalisation
À ce stade, effectuez une personnalisation dans custom-iso
annuaire. Comme mentionné précédemment, le processus de personnalisation de votre image dépend de vous. Vous trouverez ci-dessous quelques conseils pour vous aider à démarrer :
- Menu du chargeur de démarrage EFI :
custom-iso/boot/grub/grub.cfg
- Menu de démarrage hérité non EFI :
custom-iso/isolinux/txt.cfg
- système de fichiers squashfs :
custom-iso/casper/filesystem.squashfs
- Menu du chargeur de démarrage EFI :
Pour personnaliser le système de fichiers squashfs, décompressez d'abord filesystem.squashfs :
$ sudo unsquashfs custom-iso/casper/filesystem.squashfsParallel unsquashfs :Utilisation de 8 processeurs180141 inodes (192876 blocs) pour écrire[======================/] 192876/192876 100%créé 138452 fichierscréé 18797 répertoirescréé 41566 liens symboliquescréé 81 appareilscréé 0 fifos
Entrez squashfs en utilisant chroot
commande, apportez des modifications et quittez :
$ sudo chroot squashfs-root/# mount none -t proc /proc; monter aucun -t sysfs /sys ; monter aucun -t devpts /dev/pts
Ce point vous place dans l'environnement chroot de votre nouveau système. Apportez des modifications telles que l'installation du paquet et quittez le chroot :
# exitexit$ sudo umount -f squashfs-root/proc squashfs-root/sys squashfs-root/dev/pts
Compresser les nouveaux squashfs :
$ sudo mksquashfs squashfs-root/ custom-iso/casper/filesystem.squashfs
Création d'une image ISO isohybride amorçable
Obtenir le MBR isohybride isohdpfx.bin
à partir de l'image ISO ubuntu d'origine en utilisant dd
commande :
$ sudo jj if=ubuntu-16.04-desktop-amd64.iso bs=512 count=1 of=custom-iso/isolinux/isohdpfx.bin
Construire une nouvelle image ISO isohybride à partir de custom-iso
répertoire en utilisant xorriso
commande. Noter la "." à la fin du xorriso
commande :
$ cd custom-iso/$ sudo xorriso -as mkisofs -isohybrid-mbr isolinux/isohdpfx.bin \ -c isolinux/boot.cat -b isolinux/isolinux.bin -no-emul-boot -boot-load- taille 4 \-boot-info-table -eltorito-alt-boot -e boot/grub/efi.img -no-emul-boot \-isohybrid-gpt-basdat -o ../custom-ubuntu.iso .xorriso 1.3 .2 :manipulateur de système de fichiers RockRidge, projet libburnia.Drive current :-outdev 'stdio:../custom-ubuntu.iso'Media current :fichier stdio, overwriteableMedia status :is blankMedia summary :0 sessions, 0 data blocks, 0 data, 1444g gratuitAjouté à l'image ISO :répertoire '/'='/home/lubos/custom-ubuntu/custom-iso'xorriso :MISE À JOUR :549 fichiers ajoutés en 1 secondexorriso :MISE À JOUR :549 fichiers ajoutés en 1 secondexorriso :NOTE :Copie vers le système Zone :512 octets du fichier '/home/lubos/custom-ubuntu/custom-iso/isolinux/isohdpfx.bin'libisofs :REMARQUE :Géométrie MBR ajustée automatiquement à 1017/89/32libisofs :REMARQUE :Taille de l'image alignée sur la taille du cylindre par 367 blocsxorriso :UPDATE :100.00% doneImage ISO produite :72 4 104 secteursÉcrit sur le support :724 104 secteurs sur LBALa commande ci-dessus entraînera un nouveau
../custom-ubuntu.iso
image isohybride.Obtenir des informations sur l'image
Si tout s'est bien passé notre
custom-ubuntu
Le répertoire doit maintenant contenir une nouvelle image isohybridecustom-ubuntu.iso
:$ lscustom-iso custom-ubuntu.iso orig-iso squashfs-root ubuntu-16.04-desktop-amd64.isoTable des partitions :
$ sudo fdisk -lu custom-ubuntu.isoDisk custom-ubuntu.iso :1,4 Gio, 1482964992 octets, 2896416 secteursUnités :secteurs de 1 * 512 =512 octetsTaille du secteur (logique/physique) :512 octets / 512 octetsE/S taille (minimale/optimale) :512 octets / 512 octetsType d'étiquette de disque :dosIdentifiant de disque :0x751e87f5Device Boot Start End Sectors Size Id Typecustom-ubuntu.iso1 * 0 2896415 2896416 1.4G 0 Emptycustom-ubuntu.iso2 540 5083 4544 2.2M ef EFI (FAT -16/12/32)Informations d'en-tête et de catalogue :
$ sudo dumpet -i custom-ubuntu.iso Validation Entry :Header Indicator :0x01 (Validation Entry) PlatformId :0x00 (80x86) ID :"" Checksum :0x55aa Key bytes :0x55aaBoot Catalog Default Entry :Entry is bootable Boot Media type d'émulation :pas d'émulation Segment de chargement de média :0x0 (0000:7c00) Type de système :0 (0x00) Charger les secteurs :4 (0x0004) Charger LBA :701876 (0x000ab5b4)Entrée d'en-tête de section :Indicateur d'en-tête :0x91 (Entrée d'en-tête de section finale) PlatformId :0xef (EFI) Section Entries :1 ID :"" Boot Catalog Section Entry :L'entrée est amorçable Type d'émulation du support de démarrage :aucune émulation Adresse de chargement du support :0 (0x0000) Type de système :0 (0x00) Secteurs de chargement :4544 (0x11c0 ) Charger LBA :135 (0x00000087)En-tête de validation Eltorito :
$ isoinfo -d -i custom-ubuntu.iso CD-ROM is in ISO 9660 formatSystem id:Volume id:ISOIMAGEVolume set id:Publisher id:Data preparer id:XORRISO-1.3.2 2013.08.07.110001, LIBISOBURN-1.3 .2, LIBISOFS-1.3.2, LIBBURN-1.3.2Identifiant de l'application :Copyright Identifiant du fichier :Résumé Identifiant du fichier :Identifiant du fichier bibliographique :La taille de l'ensemble de volumes est :1Le numéro de séquence de l'ensemble de volumes est :1La taille du bloc logique est :2048La taille du volume est :724104El Torito VD version 1 trouvée, le catalogue de démarrage est dans le secteur 117NO Joliet presentRock Ridge signatures version 1 foundEltorito validation header:Hid 1 Arch 0 (x86) ID '' Key 55 AA Eltorito defaultboot header:Bootid 88 (bootable) Boot media 0 (No Emulation Boot ) Charger segment 0 Sys type 0 Nsect 4 Bootoff AB5B4 701876Catalogue de démarrage et chemins d'accès aux images pertinentes :
# xorriso -indev custom-ubuntu.iso -toc -pvd_info xorriso 1.3.2 :manipulateur de système de fichiers RockRidge, projet libburnia.xorriso :NOTE :chargement de l'arborescence d'images ISO depuis LBA 0xorriso :MISE À JOUR :549 nœuds lus en 1 secondexorriso :NOTE :Les informations de démarrage d'El-Torito détectées qui sont actuellement définies pour être ignorées. Résumé imageMedia :1 session, 724104 blocs de données, 1414m de données, 1442g freeVolume id :'ISOIMAGE'Drive current:-indev 'custom-ubuntu.iso'Drive type :vendor 'YOYODYNE' product 'WARP DRIVE' revision 'FX01'Media current :fichier stdio, overwriteableMedia status :is written , is appendableMedia blocks :724104 readable , 755967444 writable , 756691572 OverallBoot record :El Torito , ISOLINUX isohybrid MBR pointing to boot imageBoot catalog :'/isolinux/boot.cat'Boot image :'/isolinux /isolinux .bin' , boot_info_table=onBoot image :'/boot/grub/efi.img' , platform_id=0xEF TOC layout :Idx , sbsector , Size , Volume IdISO session :1 , 0 , 724104s , ISOIMAGEMedia summary :1 session, 724104 data blocs, 1414m de données, 1442g freeMedia nwa :724128sDrive actuel :-indev 'custom-ubuntu.iso'PVD address :16sVolume Id :ISOIMAGEVolume Set Id :Publisher Id :Preparer Id :XORRISO-1.3.2 2013.08.07.110001, LIBISOBURN-1.3. 2, LIBISOFS-1.3.2, LIBBURN-1.3.2App Id :System Id :CopyrightFile :Abstract File :Biblio File :Creation Time :2016020823095700Modif. Heure :2016020823095700Expir. Temps :0000000000000000Eff. Heure :0000000000000000Démarrer une nouvelle image Ubuntu personnalisée
Veuillez noter que la nouvelle image Ubuntu personnalisée produite est destinée à démarrer dans les trois modes, c'est-à-dire Legacy BIOS, UEFI uniquement ainsi que UEFI avec l'option SecureBoot activée. Cependant, cela n'est pas garanti et des problèmes peuvent survenir en raison de bogues du micrologiciel matériel, etc.
Pour démarrer votre nouvelle image Ubuntu personnalisée, gravez le résultat ISO sur le disque CD ou utilisez
ddrescue
commande pour le cloner sur votre clé USB :$ sudo ddrescue custom-ubuntu.iso /dev/sdX --force -DVotre clé USB contient maintenant le système Live Ubuntu personnalisé. Tout devrait maintenant être prêt à démarrer à partir de votre clé USB.