J'ai créé une propre distribution Ubuntu que je veux démarrer (à partir d'une clé USB) sur mon MAC.
Lors de l'utilisation de la norme Ubuntu-iso 64 bits standard du site Web Ubuntu, elle démarre. Cependant, lorsque le fichier iso contenant ma propre distribution est identique, il ne fonctionne pas et il ne semble prendre en charge que le démarrage hérité. Cependant, le système d'exploitation a le dossier/sys/firmware/efi, je sais donc qu'il prend en charge EFI. J'ai fait l'iso en utilisant Relinux.
J'ai examiné les différences entre les deux fichiers ISO et constaté que l'ubuntu standard comporte un dossier EFI/BOOT contenant les fichiers grubx64.efi et BOOTx64.EFI, ainsi qu'un dossier de démarrage qui n'existe pas dans l'autre. J'ai essayé de copier ces deux répertoires, le répertoire EFI et le répertoire de démarrage dans mon autre clé USB, mais cela ne fonctionne pas.
Ma question est:
Vous devez créer un catalogue ISO à double démarrage pour qu'il puisse démarrer EFI et MBR. Le fichier ISO Ubuntu 14.04 x64 standard fonctionne de cette manière, mais il n’ya pas d’instructions permettant de créer un nouvel ISO 14.04 amorçable pour les systèmes EFI. J'ai pu rassembler les bonnes étapes pour créer une image ISO comme celle-ci.
Ces instructions vous permettront de créer une image ISO de serveur Ubuntu 14.04 personnalisée pouvant démarrer EFI et MBR. Lorsque EFI démarre sur un système avec un disque vierge non initialisé (par exemple, sur un nouveau Generation 2 VM dans Hyper-V), le programme d'installation démarre automatiquement, puis efface automatiquement le disque et installe le serveur de base Ubuntu. packages et OpenSSH. Ceci est conçu pour approvisionner automatiquement les nouveaux systèmes avec Ubuntu 14.04 à l'aide de LVM et du partitionnement automatique. Si vous utilisez cette image ISO sur un système Linux existant, le programme d'installation s'arrête lorsqu'il détecte des disques existants et attend l'entrée. Si vous utilisez cette image ISO sur un système non EFI (par exemple, une machine virtuelle Hyper-V de génération 1), elle attendra à l'écran de démarrage de l'installateur graphique et nécessitera une entrée avant de continuer avec l'installateur automatique.
Le résultat est une installation de base du serveur Ubuntu avec ubuntu-server et openssh-server uniquement.
Voici les étapes à suivre pour créer une image ISO amorçable EFI:
Obtenez le 14.04 ISO:
wget http://releases.ubuntu.com/14.04/ubuntu-14.04-server-AMD64.iso
Montez-le et extrayez son contenu dans un nouveau dossier:
Sudo mkdir -p ~/iso
Sudo mount -o loop ubuntu-14.04-server-AMD64.iso.iso ~/iso
Sudo mkdir ~/ubuntu
Sudo cp -rT ~/iso ~/ubuntu
Changer dans le répertoire où nous allons faire notre travail:
cd ~/ubuntu
Définissez la langue en anglais:
Sudo -i
echo en >/home/user/ubuntu/isolinux/lang
exit
Créez un fichier de préconfiguration qui utilisera LVM pour partitionner automatiquement le disque en utilisant tout l'espace disponible:
Sudo nano ~/ubuntu/ks.preseed
Remplacez le contenu du fichier par ceci:
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
Créez un fichier kickstart qui configurera Ubuntu lors de l'installation: (assurez-vous de changer la partie du nom d'utilisateur et utilisez des mots de passe chiffrés)
Sudo nano ~/ubuntu/ks.cfg
Remplacez le contenu du fichier par ceci:
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 le fichier de configuration grub afin que le chargeur d’amorçage utilise les bonnes options lors de l’amorçage EFI pour utiliser nos fichiers de préconfiguration et de configuration:
Sudo nano ~/ubuntu/boot/grub/grub.cfg
Remplacez le contenu du fichier par ceci:
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
}
Modifiez le menu de démarrage isolinux pour un démarrage non-EFI (démarrage MBR) afin d'utiliser la configuration et le preseed personnalisés:
Sudo nano ~/ubuntu/isolinux/txt.cfg
Remplacez le contenu du fichier par 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éer l'ISO:
Cette commande est une version modifiée de la commande indiquée sous http://petersmithphotog.no-ip.biz/wiki/index.php/Unattended_Install . Ces instructions ne fonctionnent pas pour Ubuntu 14.04 car elles indiquent le mauvais emplacement du fichier efi.img. (devrait être dans ./boot/grub/ sur l'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 que l'ISO dispose des catalogues de démarrage de style appropriés:
L'ISO d'origine que vous avez téléchargée à partir d'Ubuntu:
dumpet -i ~/ubuntu-14.04-server-AMD64.iso
Sortie:
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: 8446 (0x000020fe)
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: 24754 (0x000060b2)
La nouvelle ISO que vous avez créée:
dumpet -i ~/Custom1404.iso
Sortie:
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)
Vous pouvez comparer cette sortie à la sortie d'une image ISO construite à l'aide des instructions de Comment puis-je créer une installation d'Ubuntu sans surveillance? : (ils créent un ISO uniquement pour les MBR, et non un catalogue à double démarrage ISO)
Sudo mkisofs -D -r -V "non-efi-ubuntu" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../non-efi-ubuntu.iso .
Obtenir des informations ISO:
dumpet -i ~/non-efi-ubuntu.iso
Sortie:
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: 1925 (0x00000785)
Si vous souhaitez une installation à partir d'un support USB, vous n'avez pas besoin de créer d'abord une image ISO personnalisée.
Créer un support USB Live uniquement au démarrage d'UEFI est assez simple. Copiez simplement les fichiers sur votre clé USB formatée en FAT32. C'est ça! Il sera détecté comme un support de démarrage UEFI valide.
Ensuite, vous pouvez modifier les fichiers directement sur le lecteur USB.
Source et détails: Comment créer un média live USB amorçable avec UEFI uniquement?
Pour moi le meilleur moyen est:
1) créer systemback live iso
Sudo apt-get install systemback
Sudo apt-get install live-boot
Sudo apt-get autoremove --purge casper
2) ajoutez une partition uefi à l'iso de cette façon:
cd /home
cat `ls -1 -t syst*.iso|head -1` efi.img >/tmp/live.iso
echo -e "n\np\n2\n\n\nt\n2\nef\nw\n"|fdisk /tmp/live.iso
3) copier l’iso sur le média (dans ce cas, ma clé USB dans/dev/sdb
pv /tmp/live.iso | dd of=/dev/sdb conv=notrunc,noerror